Python
 Computer >> コンピューター >  >> プログラミング >> Python

【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(最大値側)で赤が最も強くなります。これにより、緑→白→赤という滑らかなグラデーションが実現されます。

出力結果

【Matplotlib】Pythonで緑から赤へのグラデーションヒートマップを作成する方法

上記のコードを実行すると、-5から5の範囲で正規化されたヒートマップが表示されます。値が小さいセルほど緑に、大きいセルほど赤に近い色で描画され、図の右側には数値と色の対応を示すカラーバーが表示されます。

  1. PythonのMatplotlibでヒストグラムを作成する方法をわかりやすく解説

    Matplotlibは、データ可視化のために広く使われている人気のPythonライブラリです。データの可視化は非常に重要なステップです。数値を一つずつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるからです。また、定量的な洞察を効果的に伝える手段としても優れています。MatplotlibとはMatplotlibは、データをもとに2次元のプロット(グラフ)を作成するためのライブラリです。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも簡単に行えます。IPythonシェル、Jupyter Noteboo

  2. Matplotlibを使ってPythonで正弦波(サイン波)のグラフを描く方法

    Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データを可視化することは、数値を一つひとつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるため、データ分析において非常に重要なステップとなります。また、定量的な洞察を視覚的に伝えることで、聴衆への説明も格段に分かりやすくなります。 Matplotlibは主に2次元のプロット(グラフ)を作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーション内に簡単に組み込むことができます。IPythonシェル、Jupyt