Matlab Plot随时间变化

时间:2016-08-17 17:18:54

标签: matlab animation plot matlab-figure

我试图绘制一个随时间变化的图形(想象它是在风经过它时绘制极点的形状,所以我想在每一秒都绘制形状)。

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

2 个答案:

答案 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