Pgfplots: Bild bewegt sich mit der Stichprobengröße!

Pgfplots: Bild bewegt sich mit der Stichprobengröße!

Ich bin ziemlich neu hier pgfplotsund muss etwas falsch machen. Ich zeichne eine stückweise Funktion mit dem folgenden Code:

\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}

Wenn ich nun die samples=11Option hinzufüge \addplot, ändert das Bild seine Position in der resultierenden PDF-Datei! Wenn ich die Stichprobengröße weiter erhöhe, bewegt sich das Bild irgendwann über die Ränder des Dokuments hinaus ...

Neben dem Problem des gleitenden Diagramms ist es etwas frustrierend, eine geeignete Stichprobengröße für eine stückweise lineare Funktion zu finden, da die Stichproben die Verbindungspunkte häufig „verfehlen“. Gibt es eine Möglichkeit, die Stichproben auch stückweise festzulegen?

Als zweite Frage: Ist es möglich, die Werte wie in der Funktionsdefinition mithilfe von xtickfestzulegen ?\DELTA

Danke!

Hinweis: In meinem Beispiel wird verwendet amsbook, aber ich beobachte dasselbe Verhalten mit standalone.

Antwort1

Ich konnte das Verhalten beseitigen, indem ich das Leerzeichen nach entfernt habe \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}

Beispielcodeausgabe

verwandte Informationen