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()
结果:
我有一个横跨整个 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()
结果: