next up previous
Next: 4 やってみよう (レポートの LATEX文書の叩き台を作る) Up: どうやって図を書くか Previous: 2.2.0.1 蛇足的な注意

3 Mathematica で作図する

曲線などは、 Plot[]ParametricPlot[] などで描けば良い (良く知られている事項)。


点や線分、円などは、 などのグラフィックス・プリミティブを用いて描くのが便利かもしれない。 以下、それを説明する。


点の座標はリスト {$ x$ , $ y$ } として定義する。 $ \mathrm{F}_1(-\sqrt{3},0)$ , $ \mathrm{F}_2(\sqrt{3},0)$ , $ \mathrm{P}(2\cos\frac{\pi}{4},\sin\frac{\pi}{4})$ , $ \mathrm{0}(0,0)$ とする。
f1 = {-Sqrt[3], 0}; f2 = {Sqrt[3], 0}; p = {2 Cos[Pi/4], Sin[Pi/4]};
o = {0, 0};
点、線分、円を、 グラフィックス・プリミティブ Point[], Line[], Circle[] を用いてv定義する。 「先頭の文字は大文字を使わないように」と言われているので、 名前の付け方が悩ましい。ここでは $ を使ってみた (悪趣味かも知れない)。
$F1 = Point[f1]; $F2 = Point[f2]; $P = Point[p];
$F1P = Line[{f1, p}]; $F2P = Line[{f2, p}];
r = 2; $C = Circle[o, r];
ここまで定義した点 $ \mathrm{F}_1$ , $ \mathrm{F}_2$ , $ \mathrm{P}$ , 線分 $ \mathrm{F}_1\mathrm{P}$ , $ \mathrm{F}_2\mathrm{P}$ , 円 $ \mathrm{C}$ からグラフィックス g1 を作る。
g1 = Graphics[{$F1,
               $F2,
               $P,
               $F1P, $F2P, $C}, Axes -> True]
(最後に Axes->True とすることで座標軸を描いている。 これは好みの問題かもしれない。)

点の説明などの文字列をつけておくのが良いかもしれない。 そうするためには、Text[] を使う。
g1 = Graphics[{$F1, Text["F1", f1 - {0, 0.1}],
               $F2, Text["F2", f2 - {0, 0.1}],
               $P, Text["P(x,y)", p + {0.1, 0.1}],
               $F1P, $F2P, $C}, Axes -> True]

(何だか楕円を描くことの方が楽ですね…)
g2 = ParametricPlot[{2 Cos[t], Sin[t]}, {t, 0, 2 Pi}];

g1, g2 を合わせて一つの図を描く。
g = Show[g1, g2, PlotRange -> All]
PlotRange->All は、 指定したグラフィックスをすべて描画できる範囲を確保する指示であるが、 今の場合は実は必要がない (g1 の範囲は g2 の範囲よりも大きいので)。

これをファイルに出力するには
Export["mygraph.eps", g]
あるいは
Export["mygraph.pdf", g]
のように Export[] を用いる。

ファイル名の末尾の「拡張子」を標準的なものにしておけば、 自動的にフォーマットが選択される (``.jpg'' なら JPEG, ``.eps'' なら EPS (Encapsulated PostScript), ``.png'' なら PNG, ``.pdf'' なら PDF (portable document format))。

図 1: eps (昔はこれ一択だったのですが)
\includegraphics[width=10cm]{graph/mygraph.eps}
図 2: png (今はこれか pdf がおすすめ?)
Image mygraph

実は Text[] はかなり高機能である。 Text[Style[テキスト, 大きさ], 座標, オフセット] とか、 色々工夫が出来る。

「テキスト」にも単なる文字列でなく、 Mathematica の式が書ける。 下付き文字のある $ F_1$ は、 F の後に \fbox{Control} +_ で入力出来る (あるいは Subscript[F,1] とする。 Mathematica の[ヘルプ]メニューの検索で、 「二次元式の入力」を見てみよう))。 $ P(x,y)$ を出力したい場合は P[x,y] とするとか。
g1 = Graphics[{$F1, Text[Style[Subscript[F, 1], Large], f1, {-1, 1}],
   $F2, Text[Style[Subscript[F, 2], Large], f2, {0, 1}],
   $P, Text[Style[P[x, y], Large], p, {-1, -1}],
   $F1P, $F2P, $C}, 
   Axes -> True]

図 3: ちょっとお色直し
Image mygraph2


next up previous
Next: 4 やってみよう (レポートの LATEX文書の叩き台を作る) Up: どうやって図を書くか Previous: 2.2.0.1 蛇足的な注意
桂田 祐史
2013-07-19