\RRR{75-2 = Concept: Data Points and Data Formats}

\begin{tikzpicture}
\datavisualization [school book axes, visualize as smooth line]
data {
x, y
-1.5, 2.25
-1, 1
-.5, .25
0, 0
.5, .25
1, 1
1.5, 2.25
};
\end{tikzpicture}


\begin{tikzpicture}
\datavisualization [school book axes, visualize as smooth line]
data [format=function] {
var x : interval [-1.5:1.5] samples 7;
func y = \value x*\value x;
};
\end{tikzpicture}


\begin{tikzpicture}
\datavisualization [school book axes, visualize as smooth line]
data [format=function] {
var x : interval [-1.5:1.5] samples 3;
func y = \value x*\value x;
};
\end{tikzpicture}

Section 76 gives an in-depth coverage of the available data formats and explains how new data formats
can be defined.


\RRR{75-3 = Concept: Axes, Ticks, and Grids}


\begin{tikzpicture}
\datavisualization [
scientific axes,
x axis={length=3cm, ticks=few},
visualize as smooth line
]
data [format=function] {
var x : interval [-1.5:1.5] samples 20;
func y = \value x*\value x;
};
\end{tikzpicture}

\begin{tikzpicture}
\datavisualization [
scientific axes=clean,
x axis={length=3cm, ticks=few},
all axes={grid},
visualize as smooth line
]
data [format=function] {
var x : interval [-1.5:1.5] samples 7;
func y = \value x*\value x;
};
\end{tikzpicture}

Section 77 explains in more detail how axes, ticks, and grid lines can be chosen and configured.


\RRR {75-4 = Concept: Visualizers}

\begin{tikzpicture}
\datavisualization [
scientific axes=clean,
x axis={length=3cm, ticks=few},
visualize as smooth line
]
data [format=function] {
var x : interval [-1.5:1.5] samples 7;
func y = \value x*\value x;
};
\end{tikzpicture}

\begin{tikzpicture}
\datavisualization [
scientific axes=clean,
x axis={length=3cm, ticks=few},
visualize as scatter
]
data [format=function] {
var x : interval [-1.5:1.5] samples 7;
func y = \value x*\value x;
};
\end{tikzpicture}

Section 78 provides more information on visualizers as well as reference lists.

\RRR{75-5 = Concept: Style Sheets and Legends }

\begin{tikzpicture}[baseline]
\datavisualization [ scientific axes=clean,
y axis=grid,
visualize as smooth line/.list={sin,cos,tan},
style sheet=strong colors,
style sheet=vary dashing,
sin={label in legend={text=$\sin x$}},
cos={label in legend={text=$\cos x$}},
tan={label in legend={text=$\tan x$}},
data/format=function ]
data [set=sin] {
var x : interval [-0.5*pi:4];
func y = sin(\value x r);
}
data [set=cos] {
var x : interval [-0.5*pi:4];
func y = cos(\value x r);
}
data [set=tan] {
var x : interval [-0.3*pi:.3*pi];
func y = tan(\value x r);
};
\end{tikzpicture}


Section 79 details style sheets and legends.

\RRR{75-6 = Usage}

\subsection{/pgf/data/read from file=filename} (no default, initially empty)

If you set the source attribute to a non-empty hfilenamei, the data will be read from this file. In
this case, no hinline datai may be present, not even empty curly braces should be provided.
%\datavisualization ...
data [read from file=file1.csv]
data [read from file=file2.csv];
The other way round, if read from file is empty, the data must directly follow as hinline datai.
%\datavisualization ...
data {
x, y
1, 2
2, 3
};

The second important key is format, which is used to specify the data format:

\subsection{/pgf/data/format}

Use this key to locally set the format used for parsing the data, see Section 76 for a list of predefined
formats.

\tikz
\datavisualization [school book axes, visualize as line]
data [/data point/x=1] {
y
1
2
}
data [/data point/x=2] {
y
2
0
.5
};

\BS{datavisualization} . . . data point[options] . . . ;

\tikz \datavisualization [school book axes, visualize as line]
data point [x=1, y=1] data point [x=1, y=2]
data point [x=2, y=2] data point [x=2, y=0.5];

/tikz/data visualization/data point=options

\tikzdatavisualizationset{
horizontal/.style={
data point={x=#1, y=1}, data point={x=#1, y=2}},
}
\tikz \datavisualization
[ school book axes, visualize as line,
horizontal=1,
horizontal=2 ];

\BS{datavisualization} . . . data group[options]\AC{name}+=\AC{data specifications} . . . ;


\tikz \datavisualization data group {points} = {
data {
x, y
0, 1
1, 2
2, 2
5, 1
2, 0
1, 1
}
};

\tikz \datavisualization [school book axes, visualize as line] data group {points};
\qquad
\tikz \datavisualization [scientific axes=clean, visualize as line] data group {points};


\BS{datavisualization} . . . scope[options]{data specification} . . . ;

%\datavisualization...
%scope [/data point/experiment=7]
%{
%data [read from file=experiment007-part1.csv]
%data [read from file=experiment007-part2.csv]
%data [read from file=experiment007-part3.csv]
%}
%scope [/data point/experiment=23, format=foo]
%{
%data [read from file=experiment023-part1.foo]
%data [read from file=experiment023-part2.foo]
%};


\BS{datavisualization} . . . info[options]{code} . . . ;

\begin{tikzpicture}[baseline]
\datavisualization [ school book axes, visualize as line ]
data [format=function] {
var x : interval [-0.1*pi:2];
func y = sin(\value x r);
}
info {
\draw [red] (visualization cs: x={(.5*pi)}, y=1) circle [radius=1pt]
node [above,font=\footnotesize] {extremal point};
};
\end{tikzpicture}

\subsection{Coordinate system visualization}

\BS{datavisualization} . . . info’[options]{code} . . . ;

\begin{tikzpicture}[baseline]
\datavisualization [ school book axes, visualize as line ]
data [format=function] {
var x : interval [-0.1*pi:2];
func y = sin(\value x r);
}
info' {
\fill [red] (visualization cs: x={(.5*pi)}, y=1) circle [radius=2mm];
};
\end{tikzpicture}


\subsection{Predefined node data visualization bounding box}
This rectangle node stores a bounding box of the data visualization that is currently being constructed.
This node can be useful inside info commands or when labels need to be added.

\subsection{Predefined node data bounding box}
This rectangle node is similar to data visualization bounding box, but it keeps track only of the actual
data. The spaces needed for grid lines, ticks, axis labels, tick labels, and other all other information
that is not part of the actual data is not part of this box.


\RRR{75-7 = Advanced: Executing User Code During a Data Visualization}

\RRR{75-8 = Advanced: Creating New Objects}


\section{76 Providing Data for a Data Visualization}
