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

Python, plot data with two sets of y data

出于某种原因,这个问题对我来说很难解释,但就这样吧。我有一组数据说 (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()

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

编辑:既然我可以看到你的代码,我建议使用 twinx() 函数来创建第二个轴。