如何在图像热图(python)中设置图例?

Posted

技术标签:

【中文标题】如何在图像热图(python)中设置图例?【英文标题】:How to set a legend in an image heatmap (python)? 【发布时间】:2021-07-18 22:04:04 【问题描述】:

如何将垂直图例稍微向上移动 (到行的中心)? 我需要这些非常大的字母

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


labels_raw=np.array([["98.75\n±0.50"  ,"1.25\n±0.82"],[ "1.32\n±0.74", "98.68\n±0.74"]])
cm_raw=np.array([[98.75  ,1.25],[ 1.32, 98.68]])

sns.set(font_scale=2.5)


labels=labels_raw
cm=cm_raw


fig, ax = plt.subplots(figsize=(5,5))

target_names = ['test1','test2'] 


f=sns.heatmap(cm, annot=labels, fmt=':^', xticklabels=target_names, 
          yticklabels=target_names,annot_kws="size": 25,cbar=False)
plt.show(block=False)  
#plt.show()
fig=f.get_figure()

【问题讨论】:

【参考方案1】:

您可以旋转标签并将垂直对齐设置为居中:

fig, ax = plt.subplots(figsize=(5,5))

target_names = ['test1','test2'] 

sns.heatmap(cm, annot=labels, fmt=':^', xticklabels=target_names, 
          yticklabels=target_names,annot_kws="size": 25,cbar=False,ax=ax)

ax.set_yticklabels(target_names, rotation=0, fontsize="25", va="center")

或者这将使 y 轴标签保持垂直:

sns.heatmap(cm, annot=labels, fmt=':^', xticklabels=target_names, 
          yticklabels=target_names,annot_kws="size": 25,cbar=False,ax=ax)

ax.set_yticklabels(target_names, fontsize="25", va="center")

【讨论】:

以上是关于如何在图像热图(python)中设置图例?的主要内容,如果未能解决你的问题,请参考以下文章

ComplexHeatmap:如何以不同的方式放置热图图例和注释图例?

如何在 OpenLayers 中设置初始地图区域?

Vega-lite 从数据中设置颜色,同时保留图例

如何在html中设置img属性的绝对路径

如何在 jekyll 中设置大小/旋转图像?

如何在 Swift 中设置图像按钮