Matplotlib で 2D ヒートマップをプロットする方法

  1. 2D ヒートマップをプロットするための imshow() 関数
  2. Seaborn ライブラリを含む 2D ヒートマップ
  3. pcolormesh() 関数

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()

imshow 関数を使用した 2D ヒストグラム

cmap はカラーマップであり、ここから別の組み込みの colormaps を選択することもできます。

interpolation は、nearestbilinearhamming などの補間方法です。

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 の 2D ヒストグラム

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()

出力:

pcolormesh 関数を使用した 2D ヒストグラム

comments powered by Disqus