在matplotlib颜色栏中对齐刻度标签


问题内容

我有一个带有正负值的色条,它们会自动生成(我没有设置它们)。不幸的是,减号破坏了文本的垂直对齐方式。如何将刻度标签中的所有文本向右对齐,或者如何在我的正数之前插入空格以使其看起来不错?

在此处输入图片说明


问题答案:

我正要问同样的问题,然后终于找到了你的问题。因此,我想添加自己的解决方法。

最初,我使用Rutger
Kassies给出
的完全相同的解决方案。但是,在绘制时ipythonx当查看小窗口或将图形设置为全屏时,相同的位置偏移量将得出截然不同的结果。

我最终决定设置pad颜色栏的刻度标签。 借用 公然窃取Rutger的示例代码:

a = np.random.randn(10,10)

fig, ax = plt.subplots()

im = ax.imshow(a, interpolation='none')
cb = plt.colorbar(im)

ticklabs = cb.ax.get_yticklabels()
cb.ax.set_yticklabels(ticklabs,ha='right')
cb.ax.yaxis.set_tick_params(pad=45)  # your number may vary

当跨各种窗口大小和各个方面使用时,此替代方法似乎会提供更加一致的结果。

这里有4个输出来演示我的意思:第一行是位置偏移解决方案,下一行是我的填充解决方案。左边是默认的图形窗口尺寸,savefig将图形窗口弹出到全屏后右侧是ged:

顶排较旧的解决方案,底排是我的