python3で、matplotlibまたはseabornを使用して、下の画像のようなheatmapを作成方法を教えていただきたいです。
<データ>
matrix: 118行118列の類似行列(0〜1),行、列ともに同じ項目
labels: matrixの各項目のクラスタラベル番号(0,1,2,3)
<表現したい形>
表現法: heatmap
色: labels
透過度: matrix
matplotlibやsnsで、matrixのheatmapを作成することはできるのですが、これに加えクラスタによって色を変えるところで行き詰まっています。
例えばmatplotlibの場合、
python
1def draw_heatmap(data, row_labels, column_labels, size): 2 3 fig, ax = plt.subplots(figsize=size) 4 5 heatmap = ax.pcolor(data, cmap=plt.cm.Blues) 6 7 ax.set_xticks(np.arange(data.shape[0]) + 0.5, minor=False) 8 ax.set_yticks(np.arange(data.shape[1]) + 0.5, minor=False) 9 10 ax.invert_yaxis() 11 ax.xaxis.tick_bottom() 12 13 ax.set_xticklabels(row_labels, rotation=90, minor=False) 14 ax.set_yticklabels(column_labels, minor=False) 15 fig.colorbar(heatmap, ax=ax) 16 17 return heatmap
とまでは分かるのですが、色と透明度で表す場合、どのようにしたらよいかわかりません。cmapを独自関数で書くのか、レイヤーを重ね合わせるのか。。
ご教示いただけますと助かります
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/07 08:11