2012年02月29日 星期三 23:47
画了个图,想把y轴改成百分数的形式(例如60%)。已经把x轴标签改了,但y轴怎么都改不了:
ax1=plt.gca()
ax1.xaxis.set_ticks(ticks=[9,10,11,12])
xlabels = [u'9月',u'10月',u'11月',u'12月']
plt.xticks([9,10,11,12],xlabels) #x轴改为时间,done
a=ax1.yaxis.get_ticklabels()
ylabels=[] #自定义的标签
for nl in range(len(a)):
lebel_temp=('%1.0f'%a[nl].get_text()+'%') #y轴的值被事先乘以了100
ylabels.append(lebel_temp)
pos=ax1.yaxis.get_majorticklocs()
plt.yticks(pos,yla)
2012年03月01日 星期四 11:49
现在可以了,我在a=ax1.yaxis.get_ticklabels()这句话之前添加了 plt.show(),
否则a[nl].get_text()都等于'',最后y轴的标签全变成了百分号%,而没有数字
搞不懂为什么?难道要改标签就必须把图画出来吗??
2012年03月01日 星期四 11:56
最好使用FuncFormatter,书中有关于这方面的说明。
from matplotlib.ticker import FuncFormatter def myfunc(x, pos=0): return '%1.2f''%(100*x) ax = subplot(111) ax.plot(x, y) ax.xaxis.set_major_formatter(FuncFormatter(myfunc))
Zeuux © 2024
京ICP备05028076号