不知何故,标题,xlabel,ylabel,ylim和xlim在下面的脚本中没有固定,我该如何解决?
x = 0:0.01:1;
figure
p1 = subplot(2,1,1);
xlabel(p1, '$x$','Interpreter','LaTex', 'Fontsize', 16);
ylabel(p1, '$\sin(x+t)$','Interpreter','LaTex', 'Fontsize', 16);
title(p1, 'Sine','Interpreter','LaTex', 'Fontsize', 20);
ylim(p1, [-1 2])
xlim(p1, [0 1])
p2 = subplot(2,1,2);
xlabel(p2, '$x$','Interpreter','LaTex', 'Fontsize', 16);
ylabel(p2, '$\cos(x+t)$','Interpreter','LaTex', 'Fontsize', 16);
title(p2, 'Cosine','Interpreter','LaTex', 'Fontsize', 20);
ylim(p2, [-2 1])
xlim(p2, [0 1])
for t = 0:0.1:2
plot(p1, x, sin(x+t))
plot(p2, x, cos(x+t))
pause(0.1)
end
答案 0 :(得分:1)
默认情况下,由于您没有hold on
或hold all
,因此当您在循环中重新绘制时,所有内容都会重置。由于您只想更改每个图表中的一组值,因此您可以使用set
而不是plot
来解决此问题。
首先,在调用每个子图后,绘制初始图并为其设置句柄:
p1 = subplot(2,1,1);
h1 = plot(p1,x,sin(x);
然后继续设置标签等,就像你已经做的那样。
在循环中,替换现有图表中的数据:
for t = 0.1:0.1:2
set(h1,'Ydata',sin(x+t))
set(h2,'Ydata',cos(x+t))
pause(0.1)
end