第4章 データをプロットしてみよう

第4章
データをプロットしてみよう
MATLAB の重要な機能の 1 つに可視化(visualization)があります.
データをプロットすることによって,数字の羅列を見ているだけではわか
らない意味が読み取れるものです.他の人に自分の出した結果を理解して
もらうにも可視化は重要です.MATLAB は多彩なプロット機能を持っ
ていますが,この章では 2 次元プロットの基本的なことがらについて説明
します.
なお,Octave では gnuplot(ニュープロットと読む)を利用してプ
ロットします.Octave でも多彩な表現が可能です.
c 2004 Tatsuya Kitamura / All rights reserved.
copyright 35
第4章
4.1
データをプロットしてみよう
1 次関数のプロット
まずは 1 次関数 y = 2x のグラフをプロットしてみましょう.x の範囲
は −5 から 5 とします.x と y のデータを作って,これらを引数にして
plot を実行すると,図 4.1 のような “Figure No. 1” というタイトルの
ウィンドウが現れます.これをフィギュアウィンドウ (figure window)
と呼びます.
>> x=-5:5;
>> y=2*x;
>> plot(x,y)
図 4.1: y = 2x (−5 ≤ x ≤ 5) のグラフが表示されたフィギュアウィン
ドウ.
plot の後にセミコロンを付けても付けなくてもコマンドウィンドウで
の表示に違いはありません.しかし,plot の後に他のコマンドを続ける
場合にはセミコロンが必要です.
MATLAB でフィギュアウィンドウを閉じる場合には closeMAT を実行
します.Octave では closeplotOCT を実行します.
X 軸の値を指定せず,plot(y) とするだけでもグラフは表示されるので
すが,X 軸の目盛りが正しく表示されません.上の例では 1,2,...,11 と
なります.ですから,できるだけ X 軸の値も指定するようにしましょう.
グラフ内に複数のラインを表示するときには,以下のように X 軸の値
と Y 軸の値を順に列挙します.
36
4.2. グリッドライン
>> x2=-3:3;
>> y2=2*x+1;
>> plot(x,y,x2,y2)
また,行列を引数にしても複数のグラフを表示することができます.
>> x=-5:-5;
>> Y=2*x; Y=[Y; 2*x+1]; Y=[Y; 2*x+2];
>> plot(x,Y)
表示できるグラフの数には特に制限がありません.
4.2
グリッドライン
グリッドライン(grid line)を表示させたいときには,grid を使います.
MATLAB では grid on を実行するとグリッドラインが表示され,grid
off を実行するとグリッドラインが非表示になります.Octave では grid
"on",grid "off" のようにダブルクォートを付けます.
MATLAB では grid とだけ入力すると,グリッドラインの状態がトグ
ル(toggle)されます.トグルとは 2 つの状態を交互に反転させることを
意味します.グリッドラインが表示されていない状態で grid を実行する
とグリッドラインが表示され,さらに grid を実行するとグリッドライン
が非表示になります.Octave の grid にはトグルの機能がありません.
Octave でグリッドラインを表示させるときには,grid "on" を実行し
た後に replotOCT を実行しなければなりません.つまり,以下のようにす
る必要があります.
octave:4> grid "on"
octave:5> replot
グリッドラインを消去する場合も同様で,grid off の後に replotOCT を
実行しないと,グラフに反映されません.
4.3
多彩なラインとマーカー
MATLAB と Octave の plot では,オプションによって様々な色,ラ
インの種類,マーカーを指定できます.オプションの指定の仕方は次の通
りです.
37
第4章
データをプロットしてみよう
POINT plot の使い方
グラフを 1 つ表示する場合:
plot(X 軸, Y 軸, ’ オプション’)
複数のグラフを表示する場合:
plot(X1 軸, Y1 軸, ’ オプション’, X2 軸, Y2 軸, ’ オプション’, ...)
オプションは指定しなくてもかまいません.
MATLAB と Octave ではオプションが異なりますので,別々に説明し
ます.
4.3.1
MATLAB のプロットのオプション
MATLAB での色,ラインの種類,マーカーのオプションをそれぞれ表
4.1,表 4.2,表 4.3 に示します.MATLAB ではこれらのオプションをど
のような順序で書いてもかまいません.
例を挙げて説明します.ラインの種類を dotted にして green でプロッ
トする場合には,以下のように色のオプション(g)とラインの種類のオ
プション(:)を書きます.
>> plot(x,y,’g:’)
なお,ラインの種類は solid がデフォルトになっているので,solid を選
択する場合はオプション(-)を省略することもできます.
マーカーを正方形にして cyan でプロットする場合には,以下のように
色のオプション(c)とマーカーのオプション(s)を書きます.マーカー
とマーカーの間がラインで結ばれないことに注意してください.
>> plot(x,y,’cs’)
マーカーとマーカーの間をラインで結びたいときには,以下のようにラ
インの種類(例えば -.)も指定します.この実行結果にグリッドライン
を表示させたものを図 4.2 に示します.
>> plot(x,y,’cs-.’)
♣ TRY 複数のグラフを別々の色,ラインの種類,マーカーで表示して
みよう.
38
4.3. 多彩なラインとマーカー
表 4.1: ラインやマーカーの色(MATLAB)
オプション
y
m
c
r
色
yellow
magenta
cyan
red
オプション
g
b
w
k
色
green
blue
white
black
表 4.2: ラインの種類(MATLAB)
オプション
:
-.
--
ラインの種類
solid (デフォルト)
dotted
dashdot
dashed
表 4.3: マーカー(MATLAB)
オプション
.
o
x
+
*
s
d
マーカー
•
◦
×
+
∗
4 角形
オプション
v
^
<
>
p
h
マーカー
<
>
6 角形
10
8
6
4
2
0
−2
−4
−6
−8
−10
−5
−4
−3
−2
−1
0
1
2
3
4
5
図 4.2: x=-5:5; y=2*x; plot(x,y,’cs-.’); grid on の実行結果.
39
第4章
データをプロットしてみよう
4.3.2
Octave のプロットのオプション
Octave での色,スタイル,マーカーのオプションをそれぞれ表 4.4,表
4.5,表 4.6 に示します.
例を挙げて説明します.dots plot style にして green でプロットする場
合には,以下のように色のオプション(g)とラインの種類のオプション
(.)を書きます.なお,スタイルは lines plot style がデフォルトになっ
ているので,このスタイルの場合はオプション(-)を省略することもで
きます.
octave:1> x=-5:5; y=2*x;
octave:2> plot(x,y,’g.’)
表 4.4 にあるように,数字でも色を指定できます.上の例では plot(x,y,’2.’)
としても同じグラフが得られます.
マーカーを正方形にして cyan でプロットする場合には,以下のように
色のオプション(c)とマーカーのオプション(3)を書きます.色とマー
カのいずれかあるいは両方を数字で指定するときには,必ず色のオプショ
ンを先にします.
octave:3> plot(x,y,’c3’)
これは数字だけを使って plot(x,y,’53’) と指定することもできます.
上のオプションではマーカーとマーカーの間がラインで結ばれません
が,ラインで結びたいときには,linespoints plot style(-@)を用います.
次の例では,dots plot style でマーカー間をつないでいます.
octave:4> plot(x,y,’c3-@.’)
なお,Octave には gnuplot ライクな gplotOCT を使ってプロットする方
法もありますが,本書では説明しません.Octave のオンラインヘルプや
文献1 を参照してください.
表 4.4: ラインやマーカーの色(Octave)
オプション
1 または r
2 または g
3 または b
1
40
色
red
green
blue
オプション
4 または m
5 または c
6 または w
色
magenta
cyan
brown
川原稔, “gnuplot パーフェクト・マニュアル”, ソフトバンク (1999).
4.4. ラベルとタイトル
表 4.5: スタイル(Octave)
オプション
.
@
-@
^
L
スタイル
lines plot style (デフォルト)
dots plot style
points plot style
linespoints plot style
impulses plot plot style
steps plot style
表 4.6: マーカー(Octave)
オプション
1 または o
2 または +
3
マーカー
◦
+
4 角形
オプション
4 または x
5
6 または *
マーカー
×
∗
♣ TRY 複数のグラフを別々の色,スタイル,マーカーで表示してみよう.
Tips しましまのライン
plot(x,y,’r+-’) を実行すると,マーカーの色とラインの色
とが同じ色でプロットされます.しかし,マーカーの色とライン
の色とを別の色にしたいときもあるのではないでしょうか. そ
のような場合には,plot(x,y,’r+’,x,y,’b-’) というように同
じ デ ー タ を 別々の 色 で 2 度 プ ロット し ま す.こ れ を 応 用 す る と
plot(x,y,’r+’,x,y,’b-’,x,y,’y--’) なんてこともできますが,実
用性はないでしょうね…
4.4
ラベルとタイトル
さて,プロットできたら次は X 軸と Y 軸にラベル(label)を付けたり,
タイトル(title)を付けたりしましょう.いつまでも 1 次関数では芸がな
いので,y = sin(ω) を使ってみましょう.角度はラジアンで指定します.
π
きざみで sin の値を求めます.
ここでは 10
>> omega=0:pi/10:4*pi;
>> plot(omega,sin(omega))
X 軸と Y 軸にラベルを付けるには,ラベルの文字列を引数にしてそれ
ぞれ xlabel と ylabel を実行します.タイトルを付けるには title を
41
第4章
データをプロットしてみよう
使います.UNIX 版 MATLAB ではラベルやタイトルに日本語の文字を使
えませんが,Windows 版 MATLAB では使えます.
>> xlabel(’omega [rad]’); ylabel(’y’)
>> title(’sin(omega)’)
MATLAB ではラベルやタイトルの文字列の中で LATEX の数式の表記
方法の一部が使えます2 .これを使うと複雑な数式を表現することができ
ます.LATEX の数式で使えるシンボルについて表 4.7 と表 4.8 にまとめま
した.
上の例でも ω や ≤ や π が表示されて見栄えが良くなります.このよ
うにしてラベルとタイトルを付けた y = sin(ω) のグラフを図 4.3 に示し
ます.
>> xlabel(’\omega [rad]’); ylabel(’y’)
>> title(’sin(\omega) (0 \leq \omega \leq 4\pi)’)
sin(ω) (0 ≤ ω ≤ 4π)
1
0.8
0.6
0.4
y
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
0
2
4
6
ω [rad]
8
10
12
14
図 4.3: ラベルとタイトルを付けたグラフ.
Octave では 4.2 節で説明した grid と同じように,ラベルやタイトルの
文字列を指定した後に再度プロットしなければそれらが表示されません.
4.5
凡例
複数のラインをプロットしたときには凡例も付けたいところです.Octave
では自動的に凡例を表示しますが,MATLAB では legendMAT コマンドを
2
42
Octave にこの機能はありません.
4.5. 凡例
表 4.7: MATLAB で使える LATEX のシンボル(ギリシャ文字編)
α \alpha
β \beta
γ \gamma
δ \delta
ζ \zeta
η \eta
θ \theta
\epsilon
ϑ \vartheta
ι \iota
κ \kappa
λ \lambda
ν \nu
ξ \xi
π \pi
µ \mu
σ \sigma
ς \varsigma
τ \tau
ρ \rho
φ \phi
χ \chi
ψ \psi
υ \upsilon
Γ \Gamma
∆ \Delta
Θ \Theta
ω \omega
Ξ \Xi
Π \Pi
Σ \Sigma
Λ \Lambda
Υ \Upsilon
Φ \hi
Ψ \Psi
Ω \Omega
\varpi
≡
⊕
∩
⊇
←
♦
≤
×
∧
∀
⊥
∼
ø
|
表 4.8: MATLAB で使える LATEX のシンボル(数学記号編)
∼
\equiv
= \neq
≈ \approx
= \cong
⊗ \otimes
\oslash
\int
\oplus
⊃ \supset
∪ \cup
∞ \infty
\cap
⊃ \supset
⊆ \subseteq
⊂ \subset
\supseteq
\lfloor
\rceil
\lceil
\rfloor
\rangle
◦ \circ
• \bullet
\langle
→ \rightarrow ↓ \downarrow
\leftarrow ↑ \uparrow
\diamondsuit♥ \heartsuit ♠ \spadesuit ♣ \clubsuit
≥ \geq
% \Re
& \Im
\leq
c \copyright
÷ \div
± \pm
\times
∨ \vee
∈ \in
* \ni
\wedge
∃ \exists
· \cdots
. . . \ldots
\forall
√
∼
¬ \neg
\surd
\perp
= \cong
∂ \partial
ℵ \aleph
℘ \wp
\sim
∇ \nabla
1 \prime
Ø \O
\o
↔ \leftrightarrow
\mid
43
第4章
データをプロットしてみよう
用いて表示させます.legendMAT の引数として各グラフの凡例の文字列を
順に書きます.
y = sin(ω) と y = cos(ω) のグラフをプロットして,凡例を表示させて
みましょう.凡例でも LATEX の数式の表記方法が使えます.凡例を付け
たグラフを図 4.4 に示します.
>> omega=0:pi/10:4*pi;
>> plot(omega,sin(omega),’b’,omega,cos(omega),’r--’);
>> legend(’sin(\omega)’,’cos(\omega)’);
sin(ω) (0 ≤ ω ≤ 4π)
1
sin(ω)
cos(ω)
0.8
0.6
0.4
y
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
0
2
4
6
ω [rad]
8
10
12
14
図 4.4: 凡例を付けたグラフ.
凡例を消去するときには legend off を実行します.
4.6
グラフの追加
1 度プロットしたグラフに後から新たなラインを追加したい場合には
hold を使います.引数に新たなデータを追加して plot を実行すれば複
数のグラフを表示することはできますが,それ以前に設定したラベルや
タイトルや凡例が消えてしまいますが,hold を使えばそれらが保存され
ます.
POINT グラフの追加
hold を使ってグラフをホールドしておけば,ラベルやタイトルや
凡例を保持して新たなグラフを追加することができます.
44
4.7. 表示範囲の指定
hold の使い方は grid と同じです.つまり,hold on を実行するとグ
ラフがホールドされ,hold off を実行するとホールドが解除されます.
ただし,Octave では grid と違って on と off にダブルクォートが必要
なく,MATLAB と同じ使い方になりますので注意してください.
hold だけを実行すると,ホールド状態がトグルされます.つまり,グ
ラフがホールドされていない状態で grid を実行するとホールドされ,も
う 1 度 hold を実行すると解除されます.
hold を利用して,y = sin(ω) と y = cos(ω) のグラフをプロットして
みましょう.
>>
>>
>>
>>
omega=0:pi/10:4*pi;
plot(omega,sin(omega),’b’)
hold on
plot(omega,cos(omega),’r--’)
グラフを消去するときには,MATLAB では clfMAT(CLear current Figure),Octave では clearplotOCT を実行しますが,これらのコマンドを
実行してもホールド状態は保持されます.
♣ TRY 図 4.4 に y = sin(ω + π5 ) のグラフを追加してみよう.凡例も追
加してみよう.
4.7
表示範囲の指定
図 4.4 のグラフはグラフの左側が中途半端に切れてしまっています.で
きればきれいに納めたいところです.Y 軸の上下に少し余裕があっても
よいかもしれません.このようにグラフの表示範囲を指定する場合には,
axis を用います.
まず,図 4.4 の現在の表示範囲を調べます.
>> axis
ans =
0
14
-1
1
X 軸の最小値,X の最大値,Y 軸の最小値,Y の最大値の順序で表示さ
れます.
表示範囲を指定するときには引数をこの順序で与えます.図 4.4 のグラ
フを 0 ≤ ω ≤ 4π ,−1.5 ≤ y ≤ 1.5 の範囲で表示し直すには以下のコマン
ドを実行します.
>> axis([0 4*pi -1.5 1.5]);
45
第4章
データをプロットしてみよう
sin(ω) (0 ≤ ω ≤ 4π)
1.5
sin(ω)
cos(ω)
1
y
0.5
0
−0.5
−1
−1.5
0
2
4
6
ω [rad]
8
10
12
図 4.5: axis([0 4*pi -1.5 1.5]) で表示範囲を調整したグラフ.
これにより,図 4.5 のグラフが得られます.
4.8
フィギュアウィンドウの作成
フィギュアウィンドウは複数作ることができます.figure を実行すると,
新たなフィギュアウィンドウが現れます.フィギュアウィンドウには作ら
れた順番に図番号が付けられており,それがタイトルのところに “Figure
No. 2” のように表示されます.
新たなフィギュアウィンドウを作って,y = x2 + 5 (−10 ≤ x ≤ 10) の
グラフをプロットしてみます.
>> x=-10:10;
>> figure; plot(x,x.ˆ2+5)
過去に作ったフィギュアウィンドウ上のグラフに操作を加える場合には,
そのフィギュアウィンドウを図番号で指定してからコマンドを実行します.
フィギュアウィンドウを指定するには,図番号を引数にして figure を実
行します.
例えば,1 番目のフィギュアウィンドウ上のグラフに別のグラフを追加
する場合には次のようにします.
>> figure(1)
>> hold on; plot(x2,y2,’g:’)
46
4.9. フィギュアウィンドウの分割
上の説明で「図番号」と呼んでいるものは,正確には図のハンドラ(handler)と言います.現在指定されている図のハンドラは gcfMAT (Get Current Figure)で知ることができます.
>> gcf
ans =
1
この場合,現在指定されているのは “Figure No. 1” とタイトルのついた,
つまりハンドラが 1 のフィギュアウィンドウであることがわかります.
♣ TRY figure で新たなフィギュアウィンドウを作ったとき,指定され
ているフィギュアウィンドウがどれか調べてみよう.
4.9
フィギュアウィンドウの分割
前節ではグラフを増やす際に新たなフィギュアウィンドウを作る方法を
説明しました.ここでは,フィギュアウィンドウを分割して複数の座標軸
を作り,そこにグラフをプロットする方法を説明します.それぞれの座標
軸にラベルやタイトルや凡例を付けることができます.
POINT フィギュアウィンドウの分割
subplot を使ってフィギュアウィンドウを分割し複数の座標軸を
作ることができます.縦方向の分割数 m,横方向の分割数 n,座標軸
の番号 k を引数にします.
subplot(mnk) または subplot(m,n,k)
subplot(421) または subplot(4,2,1) は縦に 4 分割,横に 2 分割し
たフィギュアウィンドウの 1 番目の座標軸です.フィギュアウィンドウの
座標軸の番号の順番については図 4.6 を参考にして下さい.
プロットする場合には,subplot で座標軸を指定してから plot を実行
します.次の例では,フィギュアウィンドウを縦 2 段に分割し,それぞれ
の座標軸にプロットしています.そして,下の座標軸にプロットした後,
再び上の座標軸を指定して,ラベルとタイトルを付けています.
>>
>>
>>
>>
subplot(211); plot(x1,y1)
subplot(212); plot(x2,y2)
subplot(211)
xlabel(’x’); ylabel(’y’); title(’1st plot’)
47
第4章
データをプロットしてみよう
図 4.6: 縦 4 分割,横 2 分割した場合の座標軸の番号.左上が最小値で右下
が最大値になる.つまり,左上は subplot(421),右下は subplot(428)
で指定する.
grid ,hold ,axis などは座標軸ごとに状態が決まります.ある座標
軸でグラフをホールドしたからといって,その他の座標でホールドされて
いるわけではないので注意が必要です.
MATLAB には指定した座標軸のグラフを消去する claMAT (CLear current Axis)があります.先に紹介した clfMAT を使うとフィギュアウィンド
ウ上の全てのグラフが消えてしまうのでこれも注意が必要です.例えば,
縦に 2 分割した 1 つ目(上)の座標軸のグラフを消去する場合には,次の
ように subplot で座標軸を指定してから clfMAT を実行します.
>> subplot(211)
>> cla
♣ TRY フィギュアウィンドウを縦 3 分割し,それぞれにグラフをプロッ
トしてみよう.次に,X 軸と Y 軸にラベルを付け,タイトルも付けてみ
よう.
48
4.10. グラフの印刷
Tips 大きさの異なる座標の混在
フィギュアウィンドウを縦 2 分割し,下の段はさらに横に 2 分割す
ることもできます.
>> subplot(211); plot(x1,y1)
>> subplot(223); plot(x2,y2)
>> subplot(224); plot(x3,y3)
これを応用すれば様々な大きさの座標を混在させることができますが,
見る人のことを考えてほどほどにしましょう.
グラフの印刷
4.10
フィギュアウィンドウの印刷には print を使います.フィギュアウィ
ンドウが subplot により分割されている場合は,そのフィギュアウィン
ドウ上の全てのグラフが印刷されます.
4.10.1
UNIX 版 MATLAB での印刷
オプションなしで print を実行すると現在指定されているフィギュア
ウィンドウがデフォルトのプリンタに出力されます.UNIX 版 MATLAB
での print のオプションを表 4.9 に示します.
表 4.9: UNIX 版 MATLAB の print のオプション
オプション
なし
-P プリンタ
-f ハンドラ
機能
デフォルトのプリンタに出力する.
指定したプリンタに出力する.
指定したハンドラを持つフィギュアウィンドウを印刷する.
ハンドラ 2 のフィギュアウィンドウを lp1 というプリンタに出力する場
合には,以下のようにします.
>> print -Plp1 -f2
-P とプリンタ名の間および -f とハンドラの間にスペースは入りません.
GUI による操作でも印刷できます.フィギュアウィンドウの File メニュー
から Print を選択するか,フィギュアウィンドウの ツールバー(toolbar)
のプリンタのボタン(図 4.7)をクリックすると図 4.8 の Print ダイアロ
グが現れます.
49
第4章
データをプロットしてみよう
図 4.7: フィギュアウィンドウのツールバー.丸で囲んであるのは印刷す
るボタン.
図 4.8: Print ダイアログ.
Print ダイアログで設定できる項目を表 4.10 にまとめます.各項目を
適宜設定した後,Print ボタンをクリックすると印刷されます.
表 4.10: Print ダイアログで設定できる項目.
項目
Paper type
Paper orientation
Printer
Device option
Send to
説明
用紙サイズ
印刷の向き
プリンタ(空欄の場合はデフォルトのプリンタ)
印刷のオプション
出力先(プリンタ/ファイル)
出力先として File を指定すると,Print ボタンが Save ボタンに変わり
ます.それをクリックすると保存するファイル名を指定するダイアログが
現れますので,ファイル名を入力します.
Page Setup ボタンをクリックするか,もしくは File メニューの Page
Setup を選択すると,図 4.9 の Page Setup ダイアログが現れます.
File メニューの Print Preview を選択すると,印刷前に出力の様子を確
認することができます.
50
4.10. グラフの印刷
図 4.9: Page Setup ダイアログ.
表 4.11: Page Setup ダイアログで設定できる項目.
項目
Orientation
Limits
Color
Size and Position
4.10.2
説明
印刷の向き
軸と目盛りをスクリーンの表示と一致させるか否か
モノクロまたはカラー
印刷の位置と大きさ
Windows 版 MATLAB での印刷
UNIX 版 MATLAB と同じように,オプションなしで print を実行す
ると現在指定されているフィギュアウィンドウがデフォルトのプリンタに
出力されます.Windows 版 MATLAB での print のオプションを表 4.12
に示します.Windows 版でも UNIX 版のように GUI による印刷ができま
すが,UNIX 版とほとんど同じなので説明は省きます.
表 4.12: Windows 版 MATLAB の print のオプション
オプション
なし
-dwin
-dwinc
-dsetup
-f ハンドラ
機能
デフォルトのプリンタに出力する.
デフォルトのモノクロプリンタに出力する.
デフォルトのカラープリンタに出力する.
プリンタ設定ダイアログを表示する.
指定したハンドラを持つフィギュアウィンドウをプリントする.
51
第4章
データをプロットしてみよう
4.10.3
Octave での印刷
gsetOCT と replotOCT を使います.グラフを PostScript(PS)プリンタ
に出力する場合には(ghostscript を利用しする場合も含みます),gsetOCT
で terminal を postscript に設定します.次に,パイプを使って出力先を
UNIX の lpr に出力するよう設定してから,replotOCT を実行します.
octave:5> gset terminal postscript
octave:6> gset output "| lpr"
octave:7> replot
次のグラフの出力先を X ウィンドウ上に戻すには,terminal を x11 に設
定します.
octave:8> gset terminal x11
octave:9> gset output
gshowOCT を使うと,現在の terminal の設定を知ることができます.次
の例では terminal が x11 に設定されていることがわかります.
octave:10> gshow ’terminal’
terminal type is x11 0
gsetOCT と gshowOCT は,gnuplot の set と show に対応しています.
ここでは PS プリンタへの出力についてのみ説明しましたが,その他に
も対応しているプリンタがあります.それについては,gnuplot の set の
オンラインヘルプや文献を参照してください.
4.11
グラフの保存
4.11.1
MATLAB でのグラフの保存
グラフを保存する場合にも print を使います.
POINT MATLAB でのグラフの保存
print
-d 画像フォーマット ’ ファイル名’
MATLAB で保存できる代表的な画像フォーマットを表 4.13 に示しま
す.印刷のときと同様に -f オプションでフィギュアウィンドウを指定す
ることができます.この表にない画像フォーマットについては,print の
52
4.11. グラフの保存
オンラインヘルプや文献を参照してください.4.10.1 節に説明したよう
に GUI ででもグラフの保存ができますが,そのときにもこの表のオプショ
ンが使えます.
表 4.13: print のオプション
オプション
-dps
-dpsc
-dps2
-dpsc2
-deps
-depsc
-deps2
-depsc2
-djpegnn
-dtiff
-dmeta
-dbitmap
-dmfile
画像フォーマット
モノクロ PostScipt(PS)
カラー PS
レベル 2 モノクロ PS
レベル 2 カラー PS
モノクロ Encapsulated PostScript(EPS)
カラー EPS
レベル 2 モノクロ EPS
レベル 2 カラー EPS
JPEG(nn はクオリティレベル)
TIFF
Metafile(Windows のみ)
bitmap(Windows のみ)
そのグラフをプロットするためのデータと
プログラムを保存する.
graph01.eps というファイル名でレベル 1 のモノクロ Encapsulated PostScript
(EPS)フォーマットで保存する場合には以下のようにします.
>> print -deps ’graph01.eps’
EPS ファイルは LATEX などに取り込むことができます.
ファイル名は文字列変数として与えることもできます.
>> fname = ’graph02.eps’;
>> print -deps fname
-dmeta オプションと -dbitmap オプションは Windows でのみ使えま
す.これらのオプションはその他のオプションと同じ print -dbitmap
’graph03.bmp’ という使い方の他にもう 1 つの使い方があります.それ
は,グラフをそのフォーマットでクリップボードに渡し,それを他のアプ
リケーションで利用するというものです.
この場合,以下のようにファイル名を指定せずに print を実行します.
>> print -dmeta
そして,Microsoft Word や Microsoft PowerPoint などの文書にペース
ト(貼り付け)すれば MATLAB で作成したグラフをそれらのアプリケー
53
第4章
データをプロットしてみよう
ションで利用することができます.ペイントソフトなどで加工することも
できます.
-dmfile オプションは他のオプションと違い,グラフを画像データとし
て保存するものではありません.そのグラフを作るためのデータ(MAT
ファイル)とそのデータを利用してプロットするプログラム(M ファイ
ル)を保存します.このオプションを使う利点は,1 度保存したグラフを
開いてグラフを追加したりラベルやタイトルを追加したりという操作がで
きるということです.
次のコマンドを実行すると,graph04.mat と graph04.m というファイ
ルができます.
>> print -dmfile graph04
グラフを再現したいときには次のコマンドを実行します.
>> graph04
これは,一旦 MATLAB を終了した後,再度 MATLAB を起動した後でも
有効です.
54
4.11. グラフの保存
4.11.2
Octave でのグラフの保存
グラフを保存する場合にも gsetOCT と replotOCT とを使います.
PS フォーマットで保存するときには,まず terminal を postscript に設
定します.次に,出力先のファイル名を指定し,replotOCT を実行します.
octave:11> gset terminal postscript
octave:12> gset output "graph04.ps"
octave:13> replot
EPS フォーマットで保存するときには,terminal を postscript に設定
し,さらにそのオプションとして eps を指定します.postscript にはこの
他にも,カラー/モノクロの指定,フォントの指定などのオプションがあ
ります.詳しくは,gnuplot の set のオンラインヘルプや文献を参照して
ください.
フォーマットおよびそのオプションを設定したら,出力先のファイル名
を指定し,replotOCT を実行します.
octave:14> gset terminal postscript eps
octave:15> gset output "graph04.eps"
octave:16> replot
次のグラフをプロットするために出力先を X ウィンドウ上に戻すには,
terminal を x11 に設定します.
octave:17> gset terminal x11
octave:18> gset output
gnuplot では,PS と EPS の他に GIF や Tgif などの画像フォーマット
でも出力できます.さらに,グラフを LATEX の picture 環境で出力するこ
ともできます.詳しくは gnuplot の set のオンラインヘルプや文献を参
照してください.
55