我试图绘制一个随时间变化的图形(想象它是在风经过它时绘制极点的形状,所以我想在每一秒都绘制形状)。
为了避免x轴限制经常变化,我想将其固定到极限(在绘图之前我计算的最大值和最小值)。以下是我的代码示例:
for i=1:1:numberofrows
momentvaluesatinstant = momentvalues(i,:);
figure(1)
plot(momentvaluesatinstant,momentheader)
drawnow
title(sprintf('Moment profile along pile at time 0.2%f',time(i)'))
xlabel('Moment (kN.m)')
xlim([momentvalues(rowminmoment) momentvalues(rowmaxmoment)])
ylabel('Length of pile (m)')
delay(1);
end
虽然我指定x轴的限制固定为我指定的值,但是图表会根据绘制的数据不断更改限制?有什么我想念的吗?
答案 0 :(得分:0)
想一想,需要添加xlim manual
答案 1 :(得分:0)
我不确定您为什么需要xlim manual
,但这是一种更简洁,更正确的数据动画制作方式:
% use 'figure', `plot` and all the constant parts of the figure only once, before the loop.
figure(1)
m = plot(momentvalues(1,:),momentheader); % plotting only step 1
xlim([momentvalues(rowminmoment) momentvalues(rowmaxmoment)])
xlabel('Moment (kN.m)')
ylabel('Length of pile (m)')
% loop from step 2 ahead
for k = 2:length(momentvalues)
pause(1); % use pause to set the delay between shots
% use 'set' to change the x values
set(m,'Xdata',momentvalues(k,:));
drawnow
title(sprintf('Moment profile along pile at time 0.2%f',k))
end