LaTeXで図を直接描けるTikZの使い方3|グラフの描き方

TikZ
TikZ

TikZでは$y=x^2+x$や$y=\sin{x}$などといった$y=f(x)$の陽関数だけでなく,媒介変数表示された点$(x(t),y(t))$のグラフを描くこともできます.

関数のグラフを書くための三角関数,指数関数,対数関数のコマンドも用意されており,初等関数はほぼ問題なく描くことができます.

もちろん前回の記事で説明した線のスタイルの変更もできるので,重要なグラフは太くするといった描画も可能です.

また,極座標表示も可能なので,極方程式のグラフも描くことができます.

なお,本稿では以下のように3つのライブラリ”intersections”, “calc”, “arrows.meta”を用います.

なお,ライブラリについては最初の記事で説明しています.

$\LaTeX$の参考文献

以下は$\LaTeX$に関するオススメの参考書です.

LaTeX美文書作成入門 改訂第9版

[奥村晴彦 著/技術評論社]

$\TeX$はDonald E. Knuth氏が開発した数式処理に特化した組版処理システム(ざっくり言えば文書ソフト)です.

現在ではほとんどの数学の論文雑誌では$\LaTeX$により書かれた論文が標準となっています.

そのため,ほとんどの数学の研究者が論文作成の際に$\LaTeX$を使っていると言ってよいでしょう.

著者の奥村氏は日本における$\TeX$の第一人者で,本書は$\LaTeX$初心者から中級者まで幅広い層に役立つ$\LaTeX$の教科書です.

数式処理だけでなく$\LaTeX$を扱う際に便利な多くの機能の解説が載っており,しっかり理解して$\LaTeX$を習得することができます.

グラフを描く方法

ここでは,陽関数$y=f(x)$のグラフの描き方を説明します.

グラフの基本

例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示されます.すなわち,

と記述すれば,$y=f(x)$の$x\in [a,b]$のグラフが描けます.

関数

TikZでグラフを描く際,ある程度の関数を使えることが望ましいですね.

そして,実際にTikZにはいくつかの関数が標準で用意されています.

TikZで使える関数
関数 記述
四則演算(和,差,積,商) +-*/
絶対値($|X|$) abs(X)
非負の平方根($\sqrt{X}$) sqrt(X)
三角関数($\sin{X}$,$\cos{X}$,$\tan{X}$) sin(X)cos(X)tan(X)
逆三角関数($\sin^{-1}{X}$,$\cos^{-1}{X}$,$\tan^{-1}{X}$) asin(X)acos(X)atan(X)
指数関数($e^X$) exp(X)
一般冪($X^Y$) pow(X,Y)
対数($\log{X}$, $\log_{10}{X}$, $\log_2{X}$) ln(X)log10(X)log2(X)
階乗($X!$) factorial(x)
天井関数床関数($\lceil{X}\rceil$, $\lfloor{X}\rfloor$) ceil(X)floor(x)
最大,最小($\max(X1,\dots,Xn)$, $\min(X1,\dots,Xn)$) max(X1,,Xn)max(X1,,Xn)

また,

  • ネイピア数(自然対数の底)$e$は e
  • 円周率$\pi$は pi

と記述すれば,定数として扱うことができます.

注意1

例えば

とすると, (\x,sqrt(\x))の部分でコンパイルエラーが起こります.

これはTikZの座標の記述の丸括弧( )のなかに,直接丸括弧( )を入れることができないことが原因で起こります.

この対策として,

などと中括弧{ }でワンクッション入れれば,エラーが解消されます.

注意2

三角関数($\sin{X}$,$\cos{X}$,$\tan{X}$)は全て度数法で判断されます.したがって,例えば

は点$(\pi,\sin{\pi^\circ})$に$\mrm{A}$が表示されてしまいます.

三角関数の引数を度数法ではなく弧度法で解釈させたい場合には, (pi,{sin(pi r)}) のように引数の後に”r”を追加することで弧度法として実行させることができます.

グラフの例

例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示されます.

グラフのオプション

plotでグラフを書く際に,いくつかのオプションがあります.

プロットする点を増やす方法

plot(座標)によるグラフの描画は,区間を等間隔に区切ってできる25個の点をプロットし,それらを線分で結んで描いています.

プログラミングでもよくあるように,このままだと細かい動きのあるグラフではプロットした点の間の動きを捉えられないことも多く,実際に上で描いた赤線$y=\sqrt{x}$は理論上では点$(0,0)$で$x$軸に垂直に刺さるはずですが,斜めに刺さっているように見えます.

また,緑線$y=\cos{x}$のグラフも,よく見るとカクカクしたグラフになっています.

そこで,

のように samples=(プロットする点の数) をオプションに加えることで,プロットする点の数を変え,より精度の良いグラフを描くことができます.

実際,

と記述すれば, samples=100だからプロットする点を100個になり

Rendered by QuickLaTeX.com

と先ほどよりなめらかになりましたね.

変数を変える

結局,区間を等間隔に区切ってプロットし,線分で結ぶという作業をしているのが”plot”なので, plot(座標)の第1成分が \xである必要はありません.

$x$が実数を動くとき

    \begin{align*}(x-\sin{x},1-\cos{x})\end{align*}

は平面上にサイクロイドを描くので,

とすれば,サイクロイドが描けます.

Rendered by QuickLaTeX.com

しかし,媒介変数表示はデフォルトの \xよりも別の文字で表す方が,媒介変数らしいですね.

そこで,オプションに variable=\t を追加することで,変数を \tで表すことができます.すなわち,サイクロイドの記述を

としても上のサイクロイドと同じものが描けます.

極座標

次に,TikZでの極座標に関する表現について説明します.

極座標での表し方

極座標上の偏角$a^{\circ}$,半径$r$の点$(a^{\circ},r)$は,TikZでは (a:r)で表すことができます.例えば,

と記述すれば,

Rendered by QuickLaTeX.com

のように,原点を始点とする長さ2,偏角$30^{\circ}$のベクトルが表示されます.TikZの極座標表示では度数法により解釈されることに注意してください.

度数法を弧度法として解釈させたい場合には,三角関数の引数と同様に

と記述します.

円弧

半径$r$の円に対して,偏角$a^{\circ}$の位置にある点(A)と偏角$b^{\circ}$の位置にある点Bを考えます.

この弧ABは

と記述すれば表示できます.

例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示されます.

極方程式のグラフ

極方程式のグラフは,直交座標の“plot”と極座標表示を組み合わせることで描くことができます.

例えば,$a>0$に対して極方程式$r=2a\cos{\theta}$は点$(a,0)$中心,半径$a$の円周を表すので,

と記述すれば,

Rendered by QuickLaTeX.com

と極座標上で点$(1.5,0)$を中心とする半径1.5の円が表示されます.

コメント