[파이썬] 데이터시각화(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
'노트 > Python : 프로그래밍' 카테고리의 다른 글
[텐서플로우/케라스] MNIST 숫자 분류하기 (softmax) (0) | 2020.04.21 |
---|---|
[텐서플로우] 소프트맥스 회귀 (Softmax Regression) 분류 파이썬 코드 (0) | 2020.04.20 |
[케라스] 주식가격 예측하기(2) 파이썬 코드 (0) | 2020.04.18 |
[텐서플로우] 주식가격 예측하기(1) 파이썬 코드 (0) | 2020.04.18 |
[파이썬] 데이터변형 | 재구조화 (피벗테이블) (0) | 2020.04.18 |