[파이썬] 데이터시각화(1) (matplotlib.pyplot 패키지)

2020. 4. 20. 13:13노트/Python : 프로그래밍

# 라이브러리 호출 
%matplotlib notebook
import matplotlib.pyplot as plt
  • Matplotlib.org : 라이브러리 정보 홈페이지 

 

Series.plot() 인자

  • label = 그래프의 범례이름 
  • ax= 서브플롯 객체 
  • style= "ko--" 와같은 그래프 스타일 문자열 
  • alpha = 그래프 투명도 (0~1)
  • kind= 그래프 종류.'area', 'bar', 'barh', density', ' hist', 'kde', ' line' ,'pie' 
  • logy = y축에대한 로그 스케일링 
  • use_index = 객체의 색인을 눈금이름으로 사용할지 여부 
  • rot = 눈금이름을 로테이션 (0~360) 
  • xticks = x축으로 사용할 값 
  • yticks = y축으로 사용할 값 
  • xlim = x축 한계 :[0,10]
  • ylim = y축 한계 

 

DataFrame.plot() 메서드 인자 

  • figsize = 생성될 그래프 크기 튜플로 지정 
  • title = 그래프의 제목을 문자열로 지정 
  • legend = 서브플롯의 범례 추가 
  • sort_columns = 컬럼을 알파벳 순서로 그림  

 

기본 그래프 그리기 

fig=plt.figure() # 도화지 생성 
ax1= fig.add_subplot(2,2,1) 
ax2= fig.add_subplot(2,2,2)
ax3= fig.add_subplot(2,2,3)

ax1.plot(np.random.randn(50).cumsum(), 'k--')
ax2.hist(np.random.randn(100),bins=20, color='k', alpha=0.3)
ax3.scatter(np.arange(30) ,np.arange(30) + 3 * np.random.randn(30))

- 히스토그램 hist()

- 점그래프 scatter()

- 막대그래프 plot.bar() plt.barh() 

 

 

 

 

 

# 서브플랏 간의 간격을 주지 않은 그래프를 생성하는 코드 
fig , axes = plt.subplots(2,2, sharex=True, sharey=True)
for i in range(2):
    for j in range(2):
        axes[i,j].hist(np.random.randn(500), bins=50, color='k', alpha = 0.5)
plt.subplots_adjust(wspace=0, hspace=0)

 

타이타닉 범주형 데이터 시각화 함수 코드

 

* 수정해서 쓸 것 

def my_chart(data, feature):
    survived = data[data['Survived']==1][feature].value_counts()
    dead = data[data['Survived']==0][feature].value_counts()
    df=pd.DataFrame([survived ,dead])
    df.index =["Survived","Dead"]
    df.plot(kind="bar", stacked=True)
my_chart(titanic, 'Sex')
my_chart(titanic, 'Pclass')
my_chart(titanic, 'SibSp')
my_chart(titanic, 'Parch')

 

범례(레이블) 생성

%matplotlib notebook

data = np.random.randn(30).cumsum()

plt.plot(data, 'k--',label='Default')
plt.plot(data, 'k-', drawstyle = 'steps-post', label ='steps-post')

plt.legend(loc = 'best') # loc : 범례의 위치 

  •  그래프를 그릴 때, label 옵션 지정 여부와 상관없이 plt.legend를 호출
  •  축에대한 범례를 추가하려면 ax.legend를 호출 

 

그래프 꾸미기 

plt.plot([10,20,30,40],[1,4,9,16],color="blue",linewidth=5,linestyle="--",marker="o",ms=15)
# 그래프 색깔, 그래프 굵기, 그래프스타일, 그래프마커, 마커굵기 
plt.xlabel("x axis") # x축 이름
plt.ylabel("y axis") # y축 이름
plt.xticks([0,10,20,30,40,50],color = "red",rotation=30) # x축 눈금, 눈금돌리기
plt.yticks([0,5,10,15,20],color = "red") #y축 눈금 

plt.show()

 

원 그래프: pie()

# 원 그래프 
labels=['취업','결혼','출산','건강']
sizes=[15,30,45,10]
colors=["yellow","gold","skyblue","lightcoral"]
ex = (0.1,0,0,0) # 떨어져나오게 하는것 
plt.pie(sizes,explode=ex, autopct="%.1f%%",labels=labels, colors=colors, shadow=True, startangle=90)

plt.show()

 

 

참고문헌

파이썬 라이브러리를 활용한 데이터 분석(2판) p348~p368