pgfplots の対数軸
axis を semilogyaxis(y が対数)、semilogxaxis(x が対数)、loglogaxis(両方)に置き換えるか、通常の axis に ymode=log や xmode=log を指定します。
y 軸の対数目盛り
個数、誤差、周波数など、何倍という単位で増える値は、対数目盛りで見るのがいちばんです。semilogyaxis は x を線形のまま、y を対数にします。目盛りは 10 のべき乗の位置に置かれ、$10^k$ と表示されます。
対数の y 軸の指数関数的な増加
\begin{tikzpicture}
\begin{semilogyaxis}[xlabel={Day}, ylabel={Cells}, grid=major]
\addplot coordinates {(0,44) (1,120) (2,350) (3,980) (4,2700) (5,7600) (6,21000)};
\end{semilogyaxis}
\end{tikzpicture}このグラフで直線になるのは、1 ステップごとに同じ倍率で増え続けていることを意味します。
両軸の対数
loglogaxis は両方の軸を対数にします。$y = x^2$ のようなべき乗則は、傾きが指数に等しい直線になります。
両対数グラフのべき乗則
\begin{tikzpicture}
\begin{loglogaxis}[xlabel=$n$, ylabel={Time (s)}, legend pos=north west]
\addplot coordinates {(10,0.001) (100,0.01) (1000,0.1) (10000,1)};
\addplot coordinates {(10,0.0001) (100,0.01) (1000,1) (10000,100)};
\legend{$O(n)$, $O(n^2)$}
\end{loglogaxis}
\end{tikzpicture}xmode と ymode で同じことをする
xmode=log と ymode=log は、通常の axis を対数目盛りにします。スタイルで切り替えたい場合や、グループプロットの中で便利です。
通常の軸に xmode=log
\begin{tikzpicture}
\begin{axis}[xmode=log, xlabel={Frequency (Hz)}, ylabel={Gain (dB)}, ymin=-30, ymax=5]
\addplot[blue, thick, domain=1:5, samples=60, variable=t]
({10^t}, {-10*log10(1 + (10^t/1000)^2)});
\end{axis}
\end{tikzpicture}数式は対数軸でも使えますが、domain と samples はデータの単位で指定します。サンプルは両端の間に均等に配置されるので、対数軸ではほとんどが最後の 1 桁に集まってしまいます。そのためこの例では、指数 t を媒介変数とする曲線を $10^1$ から $10^5$ までプロットし、サンプルが対数軸に沿って均等に並ぶようにしています。pgfplots も同じ動作です。
ほかの底
log basis y=2(または log basis x)で底を変えます。目盛りは 2 のべき乗の位置に置かれ、$2^k$ と表示されます。
y 軸の底を 2 にする
\begin{tikzpicture}
\begin{semilogyaxis}[log basis y=2, xlabel={Doublings}, ymin=1, ymax=64]
\addplot coordinates {(0,1) (1,2) (2,4) (3,8) (4,16) (5,32)};
\end{semilogyaxis}
\end{tikzpicture}対数軸のオプション
| オプション | Scissor LaTeX での対応 | 補足 |
|---|---|---|
semilogxaxis、semilogyaxis、loglogaxis | 使える | |
xmode=log、ymode=log | 使える | |
log basis x=b、log basis y=b | 使える | |
対数軸の ymin、ymax | 使える | 正の値を指定します。 |
log ticks with fixed point | 未対応 | メッセージ付きで無視され、ラベルはべき乗のままです。 |
対数軸の ybar stacked | 未対応 | 棒は積み上げられずに重ねて描かれ、メッセージは出ません。 |
| 0 以下の値 | 除外 | 対数目盛りで表示できない点は除かれ、メッセージが 1 つ出ます。 |
TeX のインストール環境との違い
線形の軸の棒グラフは棒グラフを、すべてのオプションは pgfplots のマニュアルをご覧ください:ctan.org/pkg/pgfplots。
折れ線グラフ、グループプロット、等高線とヒートマップもご覧ください。
よくある質問
pgfplots で y 軸を対数にするにはどうすればよいですか?
axis の代わりに \begin{semilogyaxis} ... \end{semilogyaxis} を使うか、軸のオプションに ymode=log を追加します。
対数グラフにデータが表示されないのはなぜですか?
対数軸では 0 や負の値を表示できません。そのような値の点は除外され、「問題」タブにその旨が表示されます。データをずらすか、線形の軸を使ってください。
底を 2 や e にできますか?
はい。log basis y=2(または任意の正の数、たとえば log basis x=2.71828)で指定できます。
このページの例はすべて、サイトのビルド時に Scissor LaTeX で組版されています。 最終更新:2026-11-07