2017-06-29 40 views
-1

我想创建一个3x2的子图,每个子图具有两个y轴。他们应该共享所有的轴。在子图中共享y轴

fig, axarray = plt.subplots(3,2, sharex = True, sharey = True) 
z1 = 0 
z2 = 0 
ax = list() 
counter = 0 

for i in range(0,len(x)): 

    axarray[z1,z2].plot(x[i] , y[i]) 
    ax.append(axarray[z1,z2].twinx()) 

    if z2 == 0 : 
     axarray[z1,z2].get_shared_y_axes().join(axarray[z1,z2], axarray[z1,z2+1]) <-<-<-<- 
    ax[counter].plot(x[i] , y[i] , '-r') 

    counter += 1 
    z2 += 1 
    if z2 == 2: 
     z1 += 1 
     z2 = 0 

基本上以下行应该共享Y2轴,就像它与其他轴完成,所有副区(在一个较旧的线程发现之间:x和Y1轴由选项同时创造这样的次要情节共享),它只是更新轴的比例。 z1和z2定义了绘图的位置。

axarray[z1,z2].get_shared_y_axes().join(axarray[z1,z2], axarray[z1,z2+1]) 

是否有任何其他方式来共享y2轴,因为不幸的是没有选择子图功能?

I get the following

问候

回答

0

该行应该读

axarray[z1,z2].get_shared_y_axes().join(axarray[z1,z2], ax[counter]) 

,因为你想分享axarray[z1,z2]与新创建twinx轴而不是一些未来轴。

enter image description here

我只想说的是共享twinx的Y轴是不实际的用处,你可以通过只激活原始轴右ticklabels同样的效果。

+0

我想分享第一列的所有地块与第二列的双胞胎的y轴。因此,我试图分享它(z2 == 0 < - 第一列)与相同的z1,但z2 = 1的情节。 –

+0

我的理解整个问题确实存在问题。创造的情节对我来说很好,究竟是什么问题? – ImportanceOfBeingErnest

+0

子图分享x和y1轴。如果y2轴是共享的,那么将不会有任何标签(我不知道是什么字),就像第1列中的情节之间的情况一样。感谢您的帮助。 –

相关问题