我想对修改后的数据创建线性回归。
我的原始数据存储在一个名为 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}