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 文件中的位置!如果我繼續增加樣本大小,圖片最終會移到文件邊緣之外...

除了移動繪圖問題之外,為分段線性函數找到合適的樣本大小有點令人沮喪,因為樣本經常「錯過」連接點。有沒有辦法分段設定樣本?

作為第二個問題,是否可以像函數定義中那樣設定xtickusing的值?\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}

範例程式碼輸出

相關內容