아이공의 AI 공부 도전기

sns heatmap 잘림 현상 cut off solution - 아이공

matplotlib version 3.1.1에서 지금 seaborn heatmap 관련 시각화가 짤리는 현상이 보이고 있습니다.

때문에 이를 해결하기 위해 아래 3개 웹을 참조 2가지 솔루션을 말씀드리겠습니다.


URL 1 : https://github.com/mwaskom/seaborn/issues/1773

URL 2 : https://github.com/matplotlib/matplotlib/issues/14751

URL 3 : https://stackoverflow.com/questions/56942670/matplotlib-seaborn-first-and-last-row-cut-in-half-of-heatmap-plot


이것은 sns heatmap cut off라는 키워드로 더 많은 자료들을 찾아보실 수 있습니다.


Solution 1. matplotlib version 3.1.1 -> lower or higher

가장 확실한 방법으로 더 낮거나 높은 버전으로 변경하세요. 

만약 위 웹에 다르면 3.1.0으로만 바꿔도 잘 작동한다고 하지만 저는 3.1.0에서도 작동하지않아 3.0.3으로 바꿨더니 위 사진처럼 잘 작동하는 것을 확인할 수 있었습니다. anaconda 명령어를 아래 적어두겠습니다.


최근 2019.11월에 3.1.2가 출시되었던 것 같은데 이 문제가 해결되었다고 엄지 척을 24표나 받았으니 상향하셔도 좋을 것 같습니다.


참고로 jupyter notebook이시라면 껐다 다시 키는 것을 추천드립니다.

conda install -c conda-forge matplotlib=3.1.2 또는 3.1.0 선택

Solution 2. plt.set_ylim()을 활용하는 방법

버전이 설정이 귀찮거나 다른 방법을 알고싶다면 이 방법을 추천드립니다.

URL 2를 활용한 방법입니다.


ax = sns.heatmap()이라고 가정하겠습니다.

그렇다면 ax.get_ylim()을 통해 지금 표의 y축이 어디부터 어디까지인지 확인할 수 있습니다. 우리는 이것을 활용하여 set_ylim으로 수정할 것입니다.

buttom, top = ax.get_ylim()
print(buttom,top)
ax.set_ylim(buttom+0.5,top-0.5)
plt.show()

즐거운 코딩하세요~



공유하기

facebook twitter kakaoTalk kakaostory naver band
loading