更改seaborn热图的轴标签[重复]

Posted

技术标签:

【中文标题】更改seaborn热图的轴标签[重复]【英文标题】:Change axis labels for seaborn heatmap [duplicate] 【发布时间】:2021-11-25 14:29:45 【问题描述】:

我使用 seaborn 模块绘制特定区域内其中一个 Wifi AP 的热图。热图图符合我的规范。但是,我想将 X 轴和 Y 轴标签从字母更改为数字。例如,A 字母应该是 0.45,B 应该是 0.90,最后一个字母 O 应该是 6.75 数字。

我有轴标签 ABCDEFGHIJKLMNO 并想将它们更改为标签 0.45 0.90 1.35 1.80 2.25 2.70 3.15 3.60 4.05 4.50 4.95 5.40 5.85 6.30 6.75.

此外,我想将 x-label 添加为 x(m) 并将 y-label 添加为 y(m),x 和 y- 上的标签图中的轴。我已经在下面的示例中尝试过,但是这些标签没有显示出来。

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "Times New Roman"
array = [[-45,-45,-46,-47,-48,-49,-48,-50,-52,-51,-53,-54,-56,-58,-57], 
        [-44,-45,-47,-48,-49,-48,-48,-51,-50,-52,-54,-54,-56,-58,-57], 
        [-45,-46,-48,-47,-50,-50,-49,-50,-52,-51,-53,-54,-56,-58,-56], 
        [-46,-48,-47,-47,-51,-50,-48,-50,-49,-50,-52,-53,-54,-54,-55], 
        [-47,-50,-49,-47,-49,-49,-48,-50,-52,-51,-53,-54,-56,-56,-55], 
        [-48,-51,-49,-49,-50,-51,-50,-52,-53,-51,-52,-52,-52,-57,-56], 
        [-47,-52,-47,-50,-48,-49,-48,-50,-52,-51,-53,-52,-50,-54,-53],
        [-47,-49,-48,-49,-47,-48,-47,-49,-50,-50,-51,-52,-54,-55,-54], 
        [-49,-48,-47,-48,-47,-49,-48,-50,-51,-51,-53,-52,-53,-55,-53], 
        [-50,-48,-48,-47,-49,-50,-48,-49,-52,-52,-53,-54,-51,-58,-55], 
        [-52,-49,-49,-51,-48,-51,-48,-50,-53,-53,-53,-51,-52,-57,-54], 
        [-53,-51,-49,-51,-50,-51,-49,-52,-53,-54,-53,-53,-52,-56,-55], 
        [-51,-50,-51,-50,-51,-52,-50,-53,-54,-52,-53,-53,-54,-54,-53], 
        [-52,-52,-52,-53,-52,-54,-53,-56,-55,-53,-52,-54,-53,-55,-53], 
        [-54,-53,-53,-52,-54,-55,-56,-56,-54,-53,-53,-54,-56,-58,-54]]
df_cm = pd.DataFrame(array, index = [i for i in "ABCDEFGHIJKLMNO"],
                  columns = [i for i in "ABCDEFGHIJKLMNO"])
plt.figure(figsize = (10,7))
plt.title('AP1')
plt.xlabel('x(m)')
plt.ylabel('y(m)')
sn.heatmap(df_cm, annot=False)
plt.savefig('heatmap.png')
plt.savefig('heatmap.pdf')

【问题讨论】:

在手动设置 x/y 标签之前生成热图。 【参考方案1】:

这就是你的目标吗?请注意我是如何在 sn.heatmap 调用之后移动 xlabel 和 ylabel 生成的。

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "Times New Roman"
array = [[-45,-45,-46,-47,-48,-49,-48,-50,-52,-51,-53,-54,-56,-58,-57], 
        [-44,-45,-47,-48,-49,-48,-48,-51,-50,-52,-54,-54,-56,-58,-57], 
        [-45,-46,-48,-47,-50,-50,-49,-50,-52,-51,-53,-54,-56,-58,-56], 
        [-46,-48,-47,-47,-51,-50,-48,-50,-49,-50,-52,-53,-54,-54,-55], 
        [-47,-50,-49,-47,-49,-49,-48,-50,-52,-51,-53,-54,-56,-56,-55], 
        [-48,-51,-49,-49,-50,-51,-50,-52,-53,-51,-52,-52,-52,-57,-56], 
        [-47,-52,-47,-50,-48,-49,-48,-50,-52,-51,-53,-52,-50,-54,-53],
        [-47,-49,-48,-49,-47,-48,-47,-49,-50,-50,-51,-52,-54,-55,-54], 
        [-49,-48,-47,-48,-47,-49,-48,-50,-51,-51,-53,-52,-53,-55,-53], 
        [-50,-48,-48,-47,-49,-50,-48,-49,-52,-52,-53,-54,-51,-58,-55], 
        [-52,-49,-49,-51,-48,-51,-48,-50,-53,-53,-53,-51,-52,-57,-54], 
        [-53,-51,-49,-51,-50,-51,-49,-52,-53,-54,-53,-53,-52,-56,-55], 
        [-51,-50,-51,-50,-51,-52,-50,-53,-54,-52,-53,-53,-54,-54,-53], 
        [-52,-52,-52,-53,-52,-54,-53,-56,-55,-53,-52,-54,-53,-55,-53], 
        [-54,-53,-53,-52,-54,-55,-56,-56,-54,-53,-53,-54,-56,-58,-54]]

labels = [0.45, 0.90, 1.35, 1.80, 2.25, 2.70, 3.15, 3.60, 4.05, 4.50, 4.95, 5.40, 5.85, 6.30, 6.75]
df_cm = pd.DataFrame(array, index = labels,
                  columns = labels)
plt.figure(figsize = (10,7))
plt.title('AP1')
sn.heatmap(df_cm, annot=False)
plt.xlabel('x(m)')
plt.ylabel('y(m)')
plt.savefig('heatmap.png')
plt.savefig('heatmap.pdf')

【讨论】:

是的,完美。谢谢你。欣赏

以上是关于更改seaborn热图的轴标签[重复]的主要内容,如果未能解决你的问题,请参考以下文章

更改 seaborn 热图颜色条上的刻度大小

seaborn使用(样式管理)

Plotly:当 scaleanchor = x 时,如何调整带注释的热图的轴标签?

seaborn 热图的人工刻度标签

如何在 seaborn 热图标签中使用科学记数法?

Seaborn热图顶行和底行被部分截断[重复]