[最終更新] 2017年2月21日

octaveで二次元グラフを描画します。反比例のグラフ(\(y = \frac{1}{x^2}\))を描きます。
\(y = \frac{1}{x^2} (-10 \leq x \leq 10) \)を描く
octaveで\(y = \frac{1}{x^2} (-10 \leq x \leq 10 ) \)のグラフを描きます。これが描けたら、だいたい二次元グラフ描画のことは思い出せると思うので。
自動範囲でプロット
まず普通にplotします。
x = linspace(-10, 10, 1000);
y = 1 ./ power(x,2);
plot(x,y)
linspaceのところは、-10から10まで、1000のデータ点数という意味です。グラフ描画の際によく使います。;をつけないと、行列が出力されてしまい鬱陶しいので、;をつけます。power(x,2)は2のべき乗です。/の前に.がつくのは、スカラー演算だからです。.がないと、行列演算になってしまい、この例だとエラーになります。
これを実行すると、以下のようなグラフが出力されます。

今回の例の場合だと、ちょっとよくわからない感じです。yの最大値が大きすぎる感あります。
範囲を指定してプロット
axis([xmin xmax ymin ymax])とすることで、範囲を指定できます。以下のように書いてみます。
axis([-5 5 0 1])
以下のようなグラフが出力されます。

わかりよくなった気がします。
装飾
x軸とy軸のラベル名、グラフタイトル、凡例(グラフの右上とかにあるやつ)をつけます。グリッドもつけます。
xlabel('x')
ylabel('y')
title('y = 1/x^2')
legend('y = 1/x^2')
grid on
以下のようなグラフが出力されます。

いい感じです。
補足:plot関数のフォーマット
plot(x,y)は、plot(x,y,fmt)とすることで、ラインの色を変えたり、破線にしたり、ラインマーカーをドットにしたりできます。以下に例をあげます。
- ラインスタイル…-(実線,default) .(点) ^(インパルス)
- マーカタイプ…+o*x
- カラースタイル…k r g b m c w (黒 赤 緑 青 マゼンタ シアン 白)
たとえば、以下のように書けます。
plot(x,y,'r+')
今回の例でこれを出力すると、以下のようなグラフが出力されます。

赤くて+な感じになりました。
以上。
関連記事
シェルスクリプト の記事
- [2018年3月1日] crontabで気をつけていること
- [2018年1月10日] 一括で複数の画像ファイルを余白つけて正方形にする
- [2017年12月18日] bashでスクレイピングする時のメモ
- [2017年3月22日] Macでカレントディレクトリ内のpngを一括でjpgに変換する(逆も同じ)
- [2017年1月16日] Octaveの使い方、基本事項
- ---本記事---
- [2016年5月9日] Macで複数のpngファイルをpdfに変換する
- [2016年2月23日] SC2029: Note that, unescaped, this expands on the client side. について
- [2016年2月17日] shellcheck で ls | grep が怒られた…ls の出力をパースしてはいけない?
- [2016年1月28日] Macで複数ページのpdfを一括でjpegにコマンドラインで変換する
- [2015年10月10日] Gnuplot入門クイックツアー 二次元グラフ描画で困らなくなるまで
スポンサーリンク