使用 pgfplot 对未命名列进行线性回归

使用 pgfplot 对未命名列进行线性回归

如何计算没有名称的列的线性回归?我有一个名为 lindat.csv 的文件,如下所示:

1,2
2,4
3,6
4,8

我尝试这样做,但索引部分似乎在回归中不起作用。

\begin{figure}[!h]
 \begin{tikzpicture}
  \begin{axis}[
    xlabel={X axis},
    ylabel={Y axis}
   ]
   \addplot [black, thin, dashed]
   table [
     x index=0,
     y={create col/linear regression={y= index=1}},
     col sep=comma]
    {data/lindat.csv};

   \addplot [only marks]
   table [,
     x index=0,y index=1
     col sep=comma
    ]
    {data/lindat.csv};

  \end{axis}
 \end{tikzpicture}
 \caption{}
 \label{fig:graph1}
\end{figure}

答案1

\documentclass[border = 5pt]{standalone}

\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.14}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    xlabel={X axis},
    ylabel={Y axis}
    ]
    \addplot [black, thin, dashed]
    table [
    x index=0,
    y={create col/linear regression},
    col sep=comma]
    {data/lindat.csv};

    \addplot [only marks]
    table [,
    x index=0,y index=1,
    col sep=comma
    ]
    {data/lindat.csv};

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

在此处输入图片描述

答案2

更一般地,要通过索引选择任何列,您可以使用索引的y={create col/linear regression={y=[index]#}位置。#

\documentclass[border = 5pt]{standalone}

\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.14}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    xlabel={X axis},
    ylabel={Y axis}
    ]
    \addplot [black, thin, dashed]
    table [
    x index=0,
    y={create col/linear regression={y=[index]1}},
    col sep=comma]
    {data/lindat.csv};

    \addplot [only marks]
    table [,
    x index=0,y index=1,
    col sep=comma
    ]
    {data/lindat.csv};

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

相关内容