Octaveはフリーの解析・統計ソフトとして有名で、理系大学に通う方だと触ったことのある方も多いかもしれません。
今回はそんなOctaveでグラフを描画する際に使うコマンドを備忘録としてまとめました!
グラフ関連コマンドまとめ
コマンド概要一覧
- plot:グラフ描画
- hold:グラフの重ね書き
- clf:グラフの初期化
- xlim,ylim:軸の範囲設定
- xlabel,ylabel:軸ラベル設定
- grid on:グリッドラインの表示
- print:グラフのファイル保存
以下詳細です。
plot:グラフ描画
x = [0:100];
y = 3*x
plot(x,y);
上記のコマンドではy = 3x のグラフを描画しています。このとき、xとyの次元数が同じでないと正しくプロットされないので注意しましょう。
hold:グラフの重ね書き
hold on;
x = [0:100];
y1 = 3*x;
y2 = 5*x;
plot(x,y1);
plot(x,y2);
hold off;
hold コマンドを利用すれば、グラフの重ね書きをすることができます。具体的にはhold on から hold offで囲まれた範囲内で実行されたグラフが重ね書きされます。
上記の例だと y = 3x と y = 5x のグラフが重ね書きされます。
“色”:グラフの色の指定
hold on;
x = [0:100];
y1 = 3*x;
y2 = 5*x;
plot(x,y1,"blue");
plot(x,y2,"red");
hold off;
plot(x,y)の次に色を第三引数として与えることでグラフの色が変更可能になる。上記の例ではy=3xのグラフが青色、y=5xのグラフが赤色で描画される。
指定できる色は以下のようなものがある。
- black(黒)
- red(赤)
- green(緑)
- blue(青)
- magenta(赤紫)
- cyan(青緑)
- brown(茶)
- white(白)
clf:グラフの初期化
clf;
こちらのコマンドではグラフをまっさらな状態にしてくれます。こちらのコマンドを書かずに hold on を利用すると、先に実行した際に描画されたグラフの上に更に重ね書きされるような形になります。
よく分からないという人はプログラムの最初に記述しておきましょう。
subplot:複数グラフの表示
x = [0:100];
y1 = x;
y2 = -x;
subplot(1,2,1);
plot(x,y1);
subplot(1,2,2);
plot(x,y2);
コマンドの記述としてはsubplot(x,y,n)としたときのx, y, nは以下のような情報を入れます。
x:縦方向 y:横方向 n:~番目(nは左上から右下に向かって数字が大きくなる)
上記のコマンドではグラフy = 3x と y = 5x のグラフを左から順にタイル状に描画しています。
title:グラフのタイトル設定
x = [0:100];
y = 3*x
plot(x,y);
title("y = 3x");
グラフのタイトルを設定したい場合は、titleコマンドを使用する。この際、空白文字は使えるが、”_(アンダーバー)”や日本語は使えないので注意。
xticks,yticks:グラフのメモリ設定
x = [0:100];
y = 3*x
plot(x,y);
xticks(0:20:100)
yticks(0:100:300)
グラフのメモリ幅を設定したい場合はxticks,yticksコマンドを使う。上記の例だとx軸は0から100まで20刻み、y軸は0から300まで100刻みでメモリ幅を設定している。
xlim,ylim:軸の範囲設定
x = [0:100];
y = 3*x
plot(x,y);
xlim([0 30])
ylim([0 90])
軸の範囲を設定するには xlim, ylim コマンドを利用します。上記の場合は 0≦x≦30、0≦y≦90の範囲で y = 3x のグラフを描画します。
xlabel,ylabel:軸ラベル設定
x = [0:100];
y = 3*x
plot(x,y);
xlabel("number");
ylabel("score");
軸にラベル付けをしたい場合は xlabel, ylabel コマンドを使います。上記の例だと、x軸には”Number”、y軸には”Score”とラベル付けされた状態でグラフが表示されます。
grid on:グリッドラインの表示
x = [0:100];
y = 3*x
plot(x,y);
grid on;
grid on を記述することでグラフにグリッドラインを表示することができます。より細かいグリッドラインを表示するにはgrid minor とすることで実現できます。
print:グラフのファイル保存
x = [0:100];
y = 3*x
plot(x,y);
print("graph.png");
グラフをカレントディレクトリに保存したい場合には print コマンドを使います。上記の例では “graph” という名前で .png 形式でグラフを保存しています。
コメント