matlab 动态绘图设置单个坐标轴范围不变

1 matlab设置坐标轴范围

1.xlim()和ylim()函数设置
2.axis()函数同时设置两个坐标轴范围
3.axis manual 等参数控制坐标轴

2 遇到问题

由于我需要在一个循环里面绘图,不停刷新数据形成动画,上述函数都不能达到效果,最后采用

set(gca,‘YLim’,[-0.05 1]);

达到想要效果

动态绘图代码如下

for i=1:250:length(result(:,1))
    %清除图像
    cla
    %画一个矩形
    rectangle('Position',[result(i,2)-0.7   -0.05    1.4   0.05],'FaceColor', '#A2142F');
    hold on
    %设置等坐标轴及控制y轴范围不变
    axis equal;
    set(gca,'YLim',[-0.05 1]);
	%设置显示文本及其位置
    text(result(i,2)-0.50,0.90,strcat('Simulation Time: ',num2str(result(i,1))),'Color','red','FontSize',12);
    text(result(i,2)+0.1,0.80,strcat('Foward Velocity: ',num2str(result(i,4))),'Color','b','FontSize',12);
    text(result(i,2)-0.5,0.80,strcat('Vertical Velocity: ',num2str(result(i,5))),'Color','red','FontSize',12);
    %画一个矩形
    rectangle('Position',[result(i,2)-0.1   result(i,3)-0.05    0.2   0.1],'FaceColor', '#EDB120');
    hold on
    %画一个点
    plot(result(i,2),result(i,3),'Marker','.','MarkerFaceColor','red','MarkerSize',10)
    hold on
    %计算直线坐标
    x_ft = result(i,2)-result(i,8)*sin(-result(i,7));
    z_ft = result(i,3)-result(i,8)*cos(-result(i,7));
	%绘制直线
    line([result(i,2) x_ft],[result(i,3) z_ft],'Color','k','LineWidth',2);
    hold on 

   %暂停
    pause(0.00001)
    %绘图
    drawnow
    grid on;
    
end

你可能感兴趣的:(MATLAB)