如何在Matlab中相互绘制多个plotyy

卡洛

我想plotyy在彼此的顶部绘制多个这个问题中,有人提到用aplotyy不能仅仅使用hold on正确的命令据报告为hold(...,'on')

考虑以下代码:

figure(2)
subplot(1,2,1)

myT=0:1:10;
myY1=myT*2;
myY2=1./sin(myT);
[dummy,h1,h2]=plotyy(myT,myY1,myT,[myY2' 2*ones(length(myT),1)]);
    hold(dummy(1),'on')
    hold(dummy(2),'on')
    set(dummy(1),'ylim',[0 20]);
    set(dummy(2),'ylim',[0 5]);
    set(dummy(1),'Ycolor','k')
    set(dummy(2),'Ycolor','k')
    set(h1,'color','b');
    set(h2,'color','r');

执行一次,您将获得 在此处输入图片说明

现在替换以下两行:

myY1=myT*3;
myY2=1./cos(myT);

你得到 在此处输入图片说明

似乎仅保留了蓝色曲线和水平红色曲线。另一条红色曲线则没有。为什么会这样?为了保持所有曲线我该怎么办?

编辑

产生第二个数字的MWE:

figure(2)
subplot(1,2,1)

myT=0:1:10;
myY1=myT*2;
myY2=1./sin(myT);
[dummy,h1,h2]=plotyy(myT,myY1,myT,[myY2' 2*ones(length(myT),1)]);
    hold(dummy(1),'on')
    hold(dummy(2),'on')
    set(dummy(1),'ylim',[0 20]);
    set(dummy(2),'ylim',[0 5]);
    set(dummy(1),'Ycolor','k')
    set(dummy(2),'Ycolor','k')
    set(h1,'color','b');
    set(h2,'color','r');

%%

figure(2)
subplot(1,2,1)

myY1=myT*3;
myY2=1./cos(myT);
[dummy,h1,h2]=plotyy(myT,myY1,myT,[myY2' 2*ones(length(myT),1)]);
    hold(dummy(1),'on')
    hold(dummy(2),'on')
    set(dummy(1),'ylim',[0 20]);
    set(dummy(2),'ylim',[0 5]);
    set(dummy(1),'Ycolor','k')
    set(dummy(2),'Ycolor','k')
    set(h1,'color','b');
    set(h2,'color','r');

我认为存在一些干扰,因为holdset重复出现。

plotyy调用时,您的第一个调用中的第二个轴对象将被删除subplot尽管这看起来有些奇怪,但已记录为行为

如果新的子图轴与现有轴重叠,则MATLAB会删除现有轴。要将新轴叠加在现有子图的顶部,请使用axes命令。例如,subplot('Position',[.35 .35 .3 .3])删除任何基础子图,但axes('Position',[.35 .35 .3 .3])在图的中间放置一个新轴,而不删除任何基础轴。

我建议创建多个axes对象并手动定位/堆叠它们,而不是利用plotyy一个例子可以在这里找到

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在plotyy(Matlab)中设置不同图例的背景颜色?

来自分类Dev

如何在matlab中绘制2个coef以显示它们在特定间隔内的相互关系

来自分类Dev

如何在Matlab中绘制圆?

来自分类Dev

如何在Matlab中绘制箭头?

来自分类Dev

如何在Matlab中绘制网络?

来自分类Dev

如何在MATLAB中绘制矩形

来自分类Dev

如何在Matlab中绘制网络?

来自分类Dev

如何在Matlab中从csv绘制数据

来自分类Dev

如何在matlab中绘制多维数组?

来自分类Dev

如何在Matlab的一个图形中绘制多个图?

来自分类Dev

如何在Matlab中以堆栈样式绘制多个2D图像?

来自分类Dev

如何在MATLAB中针对不同步长值绘制多个图形?

来自分类Dev

如何在Matlab中以堆栈样式绘制多个2D图像?

来自分类常见问题

如何在R中绘制多个列?

来自分类Dev

如何在R中绘制多个列?

来自分类Dev

如何在SFML中绘制多个圆形

来自分类Dev

如何在 matplotlib 中绘制多个函数?

来自分类Dev

如何在Matlab轴上绘制多个点击点?

来自分类Dev

如何在Matlab轴上绘制多个单击的点?

来自分类Dev

在MATLAB中绘制多个系列

来自分类Dev

通过plotyy在MATLAB中绘制2个垂直轴时设置轴限制

来自分类Dev

如何在 Python 的 argparse 中相互排除多个参数

来自分类Dev

如何在Matlab中返回多个值?

来自分类Dev

如何在MATLAB中绘制不同角度的图形

来自分类Dev

在MATLAB中如何在球体上绘制平滑连接的图?

来自分类Dev

如何在MATLAB中绘制水平和垂直线?

来自分类Dev

如何在Matlab中绘制此简单函数?

来自分类Dev

如何在Matlab中绘制有向图?

来自分类Dev

如何在Matlab中绘制图形的背景?