概要
seabornで作成したheatmapのRGB値を取得します。
matplotlibのcmでheatmapと同じcolormapを指定し、cmapにheatmapで描画したデータをあてはめることでRGB値を取得しています。
実装
import numpy as np
from scipy import stats
import seaborn as sns
from matplotlib.colors import Normalize
import matplotlib.cm as cm
matrix = np.random.rand(3, 3)
heatmap = sns.heatmap(matrix,
cmap='plasma',
xticklabels = [""],
yticklabels = [""],
cbar_kws={"orientation": "horizontal"},
annot=True,
fmt=".1f")
cmap = cm.get_cmap('plasma')
data = matrix.flatten()
norm = Normalize()
rgba_values = cmap(norm(data))
for i in range(len(rgba_values)):
print([round(255*x) for x in rgba_values[i]])
おわりに
Heatmapのobjectから直接RGB値を取得する方法があればよかったのですが、ここは調査不足で、また調べてみようと思います。