python - 如何将色阶标签移动到 matplotlib/xarray 中彩色字段的中间?

标签 python matplotlib colorbar categorical-data python-xarray

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

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,这不是数据集中的值)?

最佳答案

为此,您必须直接使用 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

关于python - 如何将色阶标签移动到 matplotlib/xarray 中彩色字段的中间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38609648/

相关文章:

python - gcc 链接器的问题 - 为 python 编译 c 函数

python - Django Queryset,访问除属于登录用户的查询之外的所有查询?

python - 错误类型-消息: unknown error

python - 双曲面绘图

python - matplotlib 中图像网格上的两个颜色条

python - 颜色条改变python中子图的大小

python - 有没有办法在 seaborn 点图中设置透明度/alpha 级别?

python - 在保存的图像上裁剪 x 轴标签

matplotlib - 避免在matplotlib图形的PGF导出中指定字体系列

matlab - 给定子图的句柄,如何获取其所有关联的颜色条句柄?