在plotyy中选择轴

4
这很简单,尽管我在 Matlab 文档中找不到解决方案。
我必须绘制两组或更多数据,可以适应两个不同的范围。因此,我可以使用 plotyy 来管理这一点。
我想做的是,在创建图表后,能够选择性地覆盖或简单地添加跟踪到其中一个轴上。我试图捕捉由 plotyy 返回的参数,但我无法理解它们。
任何帮助都将不胜感激。
2个回答

3

在MATLAB关于plotyy的文档中提到:

[ha, h1, h2] = plotyy(...)

返回在ha中创建的两个轴的句柄以及每个绘图中h1h2的图形对象的句柄。 ha(1)是左轴,ha(2)是右轴。

因此,plotyy返回的第一个参数是对每个创建的轴的句柄。要在左轴上绘制,请使用plot(ha(1),x,y),要在右轴上绘制,请使用plot(ha(2),x,y)

如果您不需要绘制的图形对象的句柄,则可以只使用ha = plotyy(...)。否则,h1h2返回调用plotyy时绘制的线条(或其他图形对象)的句柄。因此,根据文档中的示例,可以像这样设置两行的线条样式:

set(h1, 'LineStyle', '--')
set(h2, 'LineStyle', ':')

2
PLOTYY的第一个输出是一个轴句柄向量。
AX = PLOTYY(..)

AX(1)将是第一个轴的句柄。 AX(2)将是第二个轴的句柄。

要向其中一个轴添加绘图,只需使用PLOT或LINE命令即可。

plot(AX(1), ...)

line('parent',AX(1),'xdata',...)

谢谢!但是用这种方式,我怎么能将两个轴的值都传递给line函数呢? - clabacchio
您可以使用两个PLOT或LINE函数调用独立地在每个坐标轴上绘制图形: plot(AX(1), ...) plot(AX(2), ...) - siliconwafer
不好意思,我指的是如果我像你写的那样尝试传递line,使用包含x轴和y轴值的变量,它会返回一个错误;应该传递什么变量类型与'xdata'一起? - clabacchio
你可能想要使用双精度浮点数。 例如, line('parent',AX(1),'xdata',xvals,'ydata',yvals); 其中xvals和yvals是双精度浮点数。 - siliconwafer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接