見出し画像

MATLABのplot関数でx軸を1から0にする方法


plot関数

MATLABのplot関数の基本は、x軸のデータとy軸のデータを渡せば良い。

plot(x, y)

% x軸のデータ
x = 0:0.1:1;

% y軸のデータ
y = 1:0.1:2;

% プロット
figure;
plot(x,y);
grid on;

結果

図1 plot関数の基本

今回の内容

今回の目的は、図1のグラフでx軸を0から1ではなく、1から始まって0で終わるようにしたい。
その前にx軸が-1から0の場合を見てみる。

% x軸のデータ
x =-1:0.1:0;

% y軸のデータ
y = 1:0.1:2;

% プロット
figure;
plot(x,y);
grid on;

結果

図2 x軸が-1から0の場合

x軸が-1から始まる場合は、うまくいくことがわかった。
次に、x軸を1から始まって、0で終わる場合を見てみる。

% x軸のデータ
x = 1:-0.1:0;

% y軸のデータ
y = 1:0.1:2;

% プロット
figure;
plot(x,y);
grid on;

結果

図3 x軸が1から0の場合

図3より、x軸が1から0の場合は、期待した結果になっていない。
MATLABのワークスペースに出力されたデータxは、図4に示すように1から始まって0で終わっている。

図4 ワークスペースのデータxの結果

MATLABのplot関数のドキュメントを見てみても、このやり方に関する記載はなく。また、plot関数の引数でx軸を降順にするための引数もない。
その他、グラフの外観を設定する関数を見てみると、
目盛の範囲を決めるxlim関数では、[xmin xmax] の形式で指定するが、xmax は xmin より大きい値と定められている。
また、目盛り値を設定するための関数xticks(ticks)においてもticksは、増加する値からなるベクトルとして指定すると記載されている。

よって、x軸は強制的に昇順になるようである。
では、どのようにして1から始めるのか。
単純にx軸を-1から始めて0で終わるようにすれば良い。
そして、x軸の目盛ラベルを1から0で作成する。

% x軸のデータ
x = 1:-0.1:0;

% x軸の目盛ラベル
xlabels = string(x);

% y軸のデータ
y = 1:0.1:2;

% プロット
figure;
plot(-x,y);
grid on;
xticklabels(xlabels); % x軸の目盛ラベルの設定

plot関数には-xを渡している。また、xticklabelsでx軸の目盛ラベルを設定している。
結果

図5 x軸が1から0の場合

図5をみると、x軸が1から始まって、0で終わっていることがわかる。また、結果のグラフも図3の反転になっている。
今回の目的であった図1のグラフにおいて、x軸が1から始まって、0で終わるグラフにすることが達成できている。

では、何にこれを活用するのかという疑問がある方もいるだろう。
それは、三相誘導電動機のトルク-すべり特性をグラフ化するために必要なのである。すべり$${s}$$は、停止時が$${s=1}$$であり、同期速度になった時が$${s=0}$$となるため、図5のようにx軸が1から始まって、0で終わるグラフとなる。
電気系以外の方にも、x軸を降順にしたいグラフがある場合に参考になればと思います。

サイト

https://sites.google.com/view/elemagscience/%E3%83%9B%E3%83%BC%E3%83%A0

この記事が気に入ったらサポートをしてみませんか?