summaryrefslogtreecommitdiff
path: root/info/visualtikz/Source/tkzdatavisual.tex
blob: 3de1fdd0afb7c19ae199cf0dbf5c211ea6d33ae5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
\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}