LaTeXでグラフを描く方法2(直線以外の引き方)

今回は直線以外の引き方を説明します。具体的には、矢印と曲線を書いていきます。

前回と同様に、TikZを使用します。

TikZはドイツ語の"TikZ ist kein Zeichenprogramm"の略らしくて、略する前のところですでにTikZと入っていて全く意味が分かりません。

さて、まずは矢印の引き方についてですがTikZの標準仕様、LaTeXの標準仕様、ステルス戦闘機型などがあります。

書き方は、こんな感じです。各行の最後にセミコロンを忘れずにつけてください。

\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\usetikzlibrary{intersections, calc, arrows}
\begin{document}
\begin{tikzpicture}
\draw [->] (0,2)--(2,2);
\draw [-latex] (0,1)--(2,1);
\draw [-stealth] (0,0)--(2,0);
\end{tikzpicture}
\end{document}


そして、もちろん逆向きや両方向の矢印も選択できてこのように書きます。

\begin{tikzpicture}
\draw [->>] (0,2)--(2,2);
\draw [<-] (0,1)--(2,1);
\draw [latex-] (0,0)--(2,0);
\draw [<->] (0,-1)--(2,-1);
\end{tikzpicture}

次に曲線についてですが、まずは前回に扱ったrounded cornersオプションを使っても作成することができます。

%普通のギザギザの曲線
\begin{tikzpicture}
\draw  (0,0)--(2,2)--(2,2)--(4,0)--(6,1)--(8,-1);
\end{tikzpicture}

%曲線
\begin{tikzpicture}
\draw[rounded corners=20pt]  (0,0)--(2,2)--(4,0)--(6,1)--(8,-1);
\end{tikzpicture}

このように、オプションを何もつけないとふつうにギザギザな直線ができますが、rounded cornersオプションを付けることによって直線の曲がり角が滑らかになりました。

もう一つのやり方としては、ベジェ曲線を使うものがあります。ベジェ曲線についての細かな説明は省略しますが、制御点を使って何とかします。

例えば、(0,0)から(9,0)への曲線を描きたいときに3次関数みたいにしたいと思ったらこんな感じで書きます。

\begin{tikzpicture}
\draw  (0,0)..controls(3,5) and (6,-5)..(9,0);
\end{tikzpicture}

注意したいのは、指定した(3,5)と(6,-5)は通っていないということです。それが分かるように、点(3,5)と点(6,-5)を書いて線でつないでみたものがこれです。


\begin{tikzpicture}
\draw  (0,0)..controls(3,5) and (6,-5)..(9,0);
\fill(3,5) circle[radius=2pt] ;
\fill(6,-5) circle[radius=2pt] ;
\draw (0,0)--(3,5)--(6,-5)--(9,0);
\end{tikzpicture}

このように、始点と1つめの制御点を結んだ直線と曲線の接点が始点となっており、また同様に終点と2つめの制御点を結んだ直線と曲線の接点が終点になっていることが分かります。

また具体的な式を書いても曲線を引くことができます。


\begin{tikzpicture}
\draw[domain=-1:3] plot(\x,\x *\x);
\end{tikzpicture}

これは、xの領域を[-1,3]としてy=x^2を書いています。

以上のように、曲線を描くことができました。

次回はついにグラフを描きます。

この記事が気に入ったらサポートをしてみませんか?