pandas에서 데이터 시각화

이미 선행 기사이 있지만 pandas에는 데이터 시각화 기능이 있습니다.
matplotlib의 얇은 래퍼이지만, 이것을 사용하면 기본적인 그래프의 코드가 상당히 단단해집니다.

Pandas를 이용한 데이터 시각화



여기에 소개되어 있던 iris의 가시화라면, R과 같은 정도의 코드량으로 가시화할 수 있습니다.

Python for R Users
Python과 R의 차이 (데이터 시각화, 그래프 작성)

import가 많은 것은 python의 사양입니다만, 현재의 python에서의 데이터 해석의 생산성은 꽤 높다고 느낍니다.
R도 Rstudio/dplyr가 보급되어 생산성이 향상되고 있습니다만, python도 Jupyter/Pandas가 보급되어 5년전과는 바뀌고 있다고 생각합니다.
(numpy+matplotlib가 메인이었을 무렵과는 전혀 다릅니다.)

필요한 패키지, 데이터 로드


import seaborn as sns
import pandas as pd
iris=sns.load_dataset("iris")
%%matplotlib inline

세련된 느낌을 내기 위해 seaborn을 가져옵니다. 아울러, seaborn에는 장난감 데이터도 들어 있기 때문에 iris는 여기에서 load.

산점도


iris.plot.scatter(x="sepal_length",y="sepal_width")



상자 수염 그림


iris.sepal_length.plot.box()



히스토그램


iris.sepal_length.hist()



라인 차트


iris.sepal_length.plot.line()



파이 차트


pd.crosstab(iris.species,columns="species").plot.pie(y="species")



이것은 기본적으로 몇 가지 문제가 있습니다.
- 기본값이 가로로 깨져 버립니다.
- label이 겹쳐 버린다
- seaborn에 파이 차트가 없기 때문에 컬러 맵이 만들어지지 않습니다.

이 때문에 설정 바꾸는 것도 미묘하지만, 설정을 추가하면 깨끗하게 합니다.
from matplotlib import pylab
default_size=pylab.rcParams["figure.figsize"]
pylab.rcParams["figure.figsize"]=12,12
pd.crosstab(iris.species,columns="species").plot.pie(y="species",colors=sns.color_palette())



사이즈를 바꾸면 되돌려 둡시다.
pylab.rcParams["figure.figsize"]=default_size

바 차트


iris.sepal_length.plot.bar()



바차트는 카테고리 변수를 상정하고 있기 때문인지, 이것만 디폴트에서는 축 라벨을 씨닝해 주지 않았습니다.

matplotlib를 직접 호출하면 썰어줍니다. (seaborn을 import 끝났으므로 색조는 seaborn입니다.)
from matplotlib import pyplot as plt
plt.bar(iris.index,iris.sepal_length)



요약



전 슬라이드는 전반에 Pandas를 설명하고 있지만, 후반의 시각화에서는 Pandas를 사용하지 않기 때문에 코드가 중복되어 있습니다.
복잡한 일을 시도하면 matplotlib의 API를 직접 접촉해야합니다.
기본적인 그림이라면 Pandas의 API만으로 간단하게 코딩 가능합니다.

좋은 웹페이지 즐겨찾기