4

次の Matlab コードがあるとします。

figure;
a=plot(1:10); %A
pause();
set(a,'ydata',1:2:20); %B
pause();
set(a,'ydata',1:10); %C

(A) で、プロットの垂直範囲は [1,10] です。
(B) では、プロットの垂直範囲は [0,20] です。
(C) では、垂直範囲は再び [1,10] です。

プロットがステップ (A) から (B) に自動スケーリングされるのが気に入っています。(B) から (C) への自動スケーリングは好きではありません。

プロットのスケールを拡大するが縮小しないように設定する方法はありますか?

私の考えでは、これは次のようになります。

set(gca,'XLimMode','auto_maxever');
4

1 に答える 1

6

私の知る限り、Matlabにはあなたが説明するような機能はありませんが...

次のコマンドを実行すると、Xとの制限を正確に設定できます。Y

set(gca,'XLim',[x1 x2], 'YLim',[y1 y2]);

まったく同じコマンドの簡単なエイリアスは次のとおりです。

axis([xmin xmax ymin ymax]);

XLimModeと をYLimModeからAutoに変更することで、いつでも制限を「凍結」することもできますManual

figure();
a=plot(1:10); %A
pause();
set(a,'ydata',1:2:20); %B
pause();
set(gca,'XLimMode','manual');
set(gca,'YLimMode','manual');
set(a,'ydata',1:10); %C

または、まったく同じことを行う別のエイリアスを使用することもできます。

axis('manual');

データが継続的に取得されている場合は、各更新の前に軸の制限を保存してから、手動スケーリングを実行することを検討してください。

于 2012-09-21T14:16:36.883 に答える