「Octave編」の版間の差分
編集の要約なし |
|||
44行目: | 44行目: | ||
== Aquateamでプロットする際のxlabelが表示されなかったり、ylabelが欠けたりする場合の解決法 == | == Aquateamでプロットする際のxlabelが表示されなかったり、ylabelが欠けたりする場合の解決法 == | ||
原因はウィンドウサイズに対してグラフの軸枠が広すぎるためのようで、以下のコマンドで枠の位置を少し内側に指定すると良い.(参考URL:http://blogs.yahoo.co.jp/oukat2000/24952985.html,ただし、このページではxlabelが消えることへの対処だけだったのでylabelが欠けないようにX方向も内側にずらした.) | 原因はウィンドウサイズに対してグラフの軸枠が広すぎるためのようで、以下のコマンドで枠の位置を少し内側に指定すると良い.(参考URL: http://blogs.yahoo.co.jp/oukat2000/24952985.html ,ただし、このページではxlabelが消えることへの対処だけだったのでylabelが欠けないようにX方向も内側にずらした.) | ||
set (0, "defaultaxesposition", [0.15, 0.17, 0.775, 0.755]) | set (0, "defaultaxesposition", [0.15, 0.17, 0.775, 0.755]) |
2015年4月22日 (水) 11:37時点における版
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,'?') の?の部分を以下の一桁の数字にしてみると色が変わります。また、二桁の数字を入力した場合、グラフには点が表れる。一桁目は点の形を表しており、二桁目は点の色を表している。それも以下の対応表にのせる。
CENTER:色の対応表 |数字|色|二桁時の形| |0|灰色|無し| |1|赤|◯| |2|黄緑|+| |3|青|□| |4|紫|x| |5|水色|△| |6|茶色|*| |7|オレンジ(薄)|◯| |8|オレンジ(濃)|+| |9|赤|□|
この対応表を用いて例を挙げると、?が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);