matplotlib 中颜色条标签的对齐

alignment of color bar labels in matplotlib

我有一个横跨整个 canvas 的水平彩色地图,两端的标签显示最小值和最大值。问题是对于不同的最小值和最大值,标签会更向外粘,从而改变图像的整体大小,这是我不想要的。

我想把左边的标签(图中-40000)向左对齐,右边的标签(图中40000)向右对齐来解决这个问题,但我想不通怎么做。

简而言之,我的问题是,如何更改颜色条中标签的对齐方式?

这应该让你开始:

import matplotlib.pyplot as plt
import numpy as np

# some random data to plot
x = np.random.rand(10,10)*80e3 - 40e3
plt.imshow(x, aspect='auto', vmin=-40e3, vmax=40e3)

# create the colorbar
cb = plt.colorbar(orientation='horizontal', ticks=[-40e3,0,40e3])

# get the xtick labels
tl = cb.ax.get_xticklabels()

# set the alignment for the first and the last
tl[0].set_horizontalalignment('left')
tl[-1].set_horizontalalignment('right')

plt.show()

结果: