在matplotlib颜色栏中对齐刻度标签
问题内容:
我有一个带有正负值的色条,它们会自动生成(我没有设置它们)。不幸的是,减号破坏了文本的垂直对齐方式。如何将刻度标签中的所有文本向右对齐,或者如何在我的正数之前插入空格以使其看起来不错?
问题答案:
我正要问同样的问题,然后终于找到了你的问题。因此,我想添加自己的解决方法。
最初,我使用Rutger
Kassies给出
的完全相同的解决方案。但是,在绘制时ipython
,x
当查看小窗口或将图形设置为全屏时,相同的位置偏移量将得出截然不同的结果。
我最终决定设置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: