14_Visualization_Matplotlib_Seaborn_4
# FacetGrid 클래스를 사용해서 간편하게 그래프를 그릴 수 있다.
# FacetGrid 클래스로 차트를 구성할 데이터와 차트 작성의 기준이 되는 열을 넘겨 차트가 출력될 영역을 만든 후 map() 메소드를
# 이용해서 차트 종류, 차트를 만들 데이터를 넘겨주면 된다.
facet = sns.FacetGrid(tips, col = "time")
facet = facet.map(sns.distplot, "total_bill", rug = True)
<IPython.core.display.Javascript object>
# day 열로 그룹을 구분해 산점도를 그리고 범례를 표시한다.
facet = sns.FacetGrid(tips, col = "day", hue = "sex")
facet = facet.map(plt.scatter, "total_bill", "tip")
facet = facet.add_legend() # 범례 추가, 색상으로 사용된 열이 범례로 추가된다.
<IPython.core.display.Javascript object>
# time, smoker 열로 그룹을 구분해 산점도를 그린다.
# time 열은 Dinner/Lunch, smoker 열은 Yes/No 각각 2개의 값을 가지고 있으므로 2행 2열의 격자가 만들어지고 산점도가 출력된다.
facet = sns.FacetGrid(tips, col = "time", row = "smoker", hue = "sex")
facet = facet.map(plt.scatter, "total_bill", "tip")
facet = facet.add_legend()
<IPython.core.display.Javascript object>
데이터프레임과 시리즈로 그래프 그리기
# hist() 메소드를 사용해 해당 시리즈의 값을 이용하여 히스토그램을 그릴 수 있다.
fig, ax = plt.subplots()
ax = tips["total_bill"].plot.hist()
<IPython.core.display.Javascript object>
# 두 개 이상의 시리즈에 대한 히스토그램을 만들려면 시리즈를 리스트로 묶어서 전달하면 된다.
fig, ax = plt.subplots()
ax = tips[["total_bill", "tip"]].plot.hist(alpha = 0.5, bins = 20, ax = ax)
<IPython.core.display.Javascript object>
# 밀집도, 산점도, 육각 그래프, 박스 그래프는 각각 kde, scatter, hexbin. box 메소드를 사용해서 그릴 수 있다.
fig, ax = plt.subplots()
ax = tips["tip"].plot.kde()
ax = tips.plot.scatter(x = "total_bill", y = "tip")
ax = tips.plot.hexbin(x = "total_bill", y = "tip", gridsize = 15) # gridsize 옵션으로 육각형 크기를 조정한다.
ax = tips.plot.box()
<IPython.core.display.Javascript object>
<IPython.core.display.Javascript object>
<IPython.core.display.Javascript object>
<IPython.core.display.Javascript object>
seaborn 라이브러리로 그래프 스타일 지정하기
# seaborm 라이브러리 스타일은 darkgrid, whitegrid, dark, white, ticks로 5종류가 있다.
sns.set_style("ticks")
fig, ax = plt.subplots()
ax = sns.violinplot(x = "time", y = "total_bill", hue = "sex", data = tips, split = True)
<IPython.core.display.Javascript object>
fig, ax = plt.subplots()
seaborn_styles = ["darkgrid", "whitegrid", "dark", "white", "ticks"]
# enumerate()은 열거형을 의미하며 인수로 지정된 데이터의 (인덱스, 데이터)가 쌍으로 구성된 튜플을 리턴한다.
for idx, style in enumerate(seaborn_styles):
print(idx, style)
plot_position = idx + 1
sns.axes_style(style)
ax = fig.add_subplot(2, 3, plot_position)
violin = sns.violinplot(x = "time", y = "total_bill", data = tips, ax = ax)
violin.set_title(style)
fig.tight_layout()
<IPython.core.display.Javascript object>
0 darkgrid
1 whitegrid
2 dark
3 white
4 ticks
댓글남기기