0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SuiSuiAdvent Calendar 2023

Day 17

Seabornでヒートマップ作成

Posted at

はじめに

Pythonのグラフ描画ライブラリ"seaborn"で描画できるヒートマップについての備忘録.

Seabornとは

Seabornはグラフ描画ライブラリであるmatplotlibに基づいたデータ視覚化ライブラリです.matplotlibに比べて,簡潔なコードでより洗練されたグラフを出力することができます.

ヒートマップ

【デフォルト】

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

arr_2d = np.arange(-8, 8).reshape((4, 4))

plt.figure()
sns.heatmap(arr_2d)

plt.show()

Figure_1.png


【オプション】

sns![Figure_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617469/120e583d-4fdd-966f-0e34-86ddaa2d67e5.png)
.heatmap(
    data,
    vmin=None,
    vmax=None,
    cmap=None,
    center=None,
    robust=False,
    annot=None,
    fmt='.2g',
    annot_kws=None,
    linewidths=0,
    linecolor='white',
    cbar=True,
    cbar_kws=None,
    cbar_ax=None,
    square=False,
    xticklabels='auto',
    yticklabels='auto',
    mask=None, ax=None,
    **kwargs
    )

vmin,vmax

最大値,最小値を設定.

sns.heatmap(arr_2d, vmin=-10, vmax=10)

Figure_1.png


cmap

カラーマップを変更.

sns.heatmap(arr_2d, cmap="cividis")

Figure_11.png


center

発散データをプロットする際に,カラーマップを中央に配置する値.このパラメータを使用すると,デフォルトのcmapが変更される.

sns.heatmap(arr_2d, center=-10) #1
sns.heatmap(arr_2d, center=0)   #2
sns.heatmap(arr_2d, center=10)  #3

Figure_1.png


robust

Trueかつvminまたはvmaxがない場合,カラーマップの範囲は,極値の代わりにロバストな分位数を使って計算される.

sns.heatmap(arr_2d, robust=True)

Figure_1.png


annot

Trueの場合,各セルにデータの値を書き込む.

sns.heatmap(arr_2d, annot=True)

Figure_1.png


fmt

注釈を追加する際に使用する文字列フォーマットコード.


annot_kws

annotTrueの場合のmatplotlib.axes.Axes.text()のキーワード引数.


linewidths

各セルを分割する線を引く.

sns.heatmap(arr_2d, linewidths=True)

Figure_1.png


linecolor

各セルを分割する線の色を変更する.

sns.heatmap(arr_2d, linewidths=True, linecolor="Blue")

Figure_1.png


cbar

カラーバーを描画するか設定する.

sns.heatmap(arr_2d, cbar=False)

Figure_1.png


cbar_kws

matplotlib.figure.Figure.colorbar()のキーワード引数.


square

Trueの場合,各セルが正方形になるようにAxesのアスペクトを"equal"に設定する.

sns.heatmap(arr_2d, cbar=False)

Figure_1.png


xticklabels, yticklabels

Trueの場合,データフレームの列名をプロットする.Falseの場合,列名をプロットしない.リスト形式の場合,これらの代替ラベルをxticklabelsとしてプロットする.整数の場合,列名を使用するが,n個のラベル毎にプロットする.autoの場合,重複しないラベルを密にプロットする.

lst_x = ["A", "B", "C", "D"]
lst_y = ["AA", "BB", "CC", "DD"]
plt.figure()
sns.heatmap(arr_2d, xticklabels=lst_x, yticklabels=lst_y)

Figure_1.png


square

Trueの場合,各セルが正方形になるようにAxesのアスペクトを"equal"に設定する.

sns.heatmap(arr_2d, cbar=False)

mask

maskがTrueのセルにはデータが表示されない.値がないセルは自動的にマスクされる.

#対角行列をマスクする
mask = np.eye(len(arr_2d))
sns.heatmap(arr_2d, mask=mask)

Figure_1.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?