「Octave編」の版間の差分

提供:東海大学 コンピュータ応用工学科 稲葉研究室Wiki
ナビゲーションに移動 検索に移動
39行目: 39行目:
|7|オレンジ(薄)|◯|-
|7|オレンジ(薄)|◯|-
|8|オレンジ(濃)|+|-
|8|オレンジ(濃)|+|-
|9|赤|□|-
|9|赤|□|
}
}
この対応表を用いて例を挙げると、?が11の時、二桁目が色を表しているので赤色になり、形は◯のプロットのグラフとなる。61ならば、茶色で*のプロットとなるはずです。しかし、10や20など一桁目が0だと、線すら現れませんでした・・・。ver.によっては対応が異なる場合がおりますので、まずは試しに使ってみてください。
この対応表を用いて例を挙げると、?が11の時、二桁目が色を表しているので赤色になり、形は◯のプロットのグラフとなる。61ならば、茶色で*のプロットとなるはずです。しかし、10や20など一桁目が0だと、線すら現れませんでした・・・。ver.によっては対応が異なる場合がおりますので、まずは試しに使ってみてください。

2015年5月7日 (木) 05:36時点における版

Octaveのグラフを文書に貼る時にフォント等を大きくする

グラフをprintコマンドでファイルに保存する際に,全体の大きさを小さくすることで相対的にフォントサイズを大きく,プロットを太くできます.

print '-S640,480' -depsc2 test.eps

のようにオプション S をつけてグラフの横縦をポイント数で指定します(コーテーションで囲む必要あり).

なお,pdfファイルへ書き出すとなぜかバウンディングボックスがずれる場合があります.

Octaveのグラフの線の太さを太くしたい

上述の方法である程度太くなりますが,それでも細い場合は,

plot(x, y, 'linewidth', 2);

のようにプロットのLineプロパティを指定することで太さを変えられます.デフォルトは0.5のようなので,2とすれば4倍太くなります.

重ね書きしているプロットそれぞれの線の太さを指定するには,

plot(x, y, 'linewidth', 2, x, z, 'linewidth', 3);

のようにすればできます.


Octaveのグラフの線の色について

グラフを書くときに線の色を変えたい場合、以下を参考にしてください。

plot(x,y,'?') の?の部分を以下の一桁の数字にしてみると色が変わります。また、二桁の数字を入力した場合、グラフには点が表れる。一桁目は点の形を表しており、二桁目は点の色を表している。それも以下の対応表にのせる。

-
色|二桁時の形|- 灰色|無し|- 赤|◯|- 黄緑|+|- 青|□|- 紫|x|- 水色|△|- 茶色|*|- オレンジ(薄)|◯|- オレンジ(濃)|+|- 赤|□|

} この対応表を用いて例を挙げると、?が11の時、二桁目が色を表しているので赤色になり、形は◯のプロットのグラフとなる。61ならば、茶色で*のプロットとなるはずです。しかし、10や20など一桁目が0だと、線すら現れませんでした・・・。ver.によっては対応が異なる場合がおりますので、まずは試しに使ってみてください。

Aquateamでプロットする際のxlabelが表示されなかったり、ylabelが欠けたりする場合の解決法

原因はウィンドウサイズに対してグラフの軸枠が広すぎるためのようで、以下のコマンドで枠の位置を少し内側に指定すると良い.(参考URL: http://blogs.yahoo.co.jp/oukat2000/24952985.html ,ただし、このページではxlabelが消えることへの対処だけだったのでylabelが欠けないようにX方向も内側にずらした.)

set (0, "defaultaxesposition", [0.15, 0.17, 0.775, 0.755])


毎回このコマンドを実行するのも面倒なので、各自のホームディレクトリに.octavercという名前のファイルを作り、このコマンドを書き込んでおけばoctave起動時に自動的に実行される.

subplotで縦に並べたグラフをPDFなどに書き出すとlabelが重なる問題の解決法

plotの-Sオプションで縦長の領域を指定する

print -dpdf '-S480 640'  result11.pdf

cpsd関数がMATLABと一致しない問題の解決法

cpsd関数内のwindowの指定で[](ヌル)を入れるとデフォルトのhammingウィンドウが使われるはずだが(MATLABでは確かに使われてる感じ)、Octaveではなんか使われてない感じ。よって、明示的にHammingウィンドウを指定する。

[Pyx Freq] = cpsd(x, y, hamming(length(x)), [], NFFT, 1/0.001);