大致如下:
[ax,h1,h2]=plotyy(t,s1,t,s2);
hold on;
for i=1:10
plot(ax(1),t(i),y1(i));
hold on;
end
for i=1:10
plot(ax(2),t(i),y2(i));
hold on;
end
注:s1,s2分别是对应于散点y1,y2拟合出来的曲线,
问题:画好双Y轴图之后往上面添加散点,第一个FOR循环完全正常,但第二个无法执行,ERROR:Parent destroyed during line creation.个人觉得默认的句柄是ax(1),导致无法往ax(2)上添加数据,请高手指点.
按"我的宇宙031526"的方法做的话,是不会报错,但是第二个循环画的点没有出现,相当于第二个循环不起作用
Matlab 双y轴如何添加数据?
答案:2 悬赏:0 手机版
解决时间 2021-04-06 15:55
- 提问者网友:谁的错
- 2021-04-06 06:09
最佳答案
- 五星知识达人网友:鸠书
- 2021-04-06 07:37
也出现了LZ的问题,解决方法如下:
LZ第一个for循环是在操作ax(1) 因为用了 hold on 所以是一直在前一个图的上添加新的点,这没问题。
但是,在运行第二个for循环之前应该加上这么一句:
hold(ax(2));
然后再进行第二个for循环就可以了(可能需要把第二个循环内的 hold on 也改成hold(ax(2)); 或者直接去掉,LZ试一下便知)
我个人感觉是,在多个ax操作的时候,得告诉matlab你要hold具体哪一个ax,不然matlab就晕了~
希望能有帮助,祝好
LZ第一个for循环是在操作ax(1) 因为用了 hold on 所以是一直在前一个图的上添加新的点,这没问题。
但是,在运行第二个for循环之前应该加上这么一句:
hold(ax(2));
然后再进行第二个for循环就可以了(可能需要把第二个循环内的 hold on 也改成hold(ax(2)); 或者直接去掉,LZ试一下便知)
我个人感觉是,在多个ax操作的时候,得告诉matlab你要hold具体哪一个ax,不然matlab就晕了~
希望能有帮助,祝好
全部回答
- 1楼网友:污到你湿
- 2021-04-06 08:50
例子,详见doc plotyy
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
[ax,h1,h2] = plotyy(x,y1,x,y2,'plot');
set(get(ax(1),'ylabel'),'string','left y-axis')
set(get(ax(2),'ylabel'),'string','right y-axis')
xlabel('zero to 20 \musec.')
title('labeling plotyy')
set(h1,'linestyle','--')
set(h2,'linestyle',':')
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯