【发布时间】:2016-05-18 12:32:42
【问题描述】:
我想在彼此之上绘制多个plotyys。在this question 中提到,对于plotyy,不能只使用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');
我认为有一些干扰,因为hold 和set 重复了。
【问题讨论】:
-
我无法在 R2016a 中重现该问题。将this code 结果与this figure 一起使用。
-
@excaza 我用的是 Matlab 2015b。如果我执行你的代码,我会得到与你的图完全相同的结果。对不起,我的问题不是很清楚,我将编辑代码。