为以下数据添加趋势线

为以下数据添加趋势线

我正在处理 LaTeX 中的一些数据,希望显示直线方程以及趋势线,我发现的大多数来源通常处理从 Excel 文件获取的数据,我的数据已手动输入到 LaTeX 文件中。

\begin{tikzpicture}
\begin{axis}[
    title={Kinetic Energy vs Wavenumber},
    xlabel={Wavenumber ($\frac{1}{\lambda}$)},
    ylabel={$10^{19}$ Kinetic Energy (J)},
    xmin=2.00, xmax=4.00,
    ymin=0.00, ymax=5.00,
    xtick={0.00,2.00,2.50,3.00,3.50,4.00,4.50},
    ytick={0.00,0.50,1.00, 1.50, 2.00, 2.50, 3.00, 3.50, 4.00, 4.50},
    legend pos=north west,
    ymajorgrids=true,
    grid style=dashed,
]
\addplot[
    color=blue,
    mark=square,
    ]
    coordinates {
    (2,0.311)(2.22,0.700)(2.50,1.34)(2.86,1.89)(3.33,3.09)(4.00,4.49)
    };

\end{axis}
\end{tikzpicture}

这将生成以下图表:

数据生成的图表

答案1

如果您处理表格,您可能只需绘制表格,而不必手动将数据转换为坐标。然后添加回归线就非常容易了。

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplotstable}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    title={Kinetic Energy vs Wavenumber},
    xlabel={Wavenumber ($\frac{1}{\lambda}$)},
    ylabel={$10^{19}$ Kinetic Energy (J)},
    xmin=2.00, xmax=4.00,
    ymin=0.00, ymax=5.00,
    xtick={0.00,2.00,2.50,3.00,3.50,4.00,4.50},
    ytick={0.00,0.50,1.00, 1.50, 2.00, 2.50, 3.00, 3.50, 4.00, 4.50},
    legend pos=north west,
    ymajorgrids=true,
    grid style=dashed,
]
\addplot[
    color=blue,
    mark=square,
    ]
    table[col sep=comma] {
    lambda,Ekin
    2,0.311
    2.22,0.700
    2.50,1.34
    2.86,1.89
    3.33,3.09
    4.00,4.49
    };
\addplot[
    color=red,
    ]
    table[col sep=comma,
    y={create col/linear regression={y=Ekin}}] {
    lambda,Ekin
    2,0.311
    2.22,0.700
    2.50,1.34
    2.86,1.89
    3.33,3.09
    4.00,4.49
    };
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

当然,你也可以直接在宏中加载表格,

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplotstable}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread[col sep=comma]{
    lambda,Ekin
    2,0.311
    2.22,0.700
    2.50,1.34
    2.86,1.89
    3.33,3.09
    4.00,4.49
}{\mytable}
\begin{axis}[
    title={Kinetic Energy vs Wavenumber},
    xlabel={Wavenumber ($\frac{1}{\lambda}$)},
    ylabel={$10^{19}$ Kinetic Energy (J)},
    xmin=2.00, xmax=4.00,
    ymin=0.00, ymax=5.00,
    xtick={0.00,2.00,2.50,3.00,3.50,4.00,4.50},
    ytick={0.00,0.50,1.00, 1.50, 2.00, 2.50, 3.00, 3.50, 4.00, 4.50},
    legend pos=north west,
    ymajorgrids=true,
    grid style=dashed,
]
\addplot[
    color=blue,
    mark=square,
    ]
    table  \mytable;
\addplot[
    color=red,
    ]
    table[y={create col/linear regression={y=Ekin}}] \mytable
    node[pos=0.5,sloped,above]{$E_\mathrm{kin}\simeq
    \pgfmathprintnumber{\pgfplotstableregressiona}\cdot10^{19}\,\mathrm{J}/\lambda$};

\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

或者直接从文件中绘制数据。

相关内容