不能改变子图中的刻度

时间:2014-10-29 09:46:50

标签: python-2.7 matplotlib axes subplot

我正在尝试更改子图中的刻度:结果如下图所示。

我使用以下代码:

plt.subplot(2,2,1)
plt.scatter(d,d1,c=chi,s=25,edgecolor='')
plt.xticks(tic,lab)
plt.vlines(dm,min(d1),max(d1),color='b')
plt.vlines(dma,min(d1),max(d1),color='b')
plt.hlines(d1ma,min(d),max(d),color='b')
plt.hlines(d1ma,min(d),max(d),color='b')
plt.xlabel("$\delta$")
plt.ylabel('$\delta_1$')
plt.colorbar()

plt.subplot(2,2,3)
plt.scatter(d,L,c=chi,s=25,edgecolor='')
plt.xticks(tic,lab)
plt.vlines(dm,min(L),max(L),color='b')
plt.vlines(dma,min(L),max(L),color='b')
plt.hlines(Lm,min(d),max(d),color='b')
plt.hlines(Lma,min(d),max(d),color='b')
plt.xlabel("$\delta^\prime$")
plt.ylabel('L')
plt.colorbar()


plt.subplot(2,2,4)
plt.scatter(d1,L,c=chi,s=25,edgecolor='')
plt.vlines(d1m,min(L),max(L),color='b')
plt.vlines(d1ma,min(L),max(L),color='b')
plt.hlines(Lm,min(d1),max(d1),color='b')
plt.hlines(Lma,min(d1),max(d1),color='b')
plt.xlabel("$\delta_1$")
plt.ylabel('L')
plt.colorbar()

plt.savefig('cnf_lin.png')
plt.show()

更改x轴中的刻度我使用xticks(tik,lab)其中ticklab是包含我的新刻度和标签的列表,但python(如果重要则为2.7)会覆盖我的标签旧的。

我做错了什么?

enter image description here

1 个答案:

答案 0 :(得分:0)

我解决了这个问题(无论如何,谢谢):xticks是一个subplot方法(我认为),所以必须按以下方式调用它:

a1=plt.subplot(2,2,1)
a1.set_xticks(list)  #list contains the new ticks
....  # the rest of the code