2014-10-29 88 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