[Python] Seabornのヒートマップでマップ上にラベルを表示する
概要
seabornでheatmapを作成する際、マップ上にラベルを表示したい場合があります。
今回はそんな方法についてご紹介します。
方法
heatmapを作る数値をそのまま表示する場合
annot=Trueとすればheatmapの引数に渡したデータの値をマップ上に値を表示できます。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x=np.random.randint(0, 10, (8, 8))
fig, ax=plt.subplots()
ax=sns.heatmap(x, annot=True)
plt.show()

heatmapを作る数値とは別のラベルを表示したい場合
heatmapを作るデータとは別のラベルを表示したい場合もあります。
例えば、各数値について、それがある条件を満たせば1、満たさなければ0を表示する、などです。
そのような場合は、annotにデータと同じサイズの配列を渡せば良いです。
y=np.zeros(x.shape)
for i in range(x.shape[0]):
for j in range(x.shape[1]):
if x[i][j]%2==0:
y[i][j]=1 //xが偶数の場合yは1とする
//略
ax=sns.heatmap(x, annot=y)
//略

最新記事
すべて表示現象 raspberry piでfirestoreをimportしようとするとタイトルのエラーが発生。 from from firebase_admin import firestore ImportError: Failed to import the Cloud Firestore library for Python. Make sure to install the "google-clo
概要 フィッティングを行いたい場合、pythonならばscipy.optimize.leastsqなどでできます。 しかし、フィッティングを行う場合、フィッティングパラメータに条件を付けたい場合も多々あります。 例えば、下記のようにパラメータa、bは共に正の範囲で最適な値を求める、という感じです。 f(x, a, b)=a*x^2+b (a>0 and b>0) 今回はそんな手法についてご紹介しま
現象 spicy.optimizeのleastsqで最小二乗法でフィッティングをしようとしたらタイトルのエラーが発生。 from scipy import optimize import numpy as np def internalFunc1(x, plist): a=plist[0] b=plist[1] return a*x**2+b