如何处理pyplot孪生轴中的轴?

时间:2011-07-22 07:24:16

标签: python matplotlib

我需要对add_subplot进行一些澄清:在下面的例子中,我有2个子图,在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),它失败了。

图例中的标签仅显示第二个轴axis2。同样,我不明白这是如何工作的,或者如何改变它。我想最新的命令(axes2.plt())会将该轴作为绘图的活动轴。我将如何明确地操纵它?

2 个答案:

答案 0 :(得分:0)

1)要设置每个x轴的限制,axes1.set_xlim(0,300)axes2.set_xlim(0, 300)对我有效。

方法set_data_interval是'轴'(图的实轴)的方法,而set_xlim是'轴'对象的方法(图中出现的区域,与轴,线,文本等)。 axes1axes2是'轴'(由add_subplot方法返回)。

2)要获取图例中两个轴的标签,请查看此问题给出的解决方案:Secondary axis with twinx(): how to add to legend?

答案 1 :(得分:-1)

axes.gca()对我不起作用。 axes.set_ylim(y0,y1)和axes.set_xlim(x0,x1)完美运作!