コードDE描画

プログラミングで図を描く練習

【LaTeX】【tikz入門】図形をプロットする方法3選

数式を出力できるLaTeXには線や円などの図形を描くことができるtikzパッケージが存在する。しかし、線や円だけではすべての図形を描くことができない。

そこでtikzパッケージでは、任意の図形をプロットする仕組みが用意されている。

以下では3つの例を取り上げる。

準備

tikzパッケージを使用するためには、プリアンブル(\\begin\{document\}の前)に次のように記述して、tikzパッケージを使えるようにさせる。

\usepackage{tikz}

ここでエラーが出る場合は、使っている環境にtikzパッケージがインストールされていないので、別途インストールする必要がある。

基本構文

任意の図形をプロットする構文は次の通りである。

\begin{tikzpicture}

\コマンド [valiable=\変数名,domain=変域の開始点:変域の終了点,samples=サンプル数,smooth]plot (座標);
\end{tikzpicture}

各コマンドやオプションの説明は次のとおりである。

  • \\コマンド:drawまたはfillまたはfilldraw
  • valiable:プロットに使用される変数。デフォルトではエックス
  • domain:変数のとる値の領域:デフォルトでは−5から5まで
  • samples:プロットのサンプル数:デフォルトでは25 *smooth:このオプションをつけるとグラフがなめらかになる

各オプションの記述順序は問わない。

具体例

代数関数のプロット

一例として3次間数$$\cfrac{2}{3}x^{3}-\cfrac{5}{3}x$$を描く。

\begin{tikzpicture}
\draw [dotted,thin] (-2,-2) grid (2,2);
\draw [->,thick] (-2.2,0) -- (2.2,0) node [right]{x};
\draw [->,thick] (0,-2.2) -- (0,2.2) node [above]{y};
\node [below left] (0,0){O};
\draw [domain=-2:2,smooth] plot (\x,2/3*\x*\x*\x-5/3*\x);
\end{tikzpicture}
  • 実行結果

代数関数
代数関数

超越関数のプロット

三角関数や指数関数、対数関数等の超越関数も描くことができる。座標の中でかっこを使う場合は中かっこで囲む必要がある。

一例として指数関数$$2^{x}$$を描く。

\begin{tikzpicture}
\draw [dotted,thin] (-2,0) grid (2,4);
\draw [->,thick] (-2.2,0) -- (2.2,0) node [right]{x};
\draw [->,thick] (0,-0.2) -- (0,4.2) node [above]{y};
\node [below left] (0,0){O};
\draw [domain=-2:2,smooth] plot (\x,{exp(ln(2)*\x)});
\end{tikzpicture}
  • 実行結果

超越関数
超越関数

使える関数を以下列挙する。

極座標の使用

座標を極座標形式にすることで極座標でプロットも可能である。

一例として心臓形を描く。

\begin{tikzpicture}
\draw [dotted,thin] (-2,-2) grid (2,2);
\draw [->,thick] (-2.2,0) -- (2.2,0) node [right]{x};
\draw [->,thick] (0,-2.2) -- (0,2.2) node [above]{y};
\node [below left] (0,0){O};
\draw [domain=0:360,smooth] plot (\x:{1-sin(\x)});
\end{tikzpicture}
  • 実行結果

極座標
極座標

参考リンク

tikz wiki