对修改后的数据进行线性回归

对修改后的数据进行线性回归

我想对修改后的数据创建线性回归。

我的原始数据存储在一个名为 data.dat 的文件中,如下所示:

x,y
1,2
2,3
3,4
4,5
5,8
6,9
7,34

如果我执行类似下面的代码的操作,我就会得到未修改数据的线性回归。

\documentclass{beamer}


\usepackage{etex}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}

\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{epstopdf}
\usepackage{tikz}
\usepackage{circuitikz}
\usepackage{pstricks}

\usepackage{graphicx}


\pgfplotsset{legend style={fill=none, font=\tiny, legend pos=north east}}


\begin{document}


\begin{frame}

\setbeamercovered{invisible}
\begin{tikzpicture}
    \begin{axis}[
        xlabel={x},
        ylabel={y},
        width=0.8\paperwidth, height=0.8\paperheight,
        ymin=0,
        xmin=0,
        xmajorgrids, xminorgrids, ymajorgrids,
    ]   

    \addplot table [col sep=comma, y expr= \thisrow{y}/((7.75)), x expr = \thisrow{x}^(2)]{data.dat};
    \addlegendentry{Huile/Eau, débit nul};
    \addplot table[col sep=comma,y={create col/linear regression}]{data.dat};
\addlegendentry{%
$\pgfmathprintnumber{\pgfplotstableregressiona} \cdot x
\pgfmathprintnumber[print sign]{\pgfplotstableregressionb}$}    


    \end{axis}  
\end{tikzpicture}
\end{frame}

\end{document}

它给了我这个而不是我的图的线性回归

在此处输入图片描述

答案1

感谢 Gonzalo Medina 在这篇文章中所说:从 pgfplottable 绘图和拟合,我确实做了我想做的事。

最终的代码是:

\documentclass{beamer}


\usepackage{etex}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}

\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{epstopdf}
\usepackage{tikz}
\usepackage{circuitikz}
\usepackage{pstricks}
\usepackage{array}

\usepackage{graphicx}

\usepackage{filecontents}


\begin{document}




\begin{frame}


\pgfplotstableread[col sep = comma]{data.dat}\loadedtable
\pgfplotstableset{
create on use/new/.style={
create col/expr={\thisrow{x}^(2)}},
create on use/new2/.style={
create col/expr ={\thisrow{y}/((7.75))}
}
}

\begin{tikzpicture}
\begin{axis}
\addplot table [x=new,y=new2] {\loadedtable};
\addlegendentry{test};
\addplot table[x=new,y={create col/linear regression={y=new2}}] {\loadedtable};
\addlegendentry{%
$\pgfmathprintnumber{\pgfplotstableregressiona} \cdot x
\pgfmathprintnumber[print sign]{\pgfplotstableregressionb}$}  
\end{axis}
\end{tikzpicture}

\end{frame}

\end{document}

相关内容