我想访问我的matplotlib colobar上的刻度标签,以便可以操作它们。

我的起始标签可能是[-2,-1,0,1,2]。

我用过:

locs,oldlabels = plt.xticks()
newlabels = ['a','b','c','d','e']
plt.xticks(locs, newlabels)


这可行。但是我不想手动写新标签。我想访问旧标签,以便可以使用新标签,例如[2 *(-2),2 *(-1),2 * 0、2 * 1、2 * 2]。

我只是不知道如何“了解”旧标签。我搜索了所有内容并尝试了很多方法,但是我所做的事情根本上是错误的。

我尝试打印oldlabels [0],但得到了Text(0,0,u'\ u22122.0')。



编辑:

我目前正在做:

new_labels = [1,2,3,4,5,6,7,8,9]
colorbarname.ax.set_xticklabels(new_labels)


哪个有效。但是我想将它们设置为旧值的2倍。如何自动执行此操作?我需要提取旧标签值,乘以(例如)2,用新值更新轴标签。

最佳答案

如果您的数据不限于[0,1],建议您在将数据传递到颜色表时使用规范,而不要更改数据并重新标记颜色条:http://matplotlib.org/api/cm_api.html?highlight=norm%20colormap#matplotlib.cm.ScalarMappable.norm

但是,您可以通过直接操纵基础轴来重新标记颜色栏:

import numpy as np
import pylab as plt

A = np.random.random((10,10))

plt.subplot(121)
plt.imshow(A,interpolation='nearest')

cb = plt.colorbar()
oldlabels = cb.ax.get_yticklabels()
print(map(lambda x: x.get_text(),oldlabels))
newlabels = map(lambda x: str(2 * float(x.get_text())), oldlabels)
print(newlabels)
cb.ax.set_yticklabels(newlabels)
plt.show()




哦,现在我找到了matplotlib画廊示例,几乎相同:http://matplotlib.org/examples/pylab_examples/colorbar_tick_labelling_demo.html

关于python - 操作颜色条上的刻度标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29053132/

10-09 16:13
查看更多