在子图

时间:2017-06-29 10:31:01

标签: matplotlib subplot

我想创建一个3x2的子图,每个子图有两个y轴。他们应该共享所有轴。在创建如下的子图时,x和y1轴由选项共享:

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轴,就像用另一个轴完成一样,它只更新轴的比例。 z1和z2定义了图的位置。

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

有没有其他方法可以共享y2轴,因为遗憾的是没有子图功能的选项?

I get the following

最好的问候

1 个答案:

答案 0 :(得分:0)

该行应为

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

因为你想与新创建的双轴而不是下一些轴共享axarray[z1,z2]

enter image description here

我要说的是,分享双胞胎的y轴实际上并不实用,只需在原始轴上激活正确的刻度标记即可获得相同的效果。