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

Seabornでヒートマップの各セルに注釈(数値)を表示する方法

Seabornで作成したヒートマップの各セルに数値の注釈を表示したい場合は、heatmap()メソッドの引数にannot=Trueを指定するだけで実現できます。これにより、セルごとの色の濃淡に対応する実際の値が自動的にセル内に描画されます。

手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • 5列を持つPandasデータフレームを作成します。
  • sns.heatmap()を使ってデータフレームをプロットします。このとき、引数にannot=Trueを指定します。必要に応じてannot_kwsで注釈のフォントサイズなどを細かく調整することも可能です。
  • 図を画面に表示するには、plt.show()メソッドを呼び出します。

コード例

import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
df = pd.DataFrame(np.random.random((5, 5)), columns=["a", "b", "c", "d", "e"])
sns.heatmap(df, annot=True, annot_kws={"size": 7})
plt.show()

実行結果

上記のコードを実行すると、5×5のランダムな値からなるヒートマップが描画され、各セルの中に対応する数値が小さなフォントで注釈として表示されます。annot_kws={"size": 7}の部分で注釈テキストのサイズを7ポイントに設定しているため、セルに対して文字が大きすぎず、見やすい仕上がりになります。

なお、fmt引数を組み合わせると、表示する数値の書式も制御できます。たとえばfmt=".2f"と指定すれば、小数点以下2桁に揃えて表示でき、より読みやすいヒートマップになります。

  1. MatplotlibとSeabornでヒートマップを正方形に表示する方法

    SeabornのFacetGridでヒートマップを正方形に表示したい場合、heatmap()メソッドを使って10×10のランダムデータセットを可視化するのが簡単な方法です。この記事では、その具体的な手順とサンプルコードを紹介します。実行手順最小値-1、最大値10の範囲で、サイズ10×10のランダムデータを作成します。heatmap()メソッドにデータとカラーマップ「twilight_r」を指定し、矩形データを色分けされた行列としてプロットします。図を表示するには、show()メソッドを使用します。サンプルコードimport numpy as np import seaborn as sn im

  2. Matplotlibのプロットにテーブル(表)を配置する方法

    データの可視化では、グラフと一緒に表形式のデータを表示したいケースがよくあります。Matplotlibではtable()メソッドを使うことで、プロット上に簡単にテーブルを配置できます。この記事では、pandasのデータフレームをもとに、Matplotlibのプロット内に見栄えの良いテーブルを作成する手順を解説します。 実装の手順 subplots()メソッドを使って、フィギュアサイズ(7, 7)のfigureとサブプロット(Axes)を作成します。 time(日時)と speed(速度)の2つの列を持つpandasのデータフレームを作成します。 df.shapeなどで配列のサイズを取得します