随时间变化的Matlab图

Matlab Plot that changes with time

我想画一个随时间变化的图形(可以把它想象成风吹过时画出一根柱子的形状,所以我想画出每一秒的形状)。

为了避免 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 轴的限制指定为固定为我指定的值,但绘图会根据绘制的数据不断更改限制?有什么我想念的吗?

想通了,需要加上xlim manual

我不确定您为什么需要 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