如何在matplotlib/xarray中将色标标签移到彩色字段的中间?

2024-06-14 18:42:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个具有离散值(=类别/因子)的热图,创建如下:

import xarray
dats =  xarray.DataArray([[2,4,3,5,1],[8,4,5,3,2], [9,3,4,4,1]])
dats.plot(levels=range(0, 11, 1), cmap='Blues')

Heatmap

我想把色标/图例上的数字移到相应字段的中间。我(和同事们)发现他们在磁场交叉处的位置有点误导,特别是考虑到热图中x轴上的记号本身就在磁场的正中间。在

如何将色阶上的这些值移到字段的中间(并去掉10,这不是数据集中的值)?在


Tags: importplotrange类别因子cmap热图xarray
1条回答
网友
1楼 · 发布于 2024-06-14 18:42:55

为此,必须直接使用matplotlib:

import xarray
import matplotlib.pylab as plt
dats =  xarray.DataArray([[2,4,3,5,1],[8,4,5,3,2], [9,3,4,4,1]])
qm = dats.plot(levels=range(0, 11, 1), cmap='Blues', add_colorbar = False)

cbar = plt.colorbar(qm)
cbar.ax.get_yaxis().set_ticks([])
for j in range(0, 10, 1):
    cbar.ax.text(.5, (j+.5) / 10., j, ha='center', va='center', color='red')
cbar.ax.get_yaxis().labelpad = 15

plt.show()

enter image description here

相关问题 更多 >