Matplotlib で 2D ヒートマップをプロットする方法
Suraj Joshi
2023年1月30日
2D ヒートマップをプロットするには、次のいずれかの方法を使用できます。
- 関数
imshow()
でパラメータinterpolation='nearest'
とcmap='hot'
を指定します Seaborn
ライブラリpcolormesh()
関数
2D ヒートマップをプロットするための imshow()
関数
imshow
関数を使用するための構文:
matplotlib.pyplot.imshow(X,
cmap=None,
norm=None,
aspect=None,
interpolation=None,
alpha=None,
vmin=None,
vmax=None,
origin=None,
extent=None,
shape= < deprecated parameter > ,
filternorm=1,
filterrad=4.0,
imlim= < deprecated parameter > ,
resample=None,
url=None,
*,
data=None,
**kwargs)
コード例:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.random((8, 8))
plt.imshow(data, cmap="cool", interpolation="nearest")
plt.show()
cmap
はカラーマップであり、ここから別の組み込みの colormaps
を選択することもできます。
interpolation
は、nearest
、bilinear
、hamming
などの補間方法です。
Seaborn
ライブラリを含む 2D ヒートマップ
Seaborn
ライブラリは Matplotlib
の上に構築されています。seaborn.heatmap()
関数を使用して 2D ヒートマップを作成できます。
import numpy as np
import seaborn as sns
import matplotlib.pylab as plt
data = np.random.rand(8, 8)
ax = sns.heatmap(data, linewidth=0.3)
plt.show()
Seaborn はまた、ヒートマップ
の横に勾配をプロットします。
pcolormesh()
関数
2D ヒートマップをプロットする別の方法は、pcolormesh()
関数を使用することです。これは、非規則的な長方形グリッドで疑似カラープロットを作成します。pcolor()
関数のより高速な代替手段です。
import numpy as np
import matplotlib.pyplot as plt
b, a = np.meshgrid(np.linspace(0, 5, 130), np.linspace(0, 5, 130))
c = (a ** 2 + b ** 2) * np.exp(-(a ** 2) - b ** 2)
c = c[:-1, :-1]
l_a = a.min()
r_a = a.max()
l_b = b.min()
r_b = b.max()
l_c, r_c = -np.abs(c).max(), np.abs(c).max()
figure, axes = plt.subplots()
c = axes.pcolormesh(a, b, c, cmap="copper", vmin=l_c, vmax=r_c)
axes.set_title("Heatmap")
axes.axis([l_a, r_a, l_b, r_b])
figure.colorbar(c)
plt.show()
出力:
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn