【发布时间】:2012-10-30 23:21:36
【问题描述】:
我对颜色条的文本位置有疑问。我正在使用 matplotlib Basemap 制作一些绘图,并且我使用 colorbar() 函数。
现在我需要将我的颜色条放在我的图的左侧。所以我使用location='left',
但是刻度和标签的文本在颜色栏的右侧给出,覆盖
图片的一部分。
有什么办法可以改变栏左侧的文字吗?
【问题讨论】:
标签: matplotlib colorbar matplotlib-basemap
我对颜色条的文本位置有疑问。我正在使用 matplotlib Basemap 制作一些绘图,并且我使用 colorbar() 函数。
现在我需要将我的颜色条放在我的图的左侧。所以我使用location='left',
但是刻度和标签的文本在颜色栏的右侧给出,覆盖
图片的一部分。
有什么办法可以改变栏左侧的文字吗?
【问题讨论】:
标签: matplotlib colorbar matplotlib-basemap
遗憾的是,不是以完全集成的方式,但是当您处理诸如 mpl 之类的 OO 绘图库时,大多数事情都是可能的。
我在大约 3 个月前(https://github.com/matplotlib/matplotlib/pull/956)进行了一项更改,以更易于访问的形式实现了此功能,但我们决定不合并它,因为有一些正在发生的根本性变化使这种变化不太适用于多种类型的情节。
要在左侧生成带有刻度的颜色条,您可以执行以下操作:
<your_colorbar_instance>.ax.yaxis.set_ticks_position('left')
一个真实的工作示例:
import matplotlib
# create a dummy scalar mappable to create a colour bar with:
sm = plt.cm.ScalarMappable(cmap=plt.get_cmap('Reds'))
sm.set_array(range(10))
# create the colorbar and put the ticks on the left hand side
cb = plt.colorbar(sm)
cb.ax.yaxis.set_ticks_position('left')
plt.show()
HTH,
【讨论】:
<your_colorbar_instance>.ax.yaxis.set_label_position('left')