TikZで関数のグラフを描く方法

TikZで関数のグラフを描く方法を書く。

1. タイプセット環境

macOS Sierra,texlive2016,platex,dvipdfmx,lualatex

2. コードと実行結果
コード
%
%    preamble for lualatex
%
%\RequirePackage{luatex85}
%\documentclass[border={5pt,5pt,5pt,5pt}]{standalone}
%\usepackage{tikz}
%\usepackage{luatexja}

%
%    preamble for platex
%
\documentclass[border={5pt,5pt,5pt,5pt},dvipdfmx]{standalone}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{arrows.meta}

\begin{document}

    \begin{tikzpicture}

        %
        %    軸を描く
        %
        \path[draw,-{Stealth[length=3mm]}] (-5, 0) -- (5,0) node[above right] {\large $x$};
        \path[draw,-{Stealth[length=3mm]}] (0, -2.5) -- (0,6) node[right=2mm] {\large $y$} ;
        \path (0,0) node[above left] {$\mathrm{O}$};

        %
        %    y=e^x
        %
        \path[draw,domain=-5:1.8] plot (\x, {exp(\x)}) node[above right] {$y=e^x$};

        %
        %    y=|x|
        %
        \path[draw,domain=-5:5] plot (\x, {abs(\x)}) node[above right] {$y=|x|$};

        %
        %    y=\dfrac{\sin x}{x}
        %
        \path[draw,domain=-5:-0.001] plot (\x, {sin(\x r) / \x});
        \path[draw,domain=0.001:5] plot (\x, {sin(\x r) / \x}) node[below right] {$y=\dfrac{\sin x}{x}$};

        %
        %    x^2 + y^2 = 1
        %
        \path[draw,domain=0:6.28,variable=\t] plot ({cos(\t r)},{sin(\t r)});
        \path (0,-1) node[below right=0.2cm] {$x^2 + y^2 = 1$};
    \end{tikzpicture}

\end{document}
実行結果
3. 説明
3.1. preambleの説明
\documentclass[border={5pt,5pt,5pt,5pt},dvipdfmx]{standalone}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{arrows.meta}

分数を描くためにamsmathパッケージを追加した。

3.2. documentの説明
%
%    軸を描く
%
\path[draw,-{Stealth[length=3mm]}] (-5, 0) -- (5,0) node[above right] {\large $x$};
\path[draw,-{Stealth[length=3mm]}] (0, -2.5) -- (0,6) node[right=2mm] {\large $y$} ;
\path (0,0) node[above left] {$\mathrm{O}$};

まず軸を書いた。
以下,いくつか具体的に関数を描いてみる。関数はgnuplot記法に沿って書く。LaTeX記法で書くとエラーになるので注意。
gnuplot記法

%
%    y=e^x
%
\path[draw,domain=-5:1.8] plot (\x, {exp(\x)}) node[above right] {$y=e^x$};

domainオプションで定義域を決める。plot 部分では,変数にバックスラッシュをつける(\x)ことと,関数をgnuplot記法で書くことに注意する。

%
%    y=|x|
%
\path[draw,domain=-5:5] plot (\x, {abs(\x)}) node[above right] {$y=|x|$};

絶対値の書き方に注意。

%
%    y=\dfrac{\sin x}{x}
%
\path[draw,domain=-5:-0.001] plot (\x, {sin(\x r) / \x});
\path[draw,domain=0.001:5] plot (\x, {sin(\x r) / \x}) node[below right] {$y=\dfrac{\sin x}{x}$};

sin(\x r)のrは,\xを弧度法で解釈するためのオプション。

%
%    x^2 + y^2 = 1
%
\path[draw,domain=0:6.28,variable=\t] plot ({cos(\t r)},{sin(\t r)});
\path (0,-1) node[below right=0.2cm] {$x^2 + y^2 = 1$};

陰関数も媒介変数を使って描画できる。

ほかにも,data visualization ライブラリーを使ってグラフを描く方法がある。

おしまい。

コメントを残す

メールアドレスが公開されることはありません。

This site uses Akismet to reduce spam. Learn how your comment data is processed.