小ネタ:daspectとpbaspectの使い分け(MATLAB)

いつも忘れるのでメモ

daspectは各軸の単位通りに軸の表示長さを変えることができる。以下の変数を作成した場合、xとyの比は10倍となる

x = linspace(1,10,100);
y = linspace(1,100,100);

この変数を適当にplotとかでプロットしたあとに、daspect([1 1 1])とするとy軸がx軸に対して10倍長いプロットが出来上がる(下図)。

プロットの各軸を等しくするには、y軸はx軸と比べて10倍ですよと指定する必要がある。つまりdaspect([1 10 1])とするとx軸とy軸の表示上の長さが等しいプロットができる。

対してpbaspcetは各軸の表示上の長さの比を指定できるもので、最初からプロットしたいグラフの各軸の比があるならpbaspect([l m n])のようにして指定すれば良い。すべて同じ比にしたいならpbaspect([1 1 1])

pbaspectのほうが使い勝手が良さそうだが、imagescなどで表示した画像等は元のアスペクト比で表示したいだろうから、その場合はdaspect([1 1 1])を使うとよい。

参考
各軸でのデータ単位の長さを制御 – MATLAB daspect – MathWorks 日本
各軸の相対的な長さの制御 – MATLAB pbaspect – MathWorks 日本

コメント

タイトルとURLをコピーしました