Python의 seaborn으로 그린 ​​히트 맵에 수직선을 그리는 방법

소개



히트 맵은, 가로축과 세로축에 공간적인 좌표를 취해 표시하는 것이 좋다. 게다가, 가로축에 시간, 세로축에 주파수를 취하는 STFT(Short-Time Fourier Transform)의 결과를 묘화하는 것과 같이, 가로축을 시간에 취하고 싶다고 하는 때가 있습니다. 그 때, 해석에 있어서 이벤트가 언제 발화했는지를 그림에 넣기 위해서, 임의의 장소에 수직선을 넣고 싶다고 생각했습니다. seaborn에서 수직선을 그리는 방법이 좀처럼 발견되지 않았으므로 비망록으로 남겨 둡니다.

목표



히트맵에 수직선을 넣는다

방법



보통 axvline을 사용하여 넣을 수있는 것 같다. 그래서 실제로 해봤다.

vline_heatmap.py
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

# サンプルの配列作成
arr = np.random.rand(20, 20)

# ヒートマップの表示(左側)
fig, (ax1, ax2) = plt.subplots(1, 2)
sns.heatmap(arr, vmin=0, vmax=5, cmap="jet", ax=ax1)

# ヒートマップに垂直線を入れて表示(右側)
sns.heatmap(arr, vmin=0, vmax=5, cmap="jet", ax=ax2)
ax2.axvline(x=4, linewidth=2, color="w")

# 描画
plt.show()

그리기 결과



왼쪽에 수직선 없음, 오른쪽에 수직선 있는 그리기 결과를 나타냅니다.


의견 등



본 기사의 코멘트에 써 주시거나, 이하의 메일 주소까지 부탁합니다([at]를 @로 바꾸어 주세요).

akira.kashihara[at]hotmail.com

참고



1의 기사를 참고로, 수직선을 조사해 추적했는데, 2의 기사에 닿아, 시험해 보았습니다.
직접 쓰고 있는 다른 기사 등 있으면 가르쳐 주시면 도움이 됩니다.

1) seaborn을 사용한 그래프에서 임의의 y축의 위치에 가로선을 그립니다.
2) matplotlib.pyplot.axvline

좋은 웹페이지 즐겨찾기