
TikZではや
などといった
の陽関数だけでなく,媒介変数表示された点
のグラフを描くこともできる.
関数のグラフを書くための三角関数,指数関数,対数関数のコマンドも用意されており,初等関数はほぼ問題なく描くことができる.
もちろん前回の記事で説明した線のスタイルの変更も行えるので,重要なグラフは太くするといった描画も可能である.
また,極座標表示も可能なので,この記事で説明する.
したがって,極座標表示を用いることにより,極方程式のグラフも描くことができる.
一連の記事は以下の通りである.
【LaTeXで図を直接描けるTikZの使い方1|基本的な描線】
【LaTeXで図を直接描けるTikZの使い方2|線のスタイル】
【LaTeXで図を直接描けるTikZの使い方3|グラフの描き方】←この記事
【LaTeXで図を直接描けるTikZの使い方4|座標の定義と計算】
なお,本稿では以下のように2つのライブラリ”intersections”,”calc”を用いる.
1 2 3 4 5 6 7 |
\documentclass[dvipdfmx]{jsarticle} \usepackage{tikz} \usetikzlibrary{intersections, calc} \begin{document} \end{document} |
【SPONSORED LINK】
目次
グラフを描く方法
ここでは,陽関数のグラフの描き方を説明する.
グラフの基本
例えば,
1 2 3 4 5 6 |
\begin{tikzpicture} \draw[->,>=stealth,very thick] (-2,0)--(2,0)node[above]{$x$}; %x軸 \draw[->,>=stealth,very thick] (0,-1)--(0,3)node[right]{$y$}; %y軸 \draw (0,0)node[below right]{O}; %原点 \draw[domain=-2:2] plot(\x,\x+1)node[right]{$y=x+1$}; \end{tikzpicture} |
と記述すれば,
と表示される.すなわち,
1 |
\tikz \draw[domain=a:b] plot(\x,{f(\x)}); |
と記述すれば,の
のグラフが描ける.
関数
TikZでグラフを描く際,ある程度の関数を使えることが望ましい.
そして,実際にTikZにはいくつかの関数が標準で用意されている.
関数 | 記述 |
---|---|
四則演算(和,差,積,商) | + , - , * , / |
絶対値( |
abs(X) |
非負の平方根( |
sqrt(X) |
三角関数( |
sin(X), cos(X), tan(X) |
逆三角関数( |
asin(X), acos(X), atan(X) |
指数関数( |
exp(X) |
一般冪( |
pow(X,Y) |
対数( |
ln(X), log10(X), log2(X) |
階乗( |
factorial(x) |
天井関数,床関数( |
ceil(X), floor(x) |
最大,最小( |
max(X1,…,Xn), max(X1,…,Xn) |
また,ネイピア数(自然対数の底)と,円周率
はそれぞれ”e”と”pi”で定数として扱うことができる.
注意1
例えば
1 |
\tikz \draw[domain=0:2.5] plot(\x,sqrt(\x)); |
とすると, (\x,sqrt(\x))の部分でコンパイルエラーが起こる.
これはTikZの座標の記述の丸括弧( )のなかに,直接丸括弧( )を入れることができないことが原因で起こる.
この対策として,
1 |
\tikz \draw[domain=0:2.5] plot(\x,{-sqrt(\x)}); |
などと中括弧{ }でワンクッション入れれば,エラーが解消される.
注意2
三角関数(,
,
)は全て度数法で判断される.したがって,例えば
1 |
\tikz \draw(pi,{sin(pi)})node{A}; |
は点に
が表示されてしまう.
三角関数の引数を度数法ではなく弧度法で解釈させたい場合には,(pi,{sin(pi r)}) のように引数の後で”r”を追加すれば良い.
グラフの例
例えば,
1 2 3 4 5 6 7 8 |
\begin{tikzpicture} \draw[->,>=stealth,very thick] (-3.5,0)--(3.5,0)node[above]{$x$}; %x軸 \draw[->,>=stealth,very thick] (0,-3.5)--(0,2.5)node[right]{$y$}; %y軸 \draw (0,0)node[below right]{O}; %原点 \draw[red,domain=0:3.5] plot(\x,{sqrt(\x)})node[right]{$y=\sqrt{x}$}; \draw[blue,domain=-3.5:3.5] plot(\x,{-abs(\x)})node[right]{$y=-|x|$}; \draw[green,domain=-3.5:3.5] plot(\x,{sin(\x)})node[right]{$y=\sin{x}$}; \end{tikzpicture} |
と記述すれば,
と表示される.
グラフのオプション
“plot”でグラフを書く際に,いくつかのオプションがある.
プロットする点を増やす方法
plot(座標)によるグラフの描画は,区間を等間隔に区切ってできる25個の点をプロットし,それらを線分で結んで描いている.
このことから,プログラミングでもよくあるように,細かい動きのあるグラフでは,プロットした点の間の動きを捉えられないことも多い.
実際,上で描いた赤線は理論上では点
で
軸に垂直に刺さるはずだが,斜めに刺さっている.
また,緑線のグラフもカクカクしたグラフになっている.
そこで,
1 |
\tikz \draw[samples=100,domain=0:2.5] plot(\x,sqrt(\x)); |
のように samples=(プロットする点の数) をオプションに加えることで,プロットする点の数を変え,より精度の良いグラフを描くことができる.実際,
1 2 3 4 5 6 7 8 |
\begin{tikzpicture} \draw[->,>=stealth,very thick] (-3.5,0)--(3.5,0)node[above]{$x$}; %x軸 \draw[->,>=stealth,very thick] (0,-3.5)--(0,2.5)node[right]{$y$}; %y軸 \draw (0,0)node[below right]{O}; %原点 \draw[red,samples=100,domain=0:3.5] plot(\x,{sqrt(\x)})node[right]{$y=\sqrt{x}$}; \draw[blue,domain=-3.5:3.5] plot(\x,{-abs(\x)})node[right]{$y=-|x|$}; \draw[green,samples=100,domain=-3.5:3.5] plot(\x,{cos(\x r)})node[right]{$y=\cos{x}$}; \end{tikzpicture} |
と記述すれば,
となる.
変数を変える
結局,区間を等間隔に区切ってプロットし,線分で結ぶという作業をしているのが”plot”なので,plot(座標) の第1成分が”\x”である必要はない.
例えば,
1 |
\tikz \draw[domein=0:2*pi]({\x-sin(\x r)},{1-cos(\x r)}); %サイクロイド |
とすれば,サイクロイドが描ける.しかし,媒介変数表示はデフォルトの”\x”よりも別の文字で表す方が媒介変数であることが,すぐに見て取れる.
そこで,オプションにvariable=\t を追加することで,変数を”\t”で表すことができる.すなわち,
1 2 3 4 5 6 7 8 |
\begin{tikzpicture} \draw[->,>=stealth,very thick] (-0.5,0)--(2*pi+0.5,0)node[above]{$x$}; %x軸 \draw[->,>=stealth,very thick] (0,-0.5)--(0,2.5)node[right]{$y$}; %y軸 \draw (0,0)node[above left]{O}; %原点 \draw[samples=100,domain=0:2*pi,variable=\t] plot({\t-sin(\t r)},{1-cos(\t r)}); %サイクロイド \draw (2*pi,0)node[below]{$2\pi$}; %点(2\pi,0) \draw[dashed] (0,2)node[left]{$2$}--(pi,2)--(pi,0)node[below]{$\pi$}; %点(\pi,2) \end{tikzpicture} |
と記述すれば,
と表示される.
極座標
ここで,TikZでの極座標に関する表現について触れておく.
極座標での表し方
極座標上の半径,偏角
の点
は,TikZでは(r:a)で表すことができる.例えば,
1 |
\tikz \draw[->] (0,0)--(30:2); |
と記述すれば,
のように,長さ,偏角
のベクトルを表示する.TikZの極座標表示では度数法により解釈されることに注意する.
また,三角関数の引数と同様に,
1 |
\tikz \draw[->] (0,0)--(pi/6 r:2); |
と記述すれば,弧度法として解釈される.
円弧
半径の円に対して,偏角
の位置にある点Aと偏角
の位置にある点Bを考える(
).
この弧ABは
1 |
\tikz \draw A arc(a:b:r); |
と記述すれば表示できる.
例えば,
1 2 3 4 5 6 7 8 |
\begin{tikzpicture} \draw[->,>=stealth,very thick] (-1.5,0)--(2.5,0)node[above]{$x$}; %x軸 \draw[->,>=stealth,very thick] (0,-0.5)--(0,1)node[right]{$y$}; %y軸 \draw (0,0)node[above left]{O}; %原点 \draw (2,1)node[right]{A}; %点A(2,1) \draw (2,1) arc (60:110:3); %点Aが偏角60度の点であるような半径3の円の,偏角60度から110度の部分の円弧 \draw (2,1)++(60:-3)++(110:3)node[left]{B}; %円弧のAでない方の端点B(2,1) \end{tikzpicture} |
と記述すれば,
と表示される.
極方程式のグラフ
極方程式のグラフは,直交座標の”plot”と極座標表示を組み合わせることで描くことができる.
例えば,に対して極方程式
は点
中心,半径
の円周を表すので,
1 2 3 4 5 |
\begin{tikzpicture} \draw[->,>=stealth,very thick] (0,0)--(6.5,0)node[above]{$x$}; %始線 \draw (0,0)node[left]{O}; %極 \draw[samples=100,domain=0:2*pi,variable=\a] plot(\a r:{2*3*\cos(\a)}); %点(3,0)を中心とする半径3の円 \end{tikzpicture} |
と記述すれば,
と極座標上で点(3,0)を中心とする半径3の円が表示される.
【次の記事:LaTeXで図を直接描けるTikZの使い方4|座標の定義と計算】
TikZでは点を(A)などと名付けることができる.例えば,点を(A)と定義すると,(A)と書いた部分は全て点
として処理される.こうすれば,もし点
を
に書き換えたいなら,たった1ヶ所(A)の定義を
に書き換えるだけでよく,非常に編集が容易になる.
参考文献
以下はLaTeXに関しての参考文献である.
著者の奥村氏は日本におけるTeXの第一人者であり,本書はLaTeX初心者から中級者まで幅広い層に役立つLaTeXの教科書である.
非常に詳しく解説が載っており,しっかり理解して習得することができる.
本書にはDVD-ROMが付属しており,LaTeXのインストール用がすぐにできるので,LaTeXをはじめる人が苦戦しがちな環境整備がすぐにできる.
ただし,本稿の内容のTikZについての記述はないので注意.
コメント