14_Visualization_Matplotlib_Seaborn_2
# bar 그래프는 batplot() 메소드로 만들 수 있다.
# bar 그래프는 지정한 데이터의 평균을 계산해서 작성된다.
ax = plt.subplots()
ax = sns.barplot(x = "time", y = "total_bill", data = tips)
ax.set_title("시간에 따른 지불금액 평균의 막대 그래프")
ax.set_xlabel("시간")
ax.set_ylabel("지불금액")
<IPython.core.display.Javascript object>
Text(0, 0.5, '지불금액')
# 박스 그래프는 boxplot() 메소드로 만들 수 있다.
# 박스 그래프는 지정한 데이터의 최소값, 1분위수, 중간값, 3분위수, 최대값, 이상치 등 다양한 통계량을 한 번에 표현한다.
ax = plt.subplots()
ax = sns.boxplot(x = "time", y = "total_bill", data = tips)
ax.set_title("시간에 따른 지불금액의 박스 그래프")
ax.set_xlabel("시간")
ax.set_ylabel("지불금액")
<IPython.core.display.Javascript object>
Text(0, 0.5, '지불금액')
# 박스 그래프는 다양한 통계 수치를 확인하기 위해 자주 사용하는 그래프지만 데이터 분산이 모호하게 표현된다.
# 이런 경우 박스 그래프에 커널 밀도를 추정한 바이올린 그래프를 사용하면 된다. 바이올린 그래프는 violinplot() 메소드를 사용해서
# 그릴 수 있다.
ax = plt.subplots()
ax = sns.violinplot(x = "time", y = "total_bill", data = tips)
ax.set_title("시간에 따른 지불금액의 바이올린 그래프")
ax.set_xlabel("시간")
ax.set_ylabel("지불금액")
<IPython.core.display.Javascript object>
Text(0, 0.5, '지불금액')
# 관계 그래프는 지금까지 그려본 그래프를 종합한 그래프라고 생각하면 된다.
# 관계 그래프는 pairplot() 메소드에 데이터프레임을 넣어주는 방법으로 간단하게 그릴 수 있다.
sns.pairplot(tips)
<IPython.core.display.Javascript object>
<seaborn.axisgrid.PairGrid at 0x28fc6a59400>
# 관계 그래프는 중복된 정보가 표현된다는 단점이 있다. 즉, 관계 그래프의 좌측 상단에서 우측하단 대각선 위쪽 방향은 나머지 절반과
# 같다.
# 이런 경우 PairGrid 클래스를 시용해서 중복된 그래프가 그려지는 위치를 직접 지정하여 원하는 그래프로 교체하면 된다.
# map_upper() 메소드는 대각선을 기준으로 왼쪽에 그릴 그래프를 지정하고 map_lower() 메소드는 대각선을 기준으로 아래쪽에 그릴
# 그래프를 지정하고 map_diag() 메소드는 대각선을 중심으로 그래프를 그린다.
pair_grid = sns.PairGrid(tips)
pair_grid.map_upper(sns.regplot) # 산점도
pair_grid.map_lower(sns.kdeplot) # 산점도
pair_grid.map_diag(sns.distplot, rug = True) # 히스토그램, 밀집도
<IPython.core.display.Javascript object>
<seaborn.axisgrid.PairGrid at 0x28fcb493dd8>
seaborn 라이브러리로 다변량 그래프 그리기
# seaborn 라이브러리로 바이올린 그래프 그리기 - 색상 추가
# 바이올린 그래프에 색상을 추가하는 방법은 violinplot() 메소드에 hue 속성에 색상으로 사용할 열 이름을 지정한다.
ax1 = plt.subplots()
ax1 = sns.violinplot(x = "time", y = "total_bill", hue = "sex", data = tips)
ax2 = plt.subplots()
ax2 = sns.violinplot(x = "time", y = "total_bill", hue = "sex", data = tips, split = True)
<IPython.core.display.Javascript object>
<IPython.core.display.Javascript object>
댓글남기기