问题描述
我试图用 twinx 轴制作两个子图,第一个子图上有 3 条曲线(curvey、curve1 和 curve2),第二个子图上有 3 条曲线(curvey、curve3 和 curve4)。但我没有得到我想要的。我想知道你们是否可以帮助我。
x = df['curvex']
y = df['curvey']
y1 = df['curve1']
y2 = df['curve2']
y3=df['curve3']
y4=df['curve4']
fig,ax = plt.subplots(figsize=(40,10),dpi=500)
plt.subplot(2,1,1)
fig.subplots_adjust(right=0.75)
twin1 = ax.twinx()
twin2 = ax.twinx()
twin2.spines['right'].set_position(('axes',1.02))
p1,= ax.plot(x,y,'bo--',label='curvey',markersize=0.1,linewidth=0.2)
p2,= twin1.plot(x,y1,'go--',label='curvey1',linewidth=0.2)
p3,= twin2.plot(x,y2,'ro--',label='curvey2',linewidth=0.2)
ax.set_xlabel('CURVEX')
ax.set_ylabel('CURVEY')
twin1.set_ylabel('CURVE1')
twin2.set_ylabel('CURVE2')
ax.yaxis.label.set_color(p1.get_color())
twin1.yaxis.label.set_color(p2.get_color())
twin2.yaxis.label.set_color(p3.get_color())
tkw = dict(size=0.5,width=0.2)
ax.tick_params(axis='y',colors=p1.get_color(),**tkw)
twin1.tick_params(axis='y',colors=p2.get_color(),**tkw)
twin2.tick_params(axis='y',colors=p3.get_color(),**tkw)
ax.legend(handles=[p1,p2,p3])
plt.subplot(2,2)
fig.subplots_adjust(right=0.75)
twin3 = ax.twinx()
twin4 = ax.twinx()
twin4.spines['right'].set_position(('axes',linewidth=0.2)
p4,= twin3.plot(x,y3,label='curvey4',linewidth=0.2)
p5,= twin4.plot(x,y4,label='curvey5',linewidth=0.2)
ax.set_xlabel('CURVEX')
ax.set_ylabel('CURVEY')
twin3.set_ylabel('CURVE4')
twin4.set_ylabel('CURVE5')
ax.yaxis.label.set_color(p1.get_color())
twin3.yaxis.label.set_color(p4.get_color())
twin4.yaxis.label.set_color(p5.get_color())
tkw = dict(size=0.5,**tkw)
twin3.tick_params(axis='y',colors=p4.get_color(),**tkw)
twin4.tick_params(axis='y',colors=p5.get_color(),p4,p5])
plt.show()
这就是我得到的。对于每个子图,左侧的 Y 轴应该分开。 Curvey、curve1 和 curve2 应该在第一个子图中,curvey、curve3 和 curve4 应该在第二个子图中。总共,我想在每个子图中看到 3 条曲线。我也看不到传说。左右的 Y 刻度也是错误的,因为代码不好,我猜
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)