Pgfplots: 画像はサンプル サイズに応じて移動します。

Pgfplots: 画像はサンプル サイズに応じて移動します。

私はかなり初心者なのでpgfplots、何か間違っているに違いありません。次のコードを使用して区分関数をプロットしています。

\documentclass{amsbook}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\begin{document}

\newcommand{\DELTA}{.3}
\pgfmathdeclarefunction{fdelta}{1}{%
    \pgfmathparse{%
      and(#1 >= 1-\DELTA/2, #1 <= 1+\DELTA/2) * (1 - 2 * abs(#1 - 1) / \DELTA)
    }
 }

\begin{tikzpicture}
  \begin{axis}[
      title={$f_{\delta}(x)$},
      xmin=0, xmax=2,
      xtick={0, .85, 1.15, 2},
      xticklabels={0, \(1-\frac{1}{2}\delta\), \(1+\frac{1}{2}\delta\), 2},
      ytick={0, 1},
    ]
    \addplot[domain=0:2, ultra thick]{fdelta(x)};
  \end{axis}
\end{tikzpicture}

\end{document}

samples=11ここで、にオプションを追加すると\addplot、結果の PDF ファイル内で画像の位置が変わります。サンプル サイズを大きくし続けると、最終的に画像はドキュメントの余白の外側に移動します...

移動プロットの問題に加えて、サンプルが接合点を「見逃す」ことが多いため、区分線形関数の適切なサンプル サイズを見つけるのは少し面倒です。サンプルを区分的に設定する方法はありますか?

2 番目の質問として、関数定義のように をxtick使用しての値を設定することは可能ですか?\DELTA

ありがとう!

注: 私の例では を使用していますamsbookが、 でも同じ動作が見られますstandalone

答え1

の後のスペースを削除することで、この動作を解消できました\pgfmathparse

\documentclass{article}
\pagestyle{empty}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}


\newcommand{\DELTA}{.3}
\pgfmathdeclarefunction{fdelta}{1}{%
    \pgfmathparse{%
      and(#1 >= 1-\DELTA/2, #1 <= 1+\DELTA/2) * (1 - 2 * abs(#1 - 1) / \DELTA)%
    }%
 }

\newcommand{\g}[1]{
\begin{tikzpicture}[scale=0.75]
  \begin{axis}[
      title={$f_{\delta}(x)$},
      xmin=0, xmax=2,
      xtick={0, .85, 1.15, 2},
      xticklabels={0, \(1-\frac{1}{2}\delta\), \(1+\frac{1}{2}\delta\), 2},
      ytick={0, 1},
      samples=#1
    ]
    \addplot[domain=0:2, ultra thick]{fdelta(x)};
  \end{axis}
\end{tikzpicture}}

\begin{document}

\g{10}

\g{11}

\g{20}


\end{document}

サンプルコード出力

関連情報