
Я хотел бы построить график на основе данных, созданных внутри pgfplottable
.
У меня есть один файл данных 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{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))}
}
}
\end{frame}
\end{document}
Итак, на основе своих данных я создал еще два столбца данных.
Теперь я хотел бы построить график new по отношению к new2 и подогнать его под этот график.
Кто-нибудь знает, как это сделать?
решение1
Тебе нужно
\begin{tikzpicture}
\begin{axis}
\addplot table [x=new,y=new2] {\loadedtable};
\addplot table[x=new,y={create col/linear regression={y=new2}}] {\loadedtable};
\end{axis}
\end{tikzpicture}
Полный пример:
\documentclass{beamer}
\usepackage{etex}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{epstopdf}
\usepackage{tikz}
\usepackage{circuitikz}
\usepackage{array}
\pgfplotsset{compat=newest}
\usepackage{graphicx}
\usepackage{filecontents}
\begin{filecontents*}{data.dat}
x,y
1,2
2,3
3,4
4,5
5,8
6,9
7,34
\end{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};
\addplot table[x=new,y={create col/linear regression={y=new2}}] {\loadedtable};
\end{axis}
\end{tikzpicture}
\end{frame}
\end{document}