【Matplotlib】Pythonで緑から赤へのグラデーションヒートマップを作成する方法
Matplotlibでは、LinearSegmentedColormapを使うことで独自のカラーマップを自由に定義できます。この記事では、値が低いほど緑、中央で白、高いほど赤へと変化するカラーマップを作成し、それをヒートマップに適用する手順を解説します。
作成の手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- 赤・緑・青の各チャンネルの変化を定義した辞書(cdict)を作成します。
- LinearSegmentedColormapを使い、線形セグメントからカラーマップを生成します。
- 図とサブプロットを作成します。
- 5×5のランダムデータを生成します。
pcolormeshで擬似カラープロット(ヒートマップ)を描画します。- ScalarMappableインスタンスに対してカラーバーを追加します。
show()メソッドで図を表示します。
コード例
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
cdict = {'red': ((0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 1.0, 0.7)),
'green': ((0.0, 0.7, 0.7),
(0.5, 1.0, 1.0),
(1.0, 0.0, 0.0)),
'blue': ((0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 0.0, 0.0))
}
GnRd = colors.LinearSegmentedColormap('GnRd', cdict)
fig, ax = plt.subplots(1)
data = np.random.rand(5, 5)*6.-3.
p = ax.pcolormesh(data, cmap=GnRd, vmin=-5, vmax=5)
fig.colorbar(p, ax=ax)
plt.show()
cdictの構造について
cdictでは、各色ごとに「位置」と「その位置での色の強さ」をタプルで指定します。上記の例では、位置0.0(最小値側)で緑が0.7と高く設定され、位置0.5(中央)で全色が1.0となって白になり、位置1.0(最大値側)で赤が最も強くなります。これにより、緑→白→赤という滑らかなグラデーションが実現されます。
出力結果

上記のコードを実行すると、-5から5の範囲で正規化されたヒートマップが表示されます。値が小さいセルほど緑に、大きいセルほど赤に近い色で描画され、図の右側には数値と色の対応を示すカラーバーが表示されます。
-
PythonのMatplotlibでヒストグラムを作成する方法をわかりやすく解説
Matplotlibは、データ可視化のために広く使われている人気のPythonライブラリです。データの可視化は非常に重要なステップです。数値を一つずつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるからです。また、定量的な洞察を効果的に伝える手段としても優れています。MatplotlibとはMatplotlibは、データをもとに2次元のプロット(グラフ)を作成するためのライブラリです。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも簡単に行えます。IPythonシェル、Jupyter Noteboo
-
Matplotlibを使ってPythonで正弦波(サイン波)のグラフを描く方法
Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データを可視化することは、数値を一つひとつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるため、データ分析において非常に重要なステップとなります。また、定量的な洞察を視覚的に伝えることで、聴衆への説明も格段に分かりやすくなります。 Matplotlibは主に2次元のプロット(グラフ)を作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーション内に簡単に組み込むことができます。IPythonシェル、Jupyt