与加载到 pgfplots 中的数据具有相同域的函数

与加载到 pgfplots 中的数据具有相同域的函数

我正在尝试绘制数据并分析其与预测行为的吻合程度。我使用 pgfplots 使用以下命令绘制数据。\addplot[color=black,mark=x,only marks] table {data.dat};我想使用以下命令在数据上绘制一个函数\addplot[color=black,mark=none] {x*x};

\documentclass[a4paper]{article}

\usepackage{tikz}
\usepackage{blindtext}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\begin{document}
  \begin{tikzpicture}

    \begin{axis}

    \addplot table {
    1 1
    2 4.3
    3 8.7
    4 15.3
    };

    \addplot[color=black,mark=none] {x*x};

    \end{axis}
  \end{tikzpicture}

  \blindtext

\end{document}

不幸的是,函数的域不一定与数据的域匹配。我可以明确指定函数的域以匹配我的数据的最小值/最大值,但我从其他地方导入数据,这些值可能会偶尔发生变化。有没有办法自动调整函数域?

答案1

PGFPlots 将迄今为止遇到的数据的限制存储在名为\pgfplots@xmin\pgfplots@xmax等的宏中。您可以使用它们来指定函数域的范围:

\documentclass[a4paper]{article}

\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}

\makeatletter
\newcommand{\pgfplotsxmin}{\pgfplots@xmin}
\newcommand{\pgfplotsxmax}{\pgfplots@xmax}
\makeatother

\begin{document}
  \begin{tikzpicture}

    \begin{axis}

    \addplot table {
    1 1
    2 4.3
    3 8.7
    4 15.3
    };

    \addplot [
            color=black,
            mark=none,
        domain=\pgfplotsxmin:\pgfplotsxmax] {x*x};

    \end{axis}
  \end{tikzpicture}


\end{document}

相关内容