[Pyhon]heatmap 그리기,텍스트 넣기
- Python/그래프 그리기
- 2022. 3. 22.
반응형
반응형
matplotlib를 이용한 heat map 그리는 방법입니다.
데이터는 임의로 10x10 행렬로 만들어서 데이터프레임으로 만들었습니다.
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randn(10,10)
columns = ['X' + str(x).zfill(1) for x in range(10)]
df = pd.DataFrame(data,columns=columns)
df.index = ['Y' + str(x).zfill(1) for x in range(10)]
heatmap 그리기
maplotlib에서 heatmap 그리는 방법은 2가지가 있습니다.
imshow와 pcolor를 이용한 방법입니다.
먼저 imshow를 이용해 heatmap을 그립니다.
plt.imshow(map_df,cmap='hot',interpolation='none')
plt.colorbar()
plt.xticks(range(len(df.columns)),df.columns)
plt.yticks(range(len(df)), df.index)
plt.show()
pcolor를 이용한 방법입니다.
plt.pcolor(df.values,cmap='hot')
plt.colorbar()
plt.xticks(range(len(df.columns)),df.columns)
plt.yticks(range(len(df)), df.index)
plt.show()
pcolor가 좀 더 격자모양으로 넓게 나왔고 y축의 값이 뒤집어져 있습니다.
텍스트 넣기
그래프 안에 텍스트를 넣겠습니다.
plt.text를 이용해 격자에 맞게 값을 넣을 수 있습니다.
먼저 imshow에서의 텍스트 넣는 방법입니다.
plt.imshow(df,cmap='hot',interpolation='none')
for i in range(df.shape[1]):
for j in range(df.shape[0]):
plt.text(i,j,round(df.iloc[j,i],1),ha='center',va='center')
plt.xticks(range(len(df.columns)),df.columns)
plt.yticks(range(len(df.index)), df.index)
plt.colorbar()
plt.show()
pcolor에서의 텍스트 넣는 방법입니다.
pcolor는 i,j 위치가 약간 달라서 0.5씩 더해주어야 합니다.
plt.pcolor(df.values,cmap='hot')
for i in range(df.shape[1]):
for j in range(df.shape[0]):
plt.text(i+0.5,j+0.5,round(df.iloc[j,i],1),ha='center',va='center')
plt.xticks(range(len(df.columns)),df.columns)
plt.yticks(range(len(df.index)), df.index)
plt.colorbar()
plt.show()
마치며
색상 바꾸는 방법은 아래 포스팅을 참고하시기 바랍니다.
관련 포스팅
ndarray 랜덤한값 생성
'Python > 그래프 그리기' 카테고리의 다른 글
[Python] boxplot 그리기(matplotlib,seaborn) (2) | 2022.05.24 |
---|---|
[python] heatmap 색상바꾸기(컬러맵 만들기) (0) | 2022.03.24 |
[cufflinks,plotly] 파이썬으로 주식차트 그리기 (0) | 2021.05.29 |
[plotly] 파이썬으로 액티비티한 그래프 그리기 (2) | 2021.05.24 |
[matplotlib] 3D plot 앵글 바꾸기(view_init) (0) | 2021.05.22 |