Python,用两组y数据绘制数据

时间:2015-08-22 15:30:52

标签: python matplotlib plot axis

出于某种原因,这个问题对我来说很难解释,但是这里有。我有一组数据说(x,y1,y2),我想绘制。我需要它是一个图,而不是两个图一个是(x,y1)而另一个是(x,y2)。相反,我想要它,所以我可以立即绘制它,然后左轴为(y1),右轴为(y2)。

目前,我不得不密谋绘制两个独立的图并且必须缩放轴以相互匹配,但它仍然不能很好地工作。下面我把我的代码绘制成图,数据集是mesaBV = x ... mesaMv = y1 ... mesaAge = y2

有人熟悉回答这个问题吗?谢谢!

编辑:

host = host_subplot(111, axes_class=AA.Axes)

par1 = host.twinx()

par1.set_yscale('log')

host.grid(True)    

host.set_xlabel("B-V")
host.set_ylabel("Mv")
par1.set_ylabel("Age")


p1, = host.plot(mesaBV, mesaMv, label="Mv",marker="o")
p2, = par1.plot(mesaBV, mesaAge, label="Age",marker="o")

host.set_yticks(np.linspace(host.get_ybound()[0], host.get_ybound()[1], 10))
par1.set_yticks(np.linspace(par1.get_ybound()[0], par1.get_ybound()[1], 10))

host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())

plt.draw()
plt.show()

1 个答案:

答案 0 :(得分:1)

通过为同一个点设置两个y值,您将创建一条垂直线。除非您可以完美地缩放图形,否则它将无法工作,即使您完美地缩放它,也没有任何意义(没有双关语),因为y1基本上与y2完全相同。如果你真的需要它,那么不仅仅是绘制(x1,y1)并为正确的y轴找出不同的比例而不影响原始点。这样您就可以轻松模拟(x1,y1,y2)。

编辑:现在我可以看到您的代码,我建议使用twinx()函数创建第二个轴。