다른 일에는 별 문제가 없는데, heatmap을 그릴때는 종종 문제가 됩니다. 특히 xtick을 위쪽으로 두면 다음 그림에서처럼 xtick과 title이 겹쳐서 보기 흉해져요.
import seaborn as sns import numpy as np import pandas as pdimport matplotlib.pyplot as plttemp_df = pd.DataFrame(np.random.normal(0, 1, (10, 10)), columns= ["col{}".format(i) for i in range(0, 10)], index= ["idx{}".format(i) for i in range(0, 10)] )sns.heatmap(temp_df, cmap=plt.cm.rainbow, linewidths=10)plt.tick_params(labelsize=13) plt.title(k, fontsize=15)plt.gca().xaxis.tick_top(), plt.xticks(rotation=0), plt.yticks(rotation=0)plt.tight_layout()plt.savefig('../../assets/images/markdown_img/180813_plt_title.svg')plt.show()
그림을 보면, title과 xtick이 겹쳐 있습니다.
set title position
간단하게 plt.title()에서 좌표를 넘겨주면 됩니다.
plt.title(k, position=(0.5, 1.0+0.05), fontsize=15)## title 위치 변경
이렇게 아래 코드를 실행하면 그림에서 title이 예쁘게 잘 나오는 것을 알 수 있습니다.
temp_df = pd.DataFrame(np.random.normal(0, 1, (10, 10)), columns= ["col{}".format(i) for i in range(0, 10)], index= ["idx{}".format(i) for i in range(0, 10)] )plt.figure(figsize=(8, 6))sns.heatmap(temp_df, cmap=plt.cm.rainbow, linewidths=10)plt.tick_params(labelsize=13) plt.title(k, position=(0.5, 1.0+0.05), fontsize=15)## title 위치 변경 plt.gca().xaxis.tick_top(), plt.xticks(rotation=0), plt.yticks(rotation=0)plt.tight_layout()plt.savefig('../../assets/images/markdown_img/180813_plt_better_title.svg')plt.show()