我正在尝试更改子图中的刻度:结果如下图所示。
我使用以下代码:
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)
其中tick
和lab
是包含我的新刻度和标签的列表,但python(如果重要则为2.7)会覆盖我的标签旧的。
我做错了什么?
答案 0 :(得分:0)
我解决了这个问题(无论如何,谢谢):xticks
是一个subplot方法(我认为),所以必须按以下方式调用它:
a1=plt.subplot(2,2,1)
a1.set_xticks(list) #list contains the new ticks
.... # the rest of the code