I'm not too sure about what mistake I made, but all my linear regression lines have the same equation although they obviously are different lines. Could someone please help me? Thank you.
\documentclass{article}
\usepackage{pgfplots, pgfplotstable}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{xcolor}
\begin{document}
\pgfplotstableread{
X Y
0 33.3
0.2 20
0.4 16.7
0.6 0
0.8 0
1 -20
}\datatable
\pgfplotstableread{
X Y
0 33.3
0.2 0
0.4 0
0.6 -20
0.8 -66.6
1 -71.4
}\datatablee
\pgfplotstableread{
X Y
0 11.5
0.2 6.9
0.4 -22.7
0.6 -26.7
0.8 -34.5
1 -37
}\datatableee
\pgfplotstableread{
X Y
0 39.6
0.2 16.67
0.4 5
0.6 -11.4
0.8 -19.6
1 -30.5
}\datatableeee
\begin{figure}
\begin{center}
\hspace{13mm}\textbf{Percent Change vs Sucrose Concentration}
\begin{tikzpicture}
\begin{axis}[legend style={at={(0.5,-0.1)},anchor=north},
xlabel={Concentration of Sucrose},
ylabel={Percent Change of Mass}]
\addplot [only marks, mark = *,red!80!black] table {\datatable};
\addplot [thick, red] table[
y={create col/linear regression={y=Y}}
] % compute a linear regression from the input table
{\datatable};
\addlegendentry{Apple}
\addlegendentry{%
$y=$$\pgfmathprintnumber{\pgfplotstableregressiona} \cdot x
\pgfmathprintnumber[print sign]{\pgfplotstableregressionb}$}
\addplot [only marks, mark = *,blue!80!black] table {\datatablee};
\addplot [thick, blue] table[
y={create col/linear regression={y=Y}}
] % compute a linear regression from the input table
{\datatablee};
\addlegendentry{Celery}
\addlegendentry{%
$y=$$\pgfmathprintnumber{\pgfplotstableregressiona} \cdot x
\pgfmathprintnumber[print sign]{\pgfplotstableregressionb}$}
\addplot [only marks, mark = *,green!80!black] table {\datatableee};
\addplot [thick, green] table[
y={create col/linear regression={y=Y}}
] % compute a linear regression from the input table
{\datatableee};
\addlegendentry{Russet Potato}
\addlegendentry{%
$y=$$\pgfmathprintnumber{\pgfplotstableregressiona} \cdot x
\pgfmathprintnumber[print sign]{\pgfplotstableregressionb}$}
\addplot [only marks, mark = *,magenta!90!black] table {\datatableeee};
\addplot [thick, magenta] table[
y={create col/linear regression={y=Y}}
] % compute a linear regression from the input table
{\datatableeee};
\addlegendentry{Red Potato}
\addlegendentry{%
$y=$$\pgfmathprintnumber{\pgfplotstableregressiona} \cdot x
\pgfmathprintnumber[print sign]{\pgfplotstableregressionb}$}
\end{axis}
\end{tikzpicture}
\end{center}
\caption{}
\end{figure}
\end{document}
Best Answer
Since you are using many plots, the
\pgfplotstableregressiona
is over written and the last one is displayed in all equations.Use some thing like
\xdef\slope{\pgfplotstableregressiona}
then the value is stored in\slope
globally. Do similarly for\pgfplotstableregressionb
as below: