【问题标题】:How to set a legend in an image heatmap (python)?如何在图像热图(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()

【问题讨论】:

    标签: python position seaborn legend heatmap


    【解决方案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")
    

    【讨论】:

      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多