我有一个带有正值和负值的颜色条,它们是自动生成的(我没有设置它们).不幸的是,减号打破了文本的垂直对齐方式.如何将勾选标签中的所有文本对齐到右边,或者在我的正数之前插入一个空格以使其看起来很好?

您可以更改文本的对齐方式。可能需要稍微更改标签的 (x) 位置以防止与颜色条本身重叠。
a = np.random.randn(10,10)
fig, ax = plt.subplots()
im = ax.imshow(a, interpolation='none')
cb = plt.colorbar(im)
for t in cb.ax.get_yticklabels():
t.set_horizontalalignment('right')
t.set_x(3.5)
Run Code Online (Sandbox Code Playgroud)

我刚想问同样的问题,最后找到了你的问题。所以我想添加我自己的解决方法。
起初我使用完全相同的解决方案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
Run Code Online (Sandbox Code Playgroud)
当在不同的窗口大小和方面使用时,这种解决方法似乎给出了更加一致的结果。
这里有 4 个输出来演示我的意思:顶行是位置移动解决方案,底行是我的填充解决方案。左边是默认的图形窗口大小,右边是savefig弹出图形窗口全屏后的尺寸: