如何获取pyplot双轴的坐标轴句柄?
我想对add_subplot这个功能有些更清楚的理解。在下面的例子中,我有两个子图,它们的y轴是共享的。我想分别调整每个轴,但我搞不明白该怎么做!
import matplotlib.pyplot as plt
fig = plt.figure()
axes1 = fig.add_subplot(111)
axes2 = axes1.twiny() # share the y-axis
axes1.plot( somedata[:,2], somedata[:,1], label='axis1' )
axes2.plot( somedata[:,3], somedata[:,1], label='axis2' )
plt.legend()
plt.show()
我试着设置每个x轴的范围:axes1.set_data_interval(0, 300)
,结果失败了。
图例中的标签只出现在第二个轴,也就是axes2上。我还是不明白这是怎么回事,或者我该怎么改变它。我猜最后一个命令(axes2.plt()
)让那个轴成为了当前图的活动轴。我该怎么明确地调整这个呢?
2 个回答
-1
我试了axes.gca(),但没有效果。使用axes.set_ylim(y0,y1)和axes.set_xlim(x0,x1)就完全没问题了!
0
1) 要设置每个x轴的范围,可以用 axes1.set_xlim(0,300)
和 axes2.set_xlim(0, 300)
,这对我来说是有效的。
这里的 set_data_interval
是一个属于“轴”的方法(也就是图表的真实轴),而 set_xlim
是“坐标轴对象”的方法(也就是你图表显示的区域,包括轴、线条、文字等等)。而 axes1
和 axes2
就是这些“坐标轴”(是通过 add_subplot
方法返回的)。
2) 如果想在图例中显示两个轴的标签,可以看看这个问题的解决方案: 使用twinx()的次坐标轴:如何添加到图例中?