2014-10-29 84 views
0

我正在尝试更改子图中的刻度:结果在下图中。无法更改子图中的刻度

我使用下面的代码:

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() 

改变蜱我用xticks(tik,lab)其中ticklab是包含我的新蜱和标签,但是Python(2.7,如果它的事项)名单x轴覆盖我的标签到旧的。

我在做什么错?

enter image description here

+0

你可以提供一个你的代码的最小工作示例? – Ffisegydd 2014-10-29 10:07:47

+0

@Ffisegydd这可能是一个问题:列表'd,L,d1'是从长文件中读取的,'dm,LM,d1m'是平均值,'dma,Lma,d1ma'是最合适的值。 “chi”是卡方 – mattiav27 2014-10-29 10:36:01

+3

在这种情况下,您是否可以创建一些仍然能够复制问题的值?你也可以将它简化为一个简单的子曲线? (这是最低工作示例的*最小*部分)) – Ffisegydd 2014-10-29 10:36:56

回答

0

我解决了这个问题(感谢反正):xticks是插曲(我认为)的方法,所以它在以下方式调用:

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