ctioga 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/COPYING +340 -0
- data/ctioga/bin/ctable +28 -0
- data/ctioga/bin/ctioga +37 -0
- data/ctioga/doc/ctable.1 +156 -0
- data/ctioga/doc/ctioga.1 +2363 -0
- data/ctioga/examples/README +46 -0
- data/ctioga/examples/ctioga.gnuplot +4 -0
- data/ctioga/examples/ctioga_within_tioga.rb +53 -0
- data/ctioga/examples/ctiogarc.rb +24 -0
- data/ctioga/examples/include_1.rb +15 -0
- data/ctioga/examples/noise.dat +100 -0
- data/ctioga/examples/noise.rb +13 -0
- data/ctioga/examples/trig.csv +100 -0
- data/ctioga/examples/trig.dat +100 -0
- data/ctioga/examples/trig.rb +14 -0
- data/ctioga/examples/trigh.dat +100 -0
- data/ctioga/examples/trigh.rb +10 -0
- data/ctioga/examples/tutorial +763 -0
- data/ctioga/examples/tutorial.sh +269 -0
- data/ctioga/tests/README +14 -0
- data/ctioga/tests/axes.sh +40 -0
- data/ctioga/tests/basic.sh +11 -0
- data/ctioga/tests/draw.sh +24 -0
- data/ctioga/tests/histograms.sh +14 -0
- data/ctioga/tests/insets.sh +41 -0
- data/ctioga/tests/layouts.sh +29 -0
- data/ctioga/tests/legends.sh +113 -0
- data/ctioga/tests/styles.sh +43 -0
- data/ctioga/tests/test_style.sh +8 -0
- data/ctioga/tests/tests.sh +24 -0
- data/ctioga/tests/text_backend.sh +83 -0
- data/ctioga/tests/tioga_defaults.rb +18 -0
- data/lib/CTioga/axes.rb +904 -0
- data/lib/CTioga/backends.rb +88 -0
- data/lib/CTioga/boundaries.rb +224 -0
- data/lib/CTioga/ctable.rb +134 -0
- data/lib/CTioga/curve_style.rb +246 -0
- data/lib/CTioga/debug.rb +199 -0
- data/lib/CTioga/dimension.rb +133 -0
- data/lib/CTioga/elements.rb +17 -0
- data/lib/CTioga/elements/base.rb +84 -0
- data/lib/CTioga/elements/containers.rb +578 -0
- data/lib/CTioga/elements/curves.rb +368 -0
- data/lib/CTioga/elements/tioga_primitives.rb +440 -0
- data/lib/CTioga/layout.rb +595 -0
- data/lib/CTioga/legends.rb +29 -0
- data/lib/CTioga/legends/cmdline.rb +187 -0
- data/lib/CTioga/legends/item.rb +164 -0
- data/lib/CTioga/legends/style.rb +257 -0
- data/lib/CTioga/log.rb +73 -0
- data/lib/CTioga/movingarrays.rb +131 -0
- data/lib/CTioga/partition.rb +271 -0
- data/lib/CTioga/plot_style.rb +230 -0
- data/lib/CTioga/plotmaker.rb +1677 -0
- data/lib/CTioga/shortcuts.rb +69 -0
- data/lib/CTioga/structures.rb +82 -0
- data/lib/CTioga/styles.rb +140 -0
- data/lib/CTioga/themes.rb +581 -0
- data/lib/CTioga/themes/classical.rb +82 -0
- data/lib/CTioga/themes/demo.rb +63 -0
- data/lib/CTioga/themes/fits.rb +91 -0
- data/lib/CTioga/themes/mono.rb +33 -0
- data/lib/CTioga/tioga.rb +32 -0
- data/lib/CTioga/utils.rb +173 -0
- data/lib/MetaBuilder/Parameters/dates.rb +38 -0
- data/lib/MetaBuilder/Parameters/lists.rb +132 -0
- data/lib/MetaBuilder/Parameters/numbers.rb +69 -0
- data/lib/MetaBuilder/Parameters/strings.rb +86 -0
- data/lib/MetaBuilder/Parameters/styles.rb +75 -0
- data/lib/MetaBuilder/Qt4/Parameters/dates.rb +51 -0
- data/lib/MetaBuilder/Qt4/Parameters/numbers.rb +65 -0
- data/lib/MetaBuilder/Qt4/Parameters/strings.rb +106 -0
- data/lib/MetaBuilder/Qt4/parameter.rb +172 -0
- data/lib/MetaBuilder/Qt4/parameters.rb +9 -0
- data/lib/MetaBuilder/descriptions.rb +603 -0
- data/lib/MetaBuilder/factory.rb +101 -0
- data/lib/MetaBuilder/group.rb +57 -0
- data/lib/MetaBuilder/metabuilder.rb +10 -0
- data/lib/MetaBuilder/parameter.rb +374 -0
- data/lib/MetaBuilder/parameters.rb +11 -0
- data/lib/MetaBuilder/qt4.rb +8 -0
- data/lib/SciYAG/Backends/backend.rb +379 -0
- data/lib/SciYAG/Backends/binner.rb +168 -0
- data/lib/SciYAG/Backends/cache.rb +102 -0
- data/lib/SciYAG/Backends/dataset.rb +158 -0
- data/lib/SciYAG/Backends/descriptions.rb +469 -0
- data/lib/SciYAG/Backends/filters.rb +25 -0
- data/lib/SciYAG/Backends/filters/average.rb +134 -0
- data/lib/SciYAG/Backends/filters/cumulate.rb +37 -0
- data/lib/SciYAG/Backends/filters/filter.rb +70 -0
- data/lib/SciYAG/Backends/filters/norm.rb +39 -0
- data/lib/SciYAG/Backends/filters/smooth.rb +63 -0
- data/lib/SciYAG/Backends/filters/sort.rb +43 -0
- data/lib/SciYAG/Backends/filters/strip.rb +34 -0
- data/lib/SciYAG/Backends/filters/trim.rb +64 -0
- data/lib/SciYAG/Backends/gnuplot.rb +131 -0
- data/lib/SciYAG/Backends/math.rb +108 -0
- data/lib/SciYAG/Backends/mdb.rb +462 -0
- data/lib/SciYAG/Backends/multitext.rb +96 -0
- data/lib/SciYAG/Backends/source.rb +64 -0
- data/lib/SciYAG/Backends/text.rb +339 -0
- data/lib/SciYAG/backends.rb +16 -0
- metadata +191 -0
data/ctioga/doc/ctioga.1
ADDED
|
@@ -0,0 +1,2363 @@
|
|
|
1
|
+
'\" t
|
|
2
|
+
.\" ** The above line should force tbl to be a preprocessor **
|
|
3
|
+
.\" Man page for ctioga, based on the one from man(1)
|
|
4
|
+
.\"
|
|
5
|
+
.\" Copyright 2006, 2007, 2008, 2009 by Vincent Fourmond
|
|
6
|
+
.\"
|
|
7
|
+
.\" You may distribute under the terms of the GNU General Public
|
|
8
|
+
.\" License as specified in the file COPYING that comes with the
|
|
9
|
+
.\" ctioga program.
|
|
10
|
+
.\"
|
|
11
|
+
.pc
|
|
12
|
+
.TH CTIOGA 1 "2009-01-07" "Version 1.9" "Tioga command-line interface"
|
|
13
|
+
.SH NAME
|
|
14
|
+
ctioga \- a command-line front-end for the Tioga plotting library
|
|
15
|
+
.SH SYNOPSIS
|
|
16
|
+
.\" The general command line
|
|
17
|
+
.B ctioga
|
|
18
|
+
.I arguments
|
|
19
|
+
\&.\|.\|.
|
|
20
|
+
|
|
21
|
+
.SH DESCRIPTION
|
|
22
|
+
.B ctioga
|
|
23
|
+
is a command-line front-end to the wonderful Tioga plotting
|
|
24
|
+
library. It aims at plotting quickly both data files and mathematical
|
|
25
|
+
functions, with however the possibility of a high control over the
|
|
26
|
+
details.
|
|
27
|
+
|
|
28
|
+
.SH IMPORTANT NOTE
|
|
29
|
+
Please keep in mind while reading this that the main author of
|
|
30
|
+
.B ctioga
|
|
31
|
+
has more fun programming than writing documentation, which means that
|
|
32
|
+
he is more willing to invest energy into new features of ctioga rather
|
|
33
|
+
than keeping this manual page up-to-date. Best care is taken for
|
|
34
|
+
.B ctioga
|
|
35
|
+
to remain backward-compatible, which means that the information
|
|
36
|
+
you'll find here will most probably never be misleading. However, not
|
|
37
|
+
all the features might be documented at some point. The currently
|
|
38
|
+
implemented features will be found using
|
|
39
|
+
.I ctioga --help\fR.
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
.SH EXAMPLES
|
|
44
|
+
|
|
45
|
+
To get to the facts, let's start with a few examples:
|
|
46
|
+
.TP 8
|
|
47
|
+
.BI ctioga \ File.dat
|
|
48
|
+
Produces a file \fIPlot.pdf\fR showing the second column of File.dat
|
|
49
|
+
as a function of the first.
|
|
50
|
+
|
|
51
|
+
.TP
|
|
52
|
+
.BI ctioga \ File.dat@2:3
|
|
53
|
+
Produces a file \fIPlot.pdf\fR showing the third column of File.dat
|
|
54
|
+
as a function of the second.
|
|
55
|
+
|
|
56
|
+
.TP
|
|
57
|
+
.B ctioga \fIFile.dat@2:3 @4:5 \fR
|
|
58
|
+
Produces a file \fIPlot.pdf\fR showing the third column of File.dat
|
|
59
|
+
as a function of the second and the fifth as a function of the fourth.
|
|
60
|
+
|
|
61
|
+
.TP
|
|
62
|
+
.BI ctioga \ --math\ 'sin(x)'
|
|
63
|
+
Produces a file \fIPlot.pdf\fR showing the function sin(x).
|
|
64
|
+
|
|
65
|
+
.TP
|
|
66
|
+
.BI ctioga \ --xpdf\ --math\ -l\ 'Cosine'\ 'cos(x)'
|
|
67
|
+
Produces a file \fIPlot.pdf\fR showing the function cos(x), nicely
|
|
68
|
+
labeled with the text
|
|
69
|
+
.I 'Cosine'
|
|
70
|
+
and launches
|
|
71
|
+
.I xpdf
|
|
72
|
+
to display the file produced.
|
|
73
|
+
|
|
74
|
+
.P
|
|
75
|
+
|
|
76
|
+
More examples and a rather complete tutorial
|
|
77
|
+
can be found in the
|
|
78
|
+
.I examples/
|
|
79
|
+
directory in the original tarball.
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
.SH OPTIONS
|
|
83
|
+
|
|
84
|
+
ctioga works with the concept of \fIbackends\fR: a \fIbackend\fR is an
|
|
85
|
+
object dealing with the data. Some read data from different kinds of
|
|
86
|
+
files, others, like the
|
|
87
|
+
.I math
|
|
88
|
+
backend create data on demand from mathematical formulas. Backends
|
|
89
|
+
work with data sets. A set is one curve.
|
|
90
|
+
|
|
91
|
+
ctioga's command line is made of of options, starting with '-' or '--',
|
|
92
|
+
mixed with sets (all the rest). Options apply to the sets specified on
|
|
93
|
+
their right; some (like \fI--legend\fR) only to the next one.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
.\" --------------------------------------------------------------------
|
|
97
|
+
.SS Basic style options
|
|
98
|
+
|
|
99
|
+
.TP 8
|
|
100
|
+
.BI -c,\ --[no-]color \ [color]
|
|
101
|
+
specifies the color to be used for lines. It can be set to any valid
|
|
102
|
+
Tioga color, or to
|
|
103
|
+
.I auto
|
|
104
|
+
to use \fIctioga\fR's automatic color scheme (by default). When
|
|
105
|
+
specified as
|
|
106
|
+
.B --no-color
|
|
107
|
+
it disables the display of the lines.
|
|
108
|
+
|
|
109
|
+
.TP
|
|
110
|
+
.BI -m,\ --[no-]marker \ [marker]
|
|
111
|
+
enables or disable the use of markers.
|
|
112
|
+
.I marker
|
|
113
|
+
can be \fIauto\fR, \fIno\fR or a Tioga marker specification. Like with
|
|
114
|
+
.IR --color ,
|
|
115
|
+
.I auto
|
|
116
|
+
makes the markers shift with every data set.
|
|
117
|
+
|
|
118
|
+
.TP
|
|
119
|
+
.BI --marker-color \ color
|
|
120
|
+
exactly the same as
|
|
121
|
+
.I --color
|
|
122
|
+
except that it applies the the marker's color.
|
|
123
|
+
|
|
124
|
+
.TP
|
|
125
|
+
.BI --line-style \ linestyle
|
|
126
|
+
sets the line style. As with previous parameters,
|
|
127
|
+
.I auto
|
|
128
|
+
turns on automatic change, and you can specify any Tioga line
|
|
129
|
+
style. Using
|
|
130
|
+
.I no
|
|
131
|
+
removes completely lines.
|
|
132
|
+
|
|
133
|
+
.TP
|
|
134
|
+
.BI --line-width \ width
|
|
135
|
+
sets the line width. This will be affected by any subsequent
|
|
136
|
+
.IR --rescale .
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
.TP
|
|
140
|
+
.B --[no-]interpolate
|
|
141
|
+
wheter to turn on automatic interpolation for the next curves or
|
|
142
|
+
not. Automatic interpolation just transforms lines between two
|
|
143
|
+
consecutive data points into cubic splines. It looks very good in many
|
|
144
|
+
cases.
|
|
145
|
+
|
|
146
|
+
.TP
|
|
147
|
+
.BI --error-bar-color \ color
|
|
148
|
+
.B ctioga
|
|
149
|
+
version 1.4 has a support for error bars, and this options enables one
|
|
150
|
+
to select their color. See discussion on the
|
|
151
|
+
.I text
|
|
152
|
+
backend below for more details about how to get error bars in the
|
|
153
|
+
first place.
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
.TP
|
|
157
|
+
.BI --drawing-order \ order
|
|
158
|
+
Have you ever wanted to have your markers in a different color and
|
|
159
|
+
.I behind
|
|
160
|
+
the lines ? You can use this option to do so. It takes an integer
|
|
161
|
+
between 0 and 5, and specifies the order in which the lines, the
|
|
162
|
+
markers and the error bars are drawn on the resulting PDF. The last
|
|
163
|
+
will be the most visible in the end. Any invalid argument for
|
|
164
|
+
.I order
|
|
165
|
+
will show which numbers are valid and what they mean.
|
|
166
|
+
|
|
167
|
+
.\" --------------------------------------------------------------------
|
|
168
|
+
.SS Transparency
|
|
169
|
+
|
|
170
|
+
.TP
|
|
171
|
+
.BI --transparency \ transparency
|
|
172
|
+
.TP
|
|
173
|
+
.BI --marker-transparency \ transparency
|
|
174
|
+
.TP
|
|
175
|
+
.BI --error-bar-transparency \ transparency
|
|
176
|
+
Sets the transparency for drawing respectively lines, markers and
|
|
177
|
+
error bars. The transparency is a number
|
|
178
|
+
between 0 and 1, 0 meaning perfectly opaque and 1 absolutely
|
|
179
|
+
invisible.
|
|
180
|
+
|
|
181
|
+
.\" --------------------------------------------------------------------
|
|
182
|
+
.SS Fillings
|
|
183
|
+
|
|
184
|
+
From
|
|
185
|
+
.B ctioga
|
|
186
|
+
version
|
|
187
|
+
.IR 1.5 ,
|
|
188
|
+
it is possible to fill spaces under the curves. You need to specify a
|
|
189
|
+
.I y
|
|
190
|
+
value where the filling will go to. The boundary for that has to be
|
|
191
|
+
a horizontal line. It is specified using the
|
|
192
|
+
.I --fill-type
|
|
193
|
+
option:
|
|
194
|
+
|
|
195
|
+
.TP
|
|
196
|
+
.BI --fill-type \ type
|
|
197
|
+
Sets the fill type for filling next curves. The fill type can be
|
|
198
|
+
.RS 4
|
|
199
|
+
.TP 12
|
|
200
|
+
.I none
|
|
201
|
+
for no filling
|
|
202
|
+
|
|
203
|
+
.TP
|
|
204
|
+
.I y_axis
|
|
205
|
+
to fill until the
|
|
206
|
+
.I y = 0
|
|
207
|
+
line
|
|
208
|
+
|
|
209
|
+
.TP
|
|
210
|
+
.IR bottom ,\ top
|
|
211
|
+
to fill respectively to the bottom or to the top of the current graph
|
|
212
|
+
|
|
213
|
+
.TP
|
|
214
|
+
.I y = val
|
|
215
|
+
to fill until the
|
|
216
|
+
.I y
|
|
217
|
+
value
|
|
218
|
+
.IR val .
|
|
219
|
+
.RE
|
|
220
|
+
|
|
221
|
+
.TP
|
|
222
|
+
.BI --fill-color \ color
|
|
223
|
+
The color for the fill. If specified neither by you nor by the current
|
|
224
|
+
theme, it defaults to the current plotting color.
|
|
225
|
+
|
|
226
|
+
.TP
|
|
227
|
+
.BI --fill-transparency \ trans
|
|
228
|
+
Sets the transparency for fills. I daresay, it looks very cool with a
|
|
229
|
+
transparency of around 0.5.
|
|
230
|
+
|
|
231
|
+
.\" --------------------------------------------------------------------
|
|
232
|
+
.SS Histograms
|
|
233
|
+
|
|
234
|
+
.B ctioga
|
|
235
|
+
version 1.5 brings a much more powerful way to make histograms. Here
|
|
236
|
+
are the functions dealing with that:
|
|
237
|
+
|
|
238
|
+
.TP
|
|
239
|
+
.BI --hist \ type
|
|
240
|
+
All subsequent curves will be histograms. The 'type' of histogram used
|
|
241
|
+
depends on the
|
|
242
|
+
.I type
|
|
243
|
+
argument. It can be
|
|
244
|
+
.IR no \ or \ off
|
|
245
|
+
to stop making histograms,
|
|
246
|
+
.I old-style
|
|
247
|
+
to use the old style histograms: steps without sides. Then, you can
|
|
248
|
+
use the same kind of specification as for the
|
|
249
|
+
.I --fill
|
|
250
|
+
option to specify the level at which the steps should start/stop.
|
|
251
|
+
.B Important:
|
|
252
|
+
please note that if you use something else than
|
|
253
|
+
.I old-style
|
|
254
|
+
for this argument and that you fill the resulting curves, the actual
|
|
255
|
+
argument to
|
|
256
|
+
.I --fill
|
|
257
|
+
will be ignored and will be considered the same as the
|
|
258
|
+
.I type
|
|
259
|
+
one of the
|
|
260
|
+
.I --hist
|
|
261
|
+
option: not taking the same thing always leads to pretty
|
|
262
|
+
disgusting results. However, please note that you need to use
|
|
263
|
+
.I --fill
|
|
264
|
+
with a valid argument to actually get a filled histogram.
|
|
265
|
+
|
|
266
|
+
.TP
|
|
267
|
+
.BI --hist-left \ left
|
|
268
|
+
.TP
|
|
269
|
+
.BI --hist-right \ right
|
|
270
|
+
Set respectively the position of the left or the right side of the
|
|
271
|
+
step relative to its total size. If you want that the steps are
|
|
272
|
+
joined, use respectively 0 and 1. Other values will change the
|
|
273
|
+
apparent width of the steps. Please note that nothing prevents you
|
|
274
|
+
from setting either value outside the [0,1] interval where these
|
|
275
|
+
values make sense. But don't complain if it looks ugly.
|
|
276
|
+
|
|
277
|
+
.TP
|
|
278
|
+
.BI --hist-width \ width
|
|
279
|
+
A convenience interface for the
|
|
280
|
+
.I --hist-left
|
|
281
|
+
and
|
|
282
|
+
.I --hist-right
|
|
283
|
+
options. Basically sets the left and right boundaries so that the
|
|
284
|
+
apparent width of the step is
|
|
285
|
+
.I width
|
|
286
|
+
times its real size and that the results are centered on the interval.
|
|
287
|
+
|
|
288
|
+
.TP
|
|
289
|
+
.B --no-hist
|
|
290
|
+
Stop making histograms.
|
|
291
|
+
|
|
292
|
+
.TP
|
|
293
|
+
.B --[no-]histogram
|
|
294
|
+
This is the old option, here to keep old things working. It is the
|
|
295
|
+
equivalent of either the
|
|
296
|
+
.I --hist old-style
|
|
297
|
+
option or the
|
|
298
|
+
.I --no-hist
|
|
299
|
+
one. Don't use it. Anyway, new histograms look way better !!
|
|
300
|
+
|
|
301
|
+
.\" --------------------------------------------------------------------
|
|
302
|
+
.SS Themes and sets
|
|
303
|
+
|
|
304
|
+
.TP
|
|
305
|
+
.BI --theme \ theme
|
|
306
|
+
chooses the theme. Themes are little pieces of Ruby code that can take
|
|
307
|
+
care of many detail of presentation, to help you focus on the data you
|
|
308
|
+
want to plot, and not on the details about presentation.
|
|
309
|
+
.B ctioga
|
|
310
|
+
will automatically load themes in the
|
|
311
|
+
.I themes/
|
|
312
|
+
subdirectory of your
|
|
313
|
+
.I rubylib/CTioga
|
|
314
|
+
directory, and also on your personal
|
|
315
|
+
.I $HOME/.ctioga/themes
|
|
316
|
+
directory. A good place to start to write your own theme is to take
|
|
317
|
+
the
|
|
318
|
+
.I rubylib/CTioga/themes/demo.rb
|
|
319
|
+
file and tweak it until it suits your needs.
|
|
320
|
+
|
|
321
|
+
.TP
|
|
322
|
+
.BI --theme-list
|
|
323
|
+
lists all the themes
|
|
324
|
+
.B ctioga
|
|
325
|
+
found. If for some reason the theme you wrote doesn't show up here,
|
|
326
|
+
you can give a try at the
|
|
327
|
+
.I --debug
|
|
328
|
+
flag, it should give relevant information about the problem.
|
|
329
|
+
|
|
330
|
+
.TP
|
|
331
|
+
.B --reset-theme
|
|
332
|
+
resets the current theme, which essentially means: select the default
|
|
333
|
+
color/marker sets and reset them.
|
|
334
|
+
|
|
335
|
+
.TP
|
|
336
|
+
.B --mono
|
|
337
|
+
sets up a monochromatic display: color is set to Black and linestyle
|
|
338
|
+
changes with every set. Strictly equivalent to
|
|
339
|
+
.IR --theme\ mono .
|
|
340
|
+
|
|
341
|
+
.TP
|
|
342
|
+
.BI --color-set \ set
|
|
343
|
+
.TP
|
|
344
|
+
.BI --marker-set \ set
|
|
345
|
+
.TP
|
|
346
|
+
.BI --marker-color-set \ set
|
|
347
|
+
.TP
|
|
348
|
+
.BI --line-style-set \ set
|
|
349
|
+
chooses the different color, marker, marker colors and linestyle sets
|
|
350
|
+
available. The only way to get reliable data about available sets is
|
|
351
|
+
to run
|
|
352
|
+
.BI ctioga \ --help\fR,
|
|
353
|
+
which lists them. To know how they look like, just try out dataset
|
|
354
|
+
expansion:
|
|
355
|
+
|
|
356
|
+
.I ctioga --math 'sin(x) + 1##8'
|
|
357
|
+
|
|
358
|
+
Starting from
|
|
359
|
+
.B ctioga
|
|
360
|
+
version 1.8, you can use directly colors, markers and so on for sets,
|
|
361
|
+
and you get a set with only this color/marker/linestyle.
|
|
362
|
+
|
|
363
|
+
.\" --------------------------------------------------------------------
|
|
364
|
+
.SS Style manipulations
|
|
365
|
+
|
|
366
|
+
.TP
|
|
367
|
+
.B --skip-style
|
|
368
|
+
Does not use the next theme style, but skips to the next one.
|
|
369
|
+
|
|
370
|
+
.TP
|
|
371
|
+
.B -s, --same-style
|
|
372
|
+
Apply the same style to the next curve as to the last curve. This
|
|
373
|
+
actually only applies to elements of style deemed that have been
|
|
374
|
+
fed with the
|
|
375
|
+
.I auto
|
|
376
|
+
argument, which is nearly everything by default. Style can be further
|
|
377
|
+
overridden by other style options.
|
|
378
|
+
|
|
379
|
+
.TP
|
|
380
|
+
.BI --save-style \ name
|
|
381
|
+
Saves the style of the last curve under the name
|
|
382
|
+
.IR name .
|
|
383
|
+
|
|
384
|
+
.TP
|
|
385
|
+
.BI --use-style \ name
|
|
386
|
+
Uses a previously saved style for the next curve. Same provisions as
|
|
387
|
+
for
|
|
388
|
+
.I --same-style
|
|
389
|
+
apply. If
|
|
390
|
+
.I name
|
|
391
|
+
has not been saved yet, it is interpreted as the number of the style
|
|
392
|
+
we're interested in. 0 is the first, 1 the second, -1 the last, -2 the
|
|
393
|
+
one just before and so on.
|
|
394
|
+
.I --same-style
|
|
395
|
+
is therefore equivalent to
|
|
396
|
+
.I --use-style -1
|
|
397
|
+
(unless a style with name
|
|
398
|
+
.I -1
|
|
399
|
+
has been saved beforehand).
|
|
400
|
+
|
|
401
|
+
.TP
|
|
402
|
+
.BI --reset-override
|
|
403
|
+
Resets the current style override. See the section CURVE STYLES below
|
|
404
|
+
for a detailed explanation of what are overrides.
|
|
405
|
+
|
|
406
|
+
.TP
|
|
407
|
+
.BI --save-override \ name
|
|
408
|
+
The pendant of the
|
|
409
|
+
.B --save-style
|
|
410
|
+
option, but for overrides only. See CURVE STYLES below.
|
|
411
|
+
|
|
412
|
+
.TP
|
|
413
|
+
.BI --use-override \ name
|
|
414
|
+
Uses a previously saved override. See CURVE STYLES below.
|
|
415
|
+
|
|
416
|
+
.\" --------------------------------------------------------------------
|
|
417
|
+
.SS Shortcuts
|
|
418
|
+
|
|
419
|
+
.TP
|
|
420
|
+
.BI --short \ shortcut
|
|
421
|
+
Uses the given shortcut. Shortcuts are a quick way to add many
|
|
422
|
+
command-line arguments at once. See the SHORTCUTS section below.
|
|
423
|
+
|
|
424
|
+
.TP
|
|
425
|
+
.BI --short-list
|
|
426
|
+
Lists available shortcuts, along with the command-line arguments they
|
|
427
|
+
expand into.
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
.\" --------------------------------------------------------------------
|
|
431
|
+
.SS Edges and axes looks
|
|
432
|
+
|
|
433
|
+
.TP
|
|
434
|
+
.BI --xaxis \ style
|
|
435
|
+
.TP
|
|
436
|
+
.BI --yaxis \ style
|
|
437
|
+
Gives some style informations about the
|
|
438
|
+
.I X
|
|
439
|
+
or
|
|
440
|
+
.I Y
|
|
441
|
+
axes and edges.
|
|
442
|
+
Valid arguments are:
|
|
443
|
+
.IR left , \ right , \ top , \ bottom , \ org
|
|
444
|
+
that place axes only on the corresponding sides (org is the origin)
|
|
445
|
+
with no edges.
|
|
446
|
+
.I both
|
|
447
|
+
sets edges on both sides.
|
|
448
|
+
.IR hidden , \ line , \ ticks , \ major , \ majornum \ and \ full
|
|
449
|
+
which select the style for both edges and axes (hidden, line only,
|
|
450
|
+
line with major and minor ticks, major ticks only, major ticks with
|
|
451
|
+
numeric labels, and major and minor ticks with numeric labels). You
|
|
452
|
+
can specify several items separated by commas.
|
|
453
|
+
|
|
454
|
+
.TP
|
|
455
|
+
.B --no-axes
|
|
456
|
+
Disable all axes and edges for the current plot.
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
.TP
|
|
461
|
+
.BI --lines-color \ axis\ color
|
|
462
|
+
Selects the color for drawing background lines corresponding to the
|
|
463
|
+
named
|
|
464
|
+
.IR axis .
|
|
465
|
+
Lines are starting from major ticks. If you use that with both the X
|
|
466
|
+
and Y axis, you'll have a background grid.
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
.\" --------------------------------------------------------------------
|
|
470
|
+
.SS LaTeX options
|
|
471
|
+
|
|
472
|
+
.TP
|
|
473
|
+
.BI --use \ package
|
|
474
|
+
Adds a
|
|
475
|
+
.BI \eusepackage{ package }
|
|
476
|
+
in the LaTeX preamble of the file. This can be very useful to depend
|
|
477
|
+
on custom style files for fonts or to use standard or personal
|
|
478
|
+
macros.
|
|
479
|
+
|
|
480
|
+
.TP
|
|
481
|
+
.BI --preamble \ string
|
|
482
|
+
Adds the given
|
|
483
|
+
.I string
|
|
484
|
+
on a line of its own inside the LaTeX preamble. This can give
|
|
485
|
+
basically any kind of customization that the
|
|
486
|
+
.I --use
|
|
487
|
+
option cannot. You are however strongly encouraged to use
|
|
488
|
+
.I --use
|
|
489
|
+
whenever it is possible.
|
|
490
|
+
|
|
491
|
+
.\" --------------------------------------------------------------------
|
|
492
|
+
.SS Global appearance
|
|
493
|
+
|
|
494
|
+
.TP
|
|
495
|
+
.BI --[no-]background \ color
|
|
496
|
+
Sets the background color of the current plot, or removes it
|
|
497
|
+
altogether for the current plot.
|
|
498
|
+
|
|
499
|
+
.TP
|
|
500
|
+
.BI --[no-]watermark \ TEXT
|
|
501
|
+
Adds a text watermark at the back of the plot.
|
|
502
|
+
|
|
503
|
+
.TP
|
|
504
|
+
.BI --watermark-color \ COLOR
|
|
505
|
+
Sets the color for the watermark.
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
.TP
|
|
509
|
+
.BI --aspect-ratio \ ratio
|
|
510
|
+
sets the aspect ratio of the plot (the ratio of it's length over it's
|
|
511
|
+
height).
|
|
512
|
+
.I Deprecated, do not use !
|
|
513
|
+
|
|
514
|
+
.TP
|
|
515
|
+
.BI --golden-ratio
|
|
516
|
+
sets the aspect ratio to the golden number. Looks good.
|
|
517
|
+
.I Deprecated, do not use !
|
|
518
|
+
|
|
519
|
+
.TP
|
|
520
|
+
.BI --xrange \ range
|
|
521
|
+
.TP
|
|
522
|
+
.BI --yrange \ range
|
|
523
|
+
sets the current X or Y plotting range; arguments are in the form
|
|
524
|
+
.IB left : right
|
|
525
|
+
where
|
|
526
|
+
.IR left \ or \ right
|
|
527
|
+
can be omitted. If you swap them, the plot will be swapped as
|
|
528
|
+
well.
|
|
529
|
+
.B NOTE:
|
|
530
|
+
these settings are completely uncorrelated with the ones from the
|
|
531
|
+
mathematical backend.
|
|
532
|
+
|
|
533
|
+
.TP
|
|
534
|
+
.BI --margin \ margin
|
|
535
|
+
sets a margin around data when plotting. If your plot has many data
|
|
536
|
+
points near the edge, try something between 0.01 and 0.05. See the
|
|
537
|
+
MARGINS section below for more explanations about how to specify
|
|
538
|
+
margins.
|
|
539
|
+
|
|
540
|
+
.TP
|
|
541
|
+
.BI --rescale \ factor
|
|
542
|
+
scales the current picture by
|
|
543
|
+
.IR factor .
|
|
544
|
+
This is especially useful for subplots and insets, but it can be used
|
|
545
|
+
anywhere.
|
|
546
|
+
|
|
547
|
+
.TP
|
|
548
|
+
.BI --padding \ padding
|
|
549
|
+
Sets the padding for the current object and subsequent ones to
|
|
550
|
+
.IR padding .
|
|
551
|
+
The latter should be in the form of
|
|
552
|
+
.IB left , right , bottom , top
|
|
553
|
+
or
|
|
554
|
+
.IB left , right , bottom and top
|
|
555
|
+
or
|
|
556
|
+
.IB left and right , bottom and top
|
|
557
|
+
or
|
|
558
|
+
.IR all .
|
|
559
|
+
Each of the elements can be a valid (absolute) TeX dimension, such as
|
|
560
|
+
.I 10cm
|
|
561
|
+
or
|
|
562
|
+
.IR 12pt ,
|
|
563
|
+
or a number, in which case the dimension is relative to the current
|
|
564
|
+
graph (but be careful in grids, as it is relative to the
|
|
565
|
+
.I whole
|
|
566
|
+
graph, and not simply to the current element).
|
|
567
|
+
See the section LAYOUT below for an explanation of what is the padding.
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
.\" --------------------------------------------------------------------
|
|
572
|
+
.SS Subplots and assimilated...
|
|
573
|
+
|
|
574
|
+
.TP
|
|
575
|
+
.B --x2\fR,\fB --y2
|
|
576
|
+
Use an alternative
|
|
577
|
+
.I x
|
|
578
|
+
or
|
|
579
|
+
.I y
|
|
580
|
+
axis until the matching
|
|
581
|
+
.I --end
|
|
582
|
+
is encountered. Useful to plot, say, two different data that have
|
|
583
|
+
different Y values but share the same X values.
|
|
584
|
+
|
|
585
|
+
.TP
|
|
586
|
+
.BI --inset \ spec
|
|
587
|
+
Starts an inset at position
|
|
588
|
+
.IR spec .
|
|
589
|
+
See the INSETS section for more details about the exact
|
|
590
|
+
specification. The plot decorations (title, labels) are
|
|
591
|
+
.I outside
|
|
592
|
+
the box specified by
|
|
593
|
+
.IR spec .
|
|
594
|
+
|
|
595
|
+
.TP
|
|
596
|
+
.BI --zoom-inset \ spec
|
|
597
|
+
This is very much like the
|
|
598
|
+
.I --inset
|
|
599
|
+
option, except that the new inset starts with all the curves that
|
|
600
|
+
have already been added to its parent. This is really useful to zoom
|
|
601
|
+
into particular places of the curves, using the
|
|
602
|
+
.I --xrange
|
|
603
|
+
and
|
|
604
|
+
.I --yrange
|
|
605
|
+
options. Legend is not added for the curves duplicated this way.
|
|
606
|
+
|
|
607
|
+
.TP
|
|
608
|
+
.BI --next-inset \ spec
|
|
609
|
+
Leaves the current inset/subplot and starts a new inset at the given
|
|
610
|
+
position. See the INSETS section for more details.
|
|
611
|
+
.B NB:
|
|
612
|
+
you need to
|
|
613
|
+
.I --end
|
|
614
|
+
the current
|
|
615
|
+
.I --x2
|
|
616
|
+
or
|
|
617
|
+
.I --y2
|
|
618
|
+
specification before using that, else you'll get rather unexpected
|
|
619
|
+
results.
|
|
620
|
+
|
|
621
|
+
.TP
|
|
622
|
+
.BI --subplot \ spec
|
|
623
|
+
|
|
624
|
+
.TP
|
|
625
|
+
.BI --next-subplot \ spec
|
|
626
|
+
these two options have the same effet as
|
|
627
|
+
.I --inset
|
|
628
|
+
and
|
|
629
|
+
.IR --next-inset ,
|
|
630
|
+
with the exception that, unlike for insets, the decorations (title,
|
|
631
|
+
labels) are
|
|
632
|
+
.I inside
|
|
633
|
+
the box delimited by
|
|
634
|
+
.IR spec .
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
.TP
|
|
638
|
+
.B --disable-legends
|
|
639
|
+
No legend will be taken into account after this switch for the current
|
|
640
|
+
subplot.
|
|
641
|
+
|
|
642
|
+
.TP
|
|
643
|
+
.B --enable-legends
|
|
644
|
+
Reverts
|
|
645
|
+
.IR --disable-legends .
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
.TP
|
|
649
|
+
.BI --grid \ spec
|
|
650
|
+
Start a grid with a number of column or rows given by
|
|
651
|
+
.IR spec ,
|
|
652
|
+
which can be either
|
|
653
|
+
.BI column= nb
|
|
654
|
+
or
|
|
655
|
+
.BI row= nb\fR.
|
|
656
|
+
You start a new plot by using the
|
|
657
|
+
.I --next
|
|
658
|
+
option.
|
|
659
|
+
|
|
660
|
+
.TP
|
|
661
|
+
.BI --col
|
|
662
|
+
Starts a column of plots sharing the same X range. New plots start
|
|
663
|
+
with
|
|
664
|
+
.IR --next .
|
|
665
|
+
|
|
666
|
+
.TP
|
|
667
|
+
.BR --[no-]auto-next ,\ --auto-next-expanded
|
|
668
|
+
After the use of this option,
|
|
669
|
+
.B ctioga
|
|
670
|
+
considers that there is a
|
|
671
|
+
.I --next
|
|
672
|
+
before every single data set specification on the command-line
|
|
673
|
+
(except the first one). The
|
|
674
|
+
negation permits to cancel this behavior. With
|
|
675
|
+
.IR --auto-next-expanded ,
|
|
676
|
+
.B ctioga
|
|
677
|
+
first performs dataset expansion and places
|
|
678
|
+
.I --next
|
|
679
|
+
before the resulting datasets.
|
|
680
|
+
|
|
681
|
+
|
|
682
|
+
.TP
|
|
683
|
+
.B --region
|
|
684
|
+
Starts a filled region. This is primarily used for filling space
|
|
685
|
+
between curves. See the
|
|
686
|
+
.B FILLED REGIONS
|
|
687
|
+
section below for a more complete explanation.
|
|
688
|
+
|
|
689
|
+
.TP
|
|
690
|
+
.BI --region-color \ color
|
|
691
|
+
Sets the color used for filling the current region.
|
|
692
|
+
|
|
693
|
+
.TP
|
|
694
|
+
.BI --region-transparency \ transparency
|
|
695
|
+
Sets the transparency of the region's fill.
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
.TP
|
|
699
|
+
.BI --region-dont-display
|
|
700
|
+
No curve in the region will be displayed. They will only be used to
|
|
701
|
+
delimit the filled region.
|
|
702
|
+
|
|
703
|
+
.TP
|
|
704
|
+
.BI --region-debug
|
|
705
|
+
Helps understanding how the filling works by tampering with the style
|
|
706
|
+
of the plots inside the region to fill them so as to represent the
|
|
707
|
+
actual clipping path: the filled region will be the one coloured by
|
|
708
|
+
the colors of all the plots.
|
|
709
|
+
|
|
710
|
+
.TP
|
|
711
|
+
.BI --region-invert-rule
|
|
712
|
+
Reverts the rule for delimiting the filling region. See the
|
|
713
|
+
.B FILLED REGIONS
|
|
714
|
+
section below.
|
|
715
|
+
|
|
716
|
+
.TP
|
|
717
|
+
.BI --region-fill-twice
|
|
718
|
+
Fills the region twice, using opposite rules for determining the
|
|
719
|
+
filling region. You really should have a look at the
|
|
720
|
+
.B FILLED REGIONS
|
|
721
|
+
section below to understand that. It will probably give better results
|
|
722
|
+
in the case of intersecting curves.
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
.TP
|
|
726
|
+
.B --end
|
|
727
|
+
Ends the current subplot, grid, inset or region.
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
.\" --------------------------------------------------------------------
|
|
731
|
+
.SS Labels and titles (including tick labels)
|
|
732
|
+
|
|
733
|
+
.TP
|
|
734
|
+
.BI -x,\ --[no-]xlabel \ label
|
|
735
|
+
sets the x axis label of the current plot, or removes it.
|
|
736
|
+
|
|
737
|
+
.TP
|
|
738
|
+
.BI -y,\ --[no-]ylabel \ [label]
|
|
739
|
+
sets the y axis label of the current plot, or removes it.
|
|
740
|
+
|
|
741
|
+
.TP
|
|
742
|
+
.BI -t,\ --[no-]title \ [title]
|
|
743
|
+
sets the title of the current plot, or removes it.
|
|
744
|
+
|
|
745
|
+
.TP
|
|
746
|
+
.BI --side \ what\ align
|
|
747
|
+
.TP
|
|
748
|
+
.BI --lcolor \ what\ color
|
|
749
|
+
.TP
|
|
750
|
+
.BI --position \ what\ where
|
|
751
|
+
.TP
|
|
752
|
+
.BI --angle \ what\ angle
|
|
753
|
+
.TP
|
|
754
|
+
.BI --scale \ what\ scale
|
|
755
|
+
.TP
|
|
756
|
+
.BI --shift \ what\ shift
|
|
757
|
+
.TP
|
|
758
|
+
.BI --align \ what\ align
|
|
759
|
+
.TP
|
|
760
|
+
.BI --just \ what\ just
|
|
761
|
+
Sets respectively the side, color, position, angle, scale, shift,
|
|
762
|
+
alignement or justification of the
|
|
763
|
+
.I what
|
|
764
|
+
label, where
|
|
765
|
+
.I what
|
|
766
|
+
can be either
|
|
767
|
+
.IR title , \ xlabel , \ ylabel , \ xticks \ or \ yticks .
|
|
768
|
+
|
|
769
|
+
Please note that the
|
|
770
|
+
.I color
|
|
771
|
+
attribute is not available for tick labels.
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
.\" --------------------------------------------------------------------
|
|
775
|
+
.SS Legends and texts
|
|
776
|
+
|
|
777
|
+
|
|
778
|
+
.TP
|
|
779
|
+
.BI -l,\ --[no-]legend \ [legend]
|
|
780
|
+
sets the legend of the
|
|
781
|
+
.I next
|
|
782
|
+
dataset, or removes it from the legend display.
|
|
783
|
+
|
|
784
|
+
.TP
|
|
785
|
+
.BI --[no-]auto-legend
|
|
786
|
+
.B ctioga
|
|
787
|
+
automatically provides default legends for plots that don't have
|
|
788
|
+
one. This option allows one to turn this off and back on.
|
|
789
|
+
|
|
790
|
+
.TP
|
|
791
|
+
.B -N\fR,\fB --no-legends
|
|
792
|
+
are shortcuts for
|
|
793
|
+
.IR --no-auto-legend .
|
|
794
|
+
|
|
795
|
+
.TP
|
|
796
|
+
.BI --[no-]separate-legends
|
|
797
|
+
For inclusion of a graph in an article, it is sometimes useful to be
|
|
798
|
+
able to include the legend "pictogram" (the small image next to the
|
|
799
|
+
text) directly from within the article, and not on the graph. With
|
|
800
|
+
this option, automatic legending is turned off, and
|
|
801
|
+
.B ctioga
|
|
802
|
+
produces files of the form
|
|
803
|
+
.IR Plot_legend_00.pdf , \ Plot_legend_01.pdf ,\ aso.
|
|
804
|
+
which contains only the small pictograms. You can then include those
|
|
805
|
+
in your article with the
|
|
806
|
+
.I \eincludegraphics
|
|
807
|
+
command to make your own in-text legend.
|
|
808
|
+
|
|
809
|
+
.TP
|
|
810
|
+
.BI --fontsize \ nb
|
|
811
|
+
Sets the default TeX font size for text. It is passed directly to TeX
|
|
812
|
+
without interpretation, so mistakes in this parameter might result in
|
|
813
|
+
very cryptic error messages.
|
|
814
|
+
|
|
815
|
+
.TP
|
|
816
|
+
.BI --legend-scale \ scale
|
|
817
|
+
Changes the default scale for the legends. This does influence the
|
|
818
|
+
size of the text and the pictograms, and also to some extent the
|
|
819
|
+
positioning of the legends.
|
|
820
|
+
|
|
821
|
+
.TP
|
|
822
|
+
.BI --legend-pos \ spec
|
|
823
|
+
Sets the legend position on one of the side of the plot.
|
|
824
|
+
.I spec
|
|
825
|
+
is in the form
|
|
826
|
+
.IB side , size , delta
|
|
827
|
+
where
|
|
828
|
+
.I side
|
|
829
|
+
is
|
|
830
|
+
.IR left , \ right , \ top , \ bottom ,
|
|
831
|
+
.I size
|
|
832
|
+
is the fraction of the page that will be dedicated to the plot (best
|
|
833
|
+
take it rather smaller than 1...) and
|
|
834
|
+
.IR delta ,
|
|
835
|
+
optional, is the fraction of the page that should be left blank
|
|
836
|
+
between the legend and the plot itself.
|
|
837
|
+
|
|
838
|
+
.TP
|
|
839
|
+
.BI --legend-inside \ spec
|
|
840
|
+
Position te legend inside the plot. The specification
|
|
841
|
+
.I spec
|
|
842
|
+
is the nearly same as for insets, see the INSETS section
|
|
843
|
+
for more information.
|
|
844
|
+
|
|
845
|
+
.TP
|
|
846
|
+
.BI --legend-dy \ dimension
|
|
847
|
+
The distance between two lines of the legend, in terms of the height of
|
|
848
|
+
one text line.
|
|
849
|
+
|
|
850
|
+
.TP
|
|
851
|
+
.BI --legend-line \ text
|
|
852
|
+
Adds a line of text without any pictogram to the legend.
|
|
853
|
+
|
|
854
|
+
|
|
855
|
+
.TP
|
|
856
|
+
.BI --[no-]legend-frame \ [type]
|
|
857
|
+
If
|
|
858
|
+
.I type
|
|
859
|
+
is
|
|
860
|
+
.I round
|
|
861
|
+
or
|
|
862
|
+
.I square\fR,
|
|
863
|
+
draws a (rounded or square) frame around the legends. Best used in
|
|
864
|
+
combination with the
|
|
865
|
+
.I vh:x,y
|
|
866
|
+
.B --legend-inside
|
|
867
|
+
specifications.
|
|
868
|
+
If
|
|
869
|
+
.I none\fR,
|
|
870
|
+
cancels the drawing of the frame.
|
|
871
|
+
|
|
872
|
+
.TP
|
|
873
|
+
.BI --[no-]legend-color \ [color]
|
|
874
|
+
Sets the color of the frame to be drawn when
|
|
875
|
+
.B --legend-frame
|
|
876
|
+
is on, or cancels the drawing of the frame (this way, you can have a
|
|
877
|
+
filled box without a line around).
|
|
878
|
+
|
|
879
|
+
.TP
|
|
880
|
+
.BI --[no-]legend-background \ [color]
|
|
881
|
+
Sets the background color of the legend frame to
|
|
882
|
+
.I color\fR,
|
|
883
|
+
or stops drawing a background for the legend frame. Works only when a
|
|
884
|
+
legend frame is being drawn.
|
|
885
|
+
|
|
886
|
+
.TP
|
|
887
|
+
.BI --[no-]legend-transparency \ [value]
|
|
888
|
+
Sets the transparency value for the background of the legend to
|
|
889
|
+
.I value\fR,
|
|
890
|
+
or make the legend fully opaque.
|
|
891
|
+
|
|
892
|
+
.TP
|
|
893
|
+
.BI --legend-line-width \ value
|
|
894
|
+
Sets the line width for drawing the frame around the legend.
|
|
895
|
+
|
|
896
|
+
.TP
|
|
897
|
+
.BI --legend-line-style \ style
|
|
898
|
+
Sets the line style for drawing the frame around the legend.
|
|
899
|
+
|
|
900
|
+
|
|
901
|
+
.\" --------------------------------------------------------------------
|
|
902
|
+
.SS Axis manipulations
|
|
903
|
+
|
|
904
|
+
.TP
|
|
905
|
+
.BI --xfact \ f ,\ --yfact \ f
|
|
906
|
+
Scales the
|
|
907
|
+
.I x
|
|
908
|
+
or the
|
|
909
|
+
.I y
|
|
910
|
+
values by a factor of
|
|
911
|
+
.IR f .
|
|
912
|
+
This can be useful to change the units in a graph. If say, you have
|
|
913
|
+
.I x
|
|
914
|
+
data expressed in meters, but in the range of nanometers, you can use
|
|
915
|
+
.I --x-fact 1e9
|
|
916
|
+
and use nanometers units...
|
|
917
|
+
|
|
918
|
+
.TP
|
|
919
|
+
.BI --xoffset \ f ,\ --yoffset \ f
|
|
920
|
+
Adds the
|
|
921
|
+
.I f
|
|
922
|
+
to the
|
|
923
|
+
.I x
|
|
924
|
+
or
|
|
925
|
+
.I y
|
|
926
|
+
values. This applies
|
|
927
|
+
.B after
|
|
928
|
+
multiplication by
|
|
929
|
+
.I --xfact
|
|
930
|
+
or
|
|
931
|
+
.IR --yfact ,
|
|
932
|
+
if the latter is applicable. Useful for instance to convert on the fly
|
|
933
|
+
Celsius degrees to kelvins.
|
|
934
|
+
|
|
935
|
+
.TP
|
|
936
|
+
.B --[no-]xlog, --[no-]ylog
|
|
937
|
+
Swicthes on or off the log scale for the axes. These options
|
|
938
|
+
must appear
|
|
939
|
+
.B before
|
|
940
|
+
any data set.
|
|
941
|
+
.B ctioga
|
|
942
|
+
will most probably fail if they don't.
|
|
943
|
+
|
|
944
|
+
.B Note:
|
|
945
|
+
this option has no effect on the sample rate of the
|
|
946
|
+
.I math
|
|
947
|
+
backend. You probably want to use
|
|
948
|
+
.I --math-log
|
|
949
|
+
in addition to this to get a decent output when using the
|
|
950
|
+
.I math
|
|
951
|
+
backend.
|
|
952
|
+
|
|
953
|
+
.TP
|
|
954
|
+
.B --reset-transformations
|
|
955
|
+
Resets all the offset, scales and log options applied so far.
|
|
956
|
+
|
|
957
|
+
.TP
|
|
958
|
+
.BI --comma,\ --decimal\ SEP
|
|
959
|
+
uses
|
|
960
|
+
.I SEP
|
|
961
|
+
as a decimal separator for axis (or a comma for
|
|
962
|
+
.IR --comma ,
|
|
963
|
+
obviously). It is based on LaTeX black magic, so it might fail from
|
|
964
|
+
time to time. Please do report cases when it does.
|
|
965
|
+
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
.\" --------------------------------------------------------------------
|
|
969
|
+
.SS Real size options
|
|
970
|
+
|
|
971
|
+
.TP
|
|
972
|
+
.BI -r,\ --real-size\ size
|
|
973
|
+
Turns on the real size mode for
|
|
974
|
+
.IR ctioga .
|
|
975
|
+
.I size
|
|
976
|
+
should look like
|
|
977
|
+
.IR 10cmx12in .
|
|
978
|
+
The PDF file produced will have exactly the size requested, with the
|
|
979
|
+
plot filling as much as possible. You can include it in your
|
|
980
|
+
documents with the TeX command
|
|
981
|
+
.IR \eincludegraphics .
|
|
982
|
+
|
|
983
|
+
.TP
|
|
984
|
+
.BI --frame-margins\ margin
|
|
985
|
+
With the
|
|
986
|
+
.B --real-size
|
|
987
|
+
option, when the sizes are small, the text around the plot can be
|
|
988
|
+
clipped off the graph. Try to set the
|
|
989
|
+
.I margin
|
|
990
|
+
a bit higher with this parameter (try something like 0.2, and go on
|
|
991
|
+
increasing until you find something decent).
|
|
992
|
+
.B Important note:
|
|
993
|
+
with the new layout mechanism introduced in
|
|
994
|
+
.B ctioga
|
|
995
|
+
version
|
|
996
|
+
.IR 1.6 ,
|
|
997
|
+
it is no longer necessary to use this option, except in the most
|
|
998
|
+
desperate cases. See the section LAYOUT below.
|
|
999
|
+
|
|
1000
|
+
.\" --------------------------------------------------------------------
|
|
1001
|
+
.SS Graphics primitives
|
|
1002
|
+
|
|
1003
|
+
.TP
|
|
1004
|
+
.BI --draw \ spec
|
|
1005
|
+
Adds a graphic primitive to the current graph, using the
|
|
1006
|
+
specification
|
|
1007
|
+
.IR spec .
|
|
1008
|
+
See the
|
|
1009
|
+
.B GRAPHIC PRIMITIVES
|
|
1010
|
+
section below for more details about the specifications.
|
|
1011
|
+
|
|
1012
|
+
.TP
|
|
1013
|
+
.BI --draw-help
|
|
1014
|
+
Lists the graphic primitives currently known to
|
|
1015
|
+
.BR ctioga ,
|
|
1016
|
+
along with the options they currently handle and pointers to the
|
|
1017
|
+
appropriate functions in the
|
|
1018
|
+
.B Tioga
|
|
1019
|
+
documentation. By construction, the output of this function will
|
|
1020
|
+
always be a perfect reflection of the capabilities of
|
|
1021
|
+
.BR ctioga .
|
|
1022
|
+
|
|
1023
|
+
|
|
1024
|
+
|
|
1025
|
+
.\" --------------------------------------------------------------------
|
|
1026
|
+
.SS Backend-related options
|
|
1027
|
+
|
|
1028
|
+
See the sections BACKENDS and FILTERS for more details.
|
|
1029
|
+
|
|
1030
|
+
.TP
|
|
1031
|
+
.BI --text
|
|
1032
|
+
|
|
1033
|
+
.TP
|
|
1034
|
+
.BI --text-skip
|
|
1035
|
+
|
|
1036
|
+
.TP
|
|
1037
|
+
.BI --text-baseline
|
|
1038
|
+
|
|
1039
|
+
.TP
|
|
1040
|
+
.BI --multitext
|
|
1041
|
+
|
|
1042
|
+
.TP
|
|
1043
|
+
.BI --multitext-skip
|
|
1044
|
+
|
|
1045
|
+
.TP
|
|
1046
|
+
.BI --math
|
|
1047
|
+
|
|
1048
|
+
.TP
|
|
1049
|
+
.BI --math-samples \ number
|
|
1050
|
+
|
|
1051
|
+
.TP
|
|
1052
|
+
.BI --math-xrange \ range
|
|
1053
|
+
|
|
1054
|
+
.TP
|
|
1055
|
+
.BI --smooth\ number
|
|
1056
|
+
.TP
|
|
1057
|
+
.BI --sort
|
|
1058
|
+
|
|
1059
|
+
.TP
|
|
1060
|
+
.BI --filter-pop
|
|
1061
|
+
|
|
1062
|
+
.TP
|
|
1063
|
+
.BI --filter-clear
|
|
1064
|
+
|
|
1065
|
+
and more...
|
|
1066
|
+
|
|
1067
|
+
.\" --------------------------------------------------------------------
|
|
1068
|
+
.SS Miscellaneous options
|
|
1069
|
+
|
|
1070
|
+
.TP
|
|
1071
|
+
.BI --xpdf
|
|
1072
|
+
runs
|
|
1073
|
+
.I xpdf
|
|
1074
|
+
on the PDF file produced to see the results.
|
|
1075
|
+
|
|
1076
|
+
.TP
|
|
1077
|
+
.BI --open
|
|
1078
|
+
runs
|
|
1079
|
+
.I open
|
|
1080
|
+
on the PDF file produced to see the results.
|
|
1081
|
+
|
|
1082
|
+
.TP
|
|
1083
|
+
.BI --viewer \ viewer
|
|
1084
|
+
opens the PDF file produced with
|
|
1085
|
+
.IR viewer .
|
|
1086
|
+
|
|
1087
|
+
.TP
|
|
1088
|
+
.BI --no-viewer
|
|
1089
|
+
cancels the opening of the file if requested earlier (such as in a
|
|
1090
|
+
configuration file, see next section).
|
|
1091
|
+
|
|
1092
|
+
.TP
|
|
1093
|
+
.BI --args \ file
|
|
1094
|
+
Reads command-line arguments or options,
|
|
1095
|
+
.B one per line\fR,
|
|
1096
|
+
from
|
|
1097
|
+
.I file\fR.
|
|
1098
|
+
An option and its arguments must be on separated lines. This can be
|
|
1099
|
+
useful to avoid excessive quoting for complex plots
|
|
1100
|
+
|
|
1101
|
+
|
|
1102
|
+
.TP
|
|
1103
|
+
.BI --[no-]cleanup
|
|
1104
|
+
wether or not to remove all files created by the plot apart
|
|
1105
|
+
from the pdf output. This is not a good thing is case you want to
|
|
1106
|
+
include the picture inside a LaTeX file. In the latter case, you might
|
|
1107
|
+
want to prefer the next option.
|
|
1108
|
+
.B Important note:
|
|
1109
|
+
from
|
|
1110
|
+
.B ctioga
|
|
1111
|
+
version 1.5, this option is on by default (I'm fed up to always forget
|
|
1112
|
+
it and clean up manually afterwards).
|
|
1113
|
+
|
|
1114
|
+
.TP
|
|
1115
|
+
.BI --tex-cleanup
|
|
1116
|
+
removes all files produced except the
|
|
1117
|
+
.I _figure.pdf
|
|
1118
|
+
and
|
|
1119
|
+
.I _figure.txt
|
|
1120
|
+
as those ones are used for inclusion in LaTeX documents using the
|
|
1121
|
+
.I \etiogafigure
|
|
1122
|
+
Tioga-provided commands.
|
|
1123
|
+
|
|
1124
|
+
.TP
|
|
1125
|
+
.BI --clean-all
|
|
1126
|
+
removes all files produced, after displaying the PDF file produced (if
|
|
1127
|
+
you did ask to display something).
|
|
1128
|
+
|
|
1129
|
+
.TP
|
|
1130
|
+
.BI --include \ file
|
|
1131
|
+
.I file
|
|
1132
|
+
is read and evaluated as ruby code. See next section for more informations.
|
|
1133
|
+
|
|
1134
|
+
.TP
|
|
1135
|
+
.BI --save-dir \ dir
|
|
1136
|
+
files will be created in the directory
|
|
1137
|
+
.I dir
|
|
1138
|
+
rather than in the current directory.
|
|
1139
|
+
.\"Comes in quite convenient...
|
|
1140
|
+
|
|
1141
|
+
.TP
|
|
1142
|
+
.BI --name \ name
|
|
1143
|
+
the base name for files will be
|
|
1144
|
+
.I name
|
|
1145
|
+
rather than Plot.
|
|
1146
|
+
|
|
1147
|
+
.TP
|
|
1148
|
+
.BI --output \ name
|
|
1149
|
+
Asks
|
|
1150
|
+
.B ctioga
|
|
1151
|
+
to write the figure created up to this flag to the file
|
|
1152
|
+
.I name.pdf
|
|
1153
|
+
just as if you had written
|
|
1154
|
+
.I --name name
|
|
1155
|
+
and stopped the command-line here. Further output is still
|
|
1156
|
+
produced. This can be used to create animations, such as:
|
|
1157
|
+
|
|
1158
|
+
.I ctioga --math 'sin(x)' --output One_sine 'cos(x)' --name Two_sines
|
|
1159
|
+
|
|
1160
|
+
which produces two files:
|
|
1161
|
+
.I One_sine.pdf
|
|
1162
|
+
that contains only the
|
|
1163
|
+
.I 'sin(x)'
|
|
1164
|
+
curve, and
|
|
1165
|
+
.I Two_sines.pdf
|
|
1166
|
+
that contains both
|
|
1167
|
+
.I 'sin(x)'
|
|
1168
|
+
and
|
|
1169
|
+
.I 'cos(x)'
|
|
1170
|
+
curves.
|
|
1171
|
+
|
|
1172
|
+
.TP
|
|
1173
|
+
.BI --display-commandline
|
|
1174
|
+
the command-line used to make the plot is written in black at the
|
|
1175
|
+
bottom of the plot. No care is taken to ensure it doesn't overwrite
|
|
1176
|
+
any existing drawing. It can come in useful when sending image to
|
|
1177
|
+
someone or when one forgets too quickly how to make plots (which is
|
|
1178
|
+
the case of the author of
|
|
1179
|
+
.B ctioga\fR).
|
|
1180
|
+
Now,
|
|
1181
|
+
.B ctioga
|
|
1182
|
+
includes by default the command-line as a comment of the produced PDF
|
|
1183
|
+
file. Tools like
|
|
1184
|
+
.I pdfinfo
|
|
1185
|
+
can be used to retrieve it, see the
|
|
1186
|
+
.B --mark
|
|
1187
|
+
command just below.
|
|
1188
|
+
|
|
1189
|
+
|
|
1190
|
+
.TP
|
|
1191
|
+
.BI --[no-]mark
|
|
1192
|
+
.B ctioga
|
|
1193
|
+
can fill the
|
|
1194
|
+
.I creator
|
|
1195
|
+
meta-information field of the produced PDF file with the
|
|
1196
|
+
command-line. This is a useful feature, as you can use
|
|
1197
|
+
.I pdfinfo(1)
|
|
1198
|
+
to see which command-line was used to produce a given file (it is also
|
|
1199
|
+
displayed in
|
|
1200
|
+
.IR acroread(1) ).
|
|
1201
|
+
However, it can sometimes prove to be painful, as the text is
|
|
1202
|
+
interpreted by TeX and causes funny errors.
|
|
1203
|
+
This is why it is switched off by default. You can turn it on
|
|
1204
|
+
(and back off) with this switch.
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
.TP
|
|
1208
|
+
.B --echo
|
|
1209
|
+
writes the ctioga command-line on standard output. Especially useful
|
|
1210
|
+
for examples found in the
|
|
1211
|
+
.I tests/
|
|
1212
|
+
directory, but you might find uses for that too.
|
|
1213
|
+
|
|
1214
|
+
.TP
|
|
1215
|
+
.BR --quiet ,\ --verbose ,\ --debug
|
|
1216
|
+
These options choose the verbosity level of
|
|
1217
|
+
.B ctioga\fR.
|
|
1218
|
+
With
|
|
1219
|
+
.B --quiet\fR,
|
|
1220
|
+
only errors are reported, while you get increasing amount of messages
|
|
1221
|
+
with
|
|
1222
|
+
.B --verbose
|
|
1223
|
+
which culminates in
|
|
1224
|
+
.B --debug\fR.
|
|
1225
|
+
The latter is so full of information you'll probably never find
|
|
1226
|
+
anything unless you wrote
|
|
1227
|
+
.B ctioga\fR.
|
|
1228
|
+
|
|
1229
|
+
.TP
|
|
1230
|
+
.B --version
|
|
1231
|
+
Writes the version of
|
|
1232
|
+
.B ctioga
|
|
1233
|
+
on standard output and exits.
|
|
1234
|
+
|
|
1235
|
+
.SS Alternative outputs
|
|
1236
|
+
|
|
1237
|
+
.TP
|
|
1238
|
+
.BI --eps
|
|
1239
|
+
With this option,
|
|
1240
|
+
.B ctioga
|
|
1241
|
+
does not call pdflatex, but rather transforms the intermediate PDF
|
|
1242
|
+
file into an EPS file using pdftops (from xpdf) and then calls latex
|
|
1243
|
+
followed by dvips to produce an EPS file. This results essentially in
|
|
1244
|
+
a difference in the type of the fonts used, and can ease the
|
|
1245
|
+
integration of
|
|
1246
|
+
.B ctioga
|
|
1247
|
+
graphs into pure LaTeX document (not generated with pdfLaTeX).
|
|
1248
|
+
|
|
1249
|
+
.TP
|
|
1250
|
+
.BI --png \ width x height
|
|
1251
|
+
Runs
|
|
1252
|
+
.B ctioga
|
|
1253
|
+
as usual, but converts the produced PDF file into a PNG file of size
|
|
1254
|
+
.IB width x height
|
|
1255
|
+
with the convert program from ImageMagick. The PDF file produced is
|
|
1256
|
+
.B not
|
|
1257
|
+
deleted. This option also changes the real size of the graph to match
|
|
1258
|
+
the size of the PNG file produced (on postscript point for one
|
|
1259
|
+
pixel). This can always be changed later on.
|
|
1260
|
+
|
|
1261
|
+
.TP
|
|
1262
|
+
.BI --png-oversampling \ nb
|
|
1263
|
+
The conversion to PNG will use a resolution of
|
|
1264
|
+
.I nb
|
|
1265
|
+
times more pixels in each dimension before rescaling. The higher this
|
|
1266
|
+
number, the better the antialiasing will be. Output is fairly decent
|
|
1267
|
+
with numbers around 2 (the default) to 3. You might need to tweak this
|
|
1268
|
+
option if you use
|
|
1269
|
+
.I --real-size
|
|
1270
|
+
after the
|
|
1271
|
+
.I --png
|
|
1272
|
+
option.
|
|
1273
|
+
|
|
1274
|
+
.TP
|
|
1275
|
+
.BI --svg
|
|
1276
|
+
Runs
|
|
1277
|
+
.B ctioga
|
|
1278
|
+
as usual, and then converts the produced PDF file into a SVG file
|
|
1279
|
+
using
|
|
1280
|
+
.B pdf2svg\fR.
|
|
1281
|
+
|
|
1282
|
+
|
|
1283
|
+
|
|
1284
|
+
.SS Debugging options
|
|
1285
|
+
|
|
1286
|
+
.TP
|
|
1287
|
+
.BI --debug
|
|
1288
|
+
This options enables some debugging output, especially when things
|
|
1289
|
+
don't quite end up as expected. It is more designed for developpers,
|
|
1290
|
+
though. See above, too.
|
|
1291
|
+
|
|
1292
|
+
.TP
|
|
1293
|
+
.B --debug-patterns
|
|
1294
|
+
Produces two more graphes, called
|
|
1295
|
+
.I Test_patterns
|
|
1296
|
+
and
|
|
1297
|
+
.I Test_patterns_right
|
|
1298
|
+
that show if the alignment of the graphes produced by
|
|
1299
|
+
.B ctioga
|
|
1300
|
+
with the given command-line options are correctly aligned. If somehow
|
|
1301
|
+
you find that it is not, you
|
|
1302
|
+
.B should
|
|
1303
|
+
file a bug report (with the full command-line and the PDF files
|
|
1304
|
+
produced).
|
|
1305
|
+
|
|
1306
|
+
.SH "INSETS"
|
|
1307
|
+
|
|
1308
|
+
Starting from release 1.8,
|
|
1309
|
+
.B ctioga
|
|
1310
|
+
provides three ways to specify the position of insets, subplots and
|
|
1311
|
+
inner legends:
|
|
1312
|
+
|
|
1313
|
+
.TP
|
|
1314
|
+
.IB x , y : w[ x h]
|
|
1315
|
+
centers the object at position
|
|
1316
|
+
.IB x , y
|
|
1317
|
+
with a width of
|
|
1318
|
+
.I w
|
|
1319
|
+
and a height of
|
|
1320
|
+
.IR h ,
|
|
1321
|
+
or
|
|
1322
|
+
.I w
|
|
1323
|
+
if
|
|
1324
|
+
.I h
|
|
1325
|
+
was not specified. All values are from 0 to 1, relative to the
|
|
1326
|
+
container.
|
|
1327
|
+
|
|
1328
|
+
.TP
|
|
1329
|
+
.IB x1 , y1 ; x2 , y2
|
|
1330
|
+
places the object with the exact border coordinates given by
|
|
1331
|
+
.IB x1 , y1
|
|
1332
|
+
and
|
|
1333
|
+
.IB x2 , y2\fR.
|
|
1334
|
+
As for the other ways, all positions are between 0 and 1 and relative
|
|
1335
|
+
to the container.
|
|
1336
|
+
|
|
1337
|
+
.TP
|
|
1338
|
+
.IB h x w [+|-] x [+|-] y
|
|
1339
|
+
A X Geometry-like specification. The box will be of height
|
|
1340
|
+
.I h
|
|
1341
|
+
and of width
|
|
1342
|
+
.I w
|
|
1343
|
+
and the point
|
|
1344
|
+
.I x,y
|
|
1345
|
+
is the left (+) or right (-) top (+) or bottom (-) corner of the box.
|
|
1346
|
+
|
|
1347
|
+
.SS Legend box
|
|
1348
|
+
|
|
1349
|
+
The
|
|
1350
|
+
.B --legend-inside
|
|
1351
|
+
can take an inset specification as argument. However, from version
|
|
1352
|
+
.B 1.9\fR,
|
|
1353
|
+
it can also take another form:
|
|
1354
|
+
|
|
1355
|
+
.IB vh : x ,y
|
|
1356
|
+
|
|
1357
|
+
where
|
|
1358
|
+
.I v
|
|
1359
|
+
is the vertical centering (\fIt\fR for top, \fIc\fR for center and
|
|
1360
|
+
\fIb\fR for bottom),
|
|
1361
|
+
.I h
|
|
1362
|
+
is the horizontal centering (\fIl\fR for left, \fIc\fR for center and
|
|
1363
|
+
\fIr\fR for right),
|
|
1364
|
+
and
|
|
1365
|
+
.I x
|
|
1366
|
+
and
|
|
1367
|
+
.I y
|
|
1368
|
+
are the coordinates. For instance
|
|
1369
|
+
|
|
1370
|
+
.I --legend-inside tl:0.5,0.5
|
|
1371
|
+
|
|
1372
|
+
will place the top left of the legends at the exact center of the
|
|
1373
|
+
drawings.
|
|
1374
|
+
|
|
1375
|
+
Starting from
|
|
1376
|
+
.B ctioga
|
|
1377
|
+
version
|
|
1378
|
+
.I 1.10\fR,
|
|
1379
|
+
it is possible to omit altogether the positions. To put the legend in
|
|
1380
|
+
the top left of the graph, simply use:
|
|
1381
|
+
|
|
1382
|
+
.I --legend-inside tl
|
|
1383
|
+
|
|
1384
|
+
|
|
1385
|
+
.SH "LAYOUT"
|
|
1386
|
+
|
|
1387
|
+
Since
|
|
1388
|
+
.B ctioga
|
|
1389
|
+
version 1.6, a relatively complex layout system has been incorporated
|
|
1390
|
+
to the code. The layout is responsible mainly for leaving enough space
|
|
1391
|
+
around plots so you can actually see labels and ticks. As of version
|
|
1392
|
+
1.8, only one parameter of the layout system is accessible: something
|
|
1393
|
+
I call the padding. It represents the
|
|
1394
|
+
.I minimal
|
|
1395
|
+
amount of space that should be left on the sides of a graph. The
|
|
1396
|
+
actual space left may be bigger due to the presence of elements, such
|
|
1397
|
+
as labels. You can control it via the
|
|
1398
|
+
.I --padding
|
|
1399
|
+
option.
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
.SH "CONFIGURATION FILES"
|
|
1403
|
+
|
|
1404
|
+
At startup,
|
|
1405
|
+
.B ctioga
|
|
1406
|
+
looks for a
|
|
1407
|
+
.I .ctiogarc
|
|
1408
|
+
file in the current directory and in the
|
|
1409
|
+
.I $HOME
|
|
1410
|
+
directory. This file is then read and evaluated as ruby code. The
|
|
1411
|
+
functions provided in this file are then made available to the
|
|
1412
|
+
backends. You can use it for two purposes:
|
|
1413
|
+
|
|
1414
|
+
.TP 2
|
|
1415
|
+
.B *
|
|
1416
|
+
define your own functions that can be called by backends such as the
|
|
1417
|
+
.I --math
|
|
1418
|
+
backend.
|
|
1419
|
+
.TP
|
|
1420
|
+
.B *
|
|
1421
|
+
before starting to process the command-line, if a function
|
|
1422
|
+
.I ctioga_defaults
|
|
1423
|
+
is defined, ctioga runs it. It can be used to set default values for
|
|
1424
|
+
.IR ctioga .
|
|
1425
|
+
You are strongly advised to look at the file
|
|
1426
|
+
.I plotmaker.rb
|
|
1427
|
+
to see what you actually can modify. This function is run in the
|
|
1428
|
+
context of the
|
|
1429
|
+
.I PlotMaker
|
|
1430
|
+
instance created.
|
|
1431
|
+
.TP
|
|
1432
|
+
.B *
|
|
1433
|
+
before doing the actual plotting,
|
|
1434
|
+
.B ctioga
|
|
1435
|
+
looks for a function named
|
|
1436
|
+
.I ctioga_init
|
|
1437
|
+
and if it finds it, it calls it passing it the
|
|
1438
|
+
.I FigureMaker
|
|
1439
|
+
object used to make the plots.
|
|
1440
|
+
You can use that function to customize the appearance of the
|
|
1441
|
+
graphes. You will find Tioga's rdoc documentation really useful for
|
|
1442
|
+
doing so.
|
|
1443
|
+
|
|
1444
|
+
.P
|
|
1445
|
+
|
|
1446
|
+
.P
|
|
1447
|
+
The files passed to
|
|
1448
|
+
.B ctioga
|
|
1449
|
+
with the
|
|
1450
|
+
.I --include
|
|
1451
|
+
option are treated exactly the same way, and in the order they are
|
|
1452
|
+
found. From the description above, you can guess that it's pretty
|
|
1453
|
+
useless to have a
|
|
1454
|
+
.I ctioga_defaults
|
|
1455
|
+
in such a file, as it will not be taken into account (although this
|
|
1456
|
+
could be interesting as well).
|
|
1457
|
+
|
|
1458
|
+
.SH GRAPHIC PRIMITIVES
|
|
1459
|
+
|
|
1460
|
+
Starting from ctioga 1.4, it is now possible to add simple graphic
|
|
1461
|
+
elements to a graph, such as text labels, markers and arrows. It is
|
|
1462
|
+
additionally possible to add tangent to the last curve plotted. You
|
|
1463
|
+
should be somewhat familiar with the Tioga documentation to make the
|
|
1464
|
+
best of them, although simple use should be straightforward.
|
|
1465
|
+
|
|
1466
|
+
You use graphic primitives with the
|
|
1467
|
+
.B --draw
|
|
1468
|
+
option. It takes a single argument (a long one), which is further
|
|
1469
|
+
broken into separate words in the same way the shell would do it. This
|
|
1470
|
+
argument must have the following form:
|
|
1471
|
+
|
|
1472
|
+
.IB what :
|
|
1473
|
+
.I mandatory arguments
|
|
1474
|
+
.I option1=thing option2=thing...
|
|
1475
|
+
|
|
1476
|
+
In this,
|
|
1477
|
+
.I what
|
|
1478
|
+
is the graphic primitive that can be used, the mandatory arguments must
|
|
1479
|
+
always be specified; they often are coordinates of meaningful
|
|
1480
|
+
points. Optional arguments follow a
|
|
1481
|
+
.IB key = value
|
|
1482
|
+
syntax, and can be completely omitted. Their name is the same as in
|
|
1483
|
+
the dictionnary in the
|
|
1484
|
+
.I Tioga
|
|
1485
|
+
function. See the
|
|
1486
|
+
.B --draw-help
|
|
1487
|
+
command-line switch for a list of supported keys.
|
|
1488
|
+
|
|
1489
|
+
Points are specified using
|
|
1490
|
+
.IB x , y
|
|
1491
|
+
values. Please note the absence of space between the coordinates.
|
|
1492
|
+
|
|
1493
|
+
.B ctioga
|
|
1494
|
+
understands the following primitives:
|
|
1495
|
+
|
|
1496
|
+
.TP
|
|
1497
|
+
.BI arrow: \ tail\ head
|
|
1498
|
+
Draws an arrow from the point
|
|
1499
|
+
.I tail
|
|
1500
|
+
to the point
|
|
1501
|
+
.I head.
|
|
1502
|
+
|
|
1503
|
+
.TP
|
|
1504
|
+
.BI line: \ tail\ head
|
|
1505
|
+
Same thing as the
|
|
1506
|
+
.B arrow
|
|
1507
|
+
primitive, excepted that arrow heads and tails are disabled by
|
|
1508
|
+
default.
|
|
1509
|
+
|
|
1510
|
+
.TP
|
|
1511
|
+
.BI hrule: \ point\ size
|
|
1512
|
+
Draws a horizontal ruler at the given point of the given size.
|
|
1513
|
+
|
|
1514
|
+
.TP
|
|
1515
|
+
.BI vrule: \ point\ size
|
|
1516
|
+
Draws a vertical ruler at the given point of the given size.
|
|
1517
|
+
|
|
1518
|
+
.TP
|
|
1519
|
+
.BI text: \ point\ text
|
|
1520
|
+
Places a TeX text at the location
|
|
1521
|
+
.IR point .
|
|
1522
|
+
Please note that you need to quote
|
|
1523
|
+
.I text
|
|
1524
|
+
if there are spaces or quotation marks inside.
|
|
1525
|
+
|
|
1526
|
+
.TP
|
|
1527
|
+
.BI marker: \ point\ marker
|
|
1528
|
+
This is the pendant of
|
|
1529
|
+
.I text
|
|
1530
|
+
for markers.
|
|
1531
|
+
|
|
1532
|
+
.TP
|
|
1533
|
+
.BI tangent: \ spec
|
|
1534
|
+
This is not strictly speaking a graphics primitive, but it comes in
|
|
1535
|
+
very handy to place tangents to a curve. See below for the meaning of
|
|
1536
|
+
.IR spec .
|
|
1537
|
+
(not documented yet)
|
|
1538
|
+
|
|
1539
|
+
All these primitives accept additional options. It would be too long
|
|
1540
|
+
to describe them here, but the
|
|
1541
|
+
.I --draw-help
|
|
1542
|
+
option lists them all and gives pointers to the function in the
|
|
1543
|
+
.B Tioga
|
|
1544
|
+
documentation where you will find documentation about them.
|
|
1545
|
+
|
|
1546
|
+
.P
|
|
1547
|
+
For example, to place a piece of text at the origin, use
|
|
1548
|
+
|
|
1549
|
+
\" The following 'escape sequence' is pretty ugly, but it turned
|
|
1550
|
+
\" out to be the only one that works...
|
|
1551
|
+
|
|
1552
|
+
.I --draw 'text: 0,0 \fI"Some text" '
|
|
1553
|
+
|
|
1554
|
+
Note the quotes within quotes around
|
|
1555
|
+
.IR Some\ text .
|
|
1556
|
+
To do the same, but text tilting 45 degree from
|
|
1557
|
+
horizontal and with a nice (!) pink color, this would do:
|
|
1558
|
+
|
|
1559
|
+
.I --draw 'text: 0,0 \fI"Some text" angle=45 color=Pink'
|
|
1560
|
+
|
|
1561
|
+
\" .SS Tangents
|
|
1562
|
+
|
|
1563
|
+
\" A tangent to a curve is essentially an arrow with a direction given by
|
|
1564
|
+
\" the slope of the curve at a given point, and 'centered' around this
|
|
1565
|
+
\" point. To specify this point, you have several ways:
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
.SH CURVE STYLES
|
|
1569
|
+
|
|
1570
|
+
.B ctioga
|
|
1571
|
+
has a pretty advanced mechanism for choosing a style for a
|
|
1572
|
+
curve. This mechanism has been designed to provide maximum flexibility
|
|
1573
|
+
while keeping the command-line to its minimal.
|
|
1574
|
+
Styles are the result of the interaction of two elements
|
|
1575
|
+
|
|
1576
|
+
.TP 2
|
|
1577
|
+
.B *
|
|
1578
|
+
the theme, which is providing a base for the style of a curve
|
|
1579
|
+
|
|
1580
|
+
.TP
|
|
1581
|
+
.B *
|
|
1582
|
+
the override, that is any style-related options that have been passed
|
|
1583
|
+
on the command-line.
|
|
1584
|
+
|
|
1585
|
+
.P
|
|
1586
|
+
|
|
1587
|
+
When
|
|
1588
|
+
.B ctioga
|
|
1589
|
+
needs to know the style of the next curve, it first asks the
|
|
1590
|
+
.B theme
|
|
1591
|
+
to provide one. Usually, the styles provided by the themes will change
|
|
1592
|
+
at every curve. Then, the style is modified taking the override into
|
|
1593
|
+
account. A
|
|
1594
|
+
.I --color Red
|
|
1595
|
+
command-line option sets the
|
|
1596
|
+
.I color
|
|
1597
|
+
override to
|
|
1598
|
+
.IR Red ,
|
|
1599
|
+
which means that every single curve after that, until the override is
|
|
1600
|
+
changed, will be red.
|
|
1601
|
+
|
|
1602
|
+
A
|
|
1603
|
+
.I --color auto
|
|
1604
|
+
option removes the override for
|
|
1605
|
+
.IR color ,
|
|
1606
|
+
so that the actual color used is the theme's one.
|
|
1607
|
+
|
|
1608
|
+
The default override is to set the
|
|
1609
|
+
.I markers
|
|
1610
|
+
to
|
|
1611
|
+
.IR no ,
|
|
1612
|
+
so that by default no markers are present. The use of
|
|
1613
|
+
.I --reset-override
|
|
1614
|
+
restores the default override (which would remove markers...).
|
|
1615
|
+
|
|
1616
|
+
Finally, the
|
|
1617
|
+
.I --save-style
|
|
1618
|
+
option saves the style effectively used for the last curve. The
|
|
1619
|
+
.I --use-style
|
|
1620
|
+
option prevents
|
|
1621
|
+
.B ctioga
|
|
1622
|
+
from asking the theme to provide a base style, but rather uses the
|
|
1623
|
+
saved style as if the theme had provided it.
|
|
1624
|
+
|
|
1625
|
+
.SH SHORTCUTS
|
|
1626
|
+
|
|
1627
|
+
Starting from
|
|
1628
|
+
.B ctioga
|
|
1629
|
+
1.7, it is possible to use shortcuts on the command-line. Shortcuts
|
|
1630
|
+
are used with the
|
|
1631
|
+
.I --short
|
|
1632
|
+
option and expand into a series of command-line arguments. For
|
|
1633
|
+
instance,
|
|
1634
|
+
.I --short cloud
|
|
1635
|
+
expands into
|
|
1636
|
+
.I --marker auto --marker-scale 0.2 --line-style no\fR,
|
|
1637
|
+
which is very convenient to make dot clouds. You can list available
|
|
1638
|
+
shortcuts along with what they expand to with the
|
|
1639
|
+
.I --short-list
|
|
1640
|
+
option. You can define shortcuts in your
|
|
1641
|
+
.I ~/.ctiogarc
|
|
1642
|
+
file with something in the spirit of
|
|
1643
|
+
|
|
1644
|
+
.I Shortcut.new('pink', '--color', 'Pink', '--marker-color', 'Pink')
|
|
1645
|
+
|
|
1646
|
+
This line defines a
|
|
1647
|
+
.I pink
|
|
1648
|
+
shortcut that expands to
|
|
1649
|
+
.I --color Pink --marker-color Pink\fR.
|
|
1650
|
+
You use it simply by passing the
|
|
1651
|
+
.I --short pink
|
|
1652
|
+
option to
|
|
1653
|
+
.B ctioga\fR.
|
|
1654
|
+
Better, if it does not conflict with existing options, you can use it
|
|
1655
|
+
directly as
|
|
1656
|
+
.I --pink\fR.
|
|
1657
|
+
|
|
1658
|
+
|
|
1659
|
+
passing
|
|
1660
|
+
Be sure to separate all arguments (which you would separate with
|
|
1661
|
+
spaces on the command-line) with
|
|
1662
|
+
.IR commas ,
|
|
1663
|
+
and to enclose them in single or double quotes.
|
|
1664
|
+
Failing to do so will most likely result in
|
|
1665
|
+
.B ctioga
|
|
1666
|
+
complaining about unknown options.
|
|
1667
|
+
|
|
1668
|
+
|
|
1669
|
+
You can make sure
|
|
1670
|
+
.B ctioga
|
|
1671
|
+
sees these definitions with the
|
|
1672
|
+
.I --short-list
|
|
1673
|
+
option. If they don't show up there, you might have either a
|
|
1674
|
+
compilation problem in you
|
|
1675
|
+
.I ~/.ctiogarc
|
|
1676
|
+
file, or you simply didn't really write it there...
|
|
1677
|
+
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
|
|
1681
|
+
.SH MARGIN SPECIFICATION
|
|
1682
|
+
|
|
1683
|
+
Several options accept a specification for margins. You need to
|
|
1684
|
+
remember that Tioga, and hence ctioga counts margins as a fraction of
|
|
1685
|
+
the total relevant length from the given side. So, if the right margin
|
|
1686
|
+
is at
|
|
1687
|
+
.IR 0.2 ,
|
|
1688
|
+
it means that it will take the right
|
|
1689
|
+
.I 20%
|
|
1690
|
+
of the image. The specification is
|
|
1691
|
+
|
|
1692
|
+
.I left,right,top,bottom
|
|
1693
|
+
|
|
1694
|
+
where each of the component is a number between 0 and 1. All distances
|
|
1695
|
+
are always relative to the direct container: margins for the whole
|
|
1696
|
+
plot are relative to the size of the whole plot.
|
|
1697
|
+
|
|
1698
|
+
.SH FILLED REGIONS
|
|
1699
|
+
|
|
1700
|
+
With the
|
|
1701
|
+
.I --region
|
|
1702
|
+
option, you start a filled region, which means that all subsequent
|
|
1703
|
+
plots until the next
|
|
1704
|
+
.I --end
|
|
1705
|
+
option will serve, in addition to be displayed normally, as a way to
|
|
1706
|
+
delimit the region where the fill will occur, according to the
|
|
1707
|
+
following simple rule: every odd plot will be closed by a line at the
|
|
1708
|
+
top of the figure, every even one by a line at the bottom. The
|
|
1709
|
+
resulting path will be used as a clipping path for the region. To
|
|
1710
|
+
understand which region will be filled, imagine that every curve is
|
|
1711
|
+
filled in the normal way to the top or the bottom of the plot. The
|
|
1712
|
+
colored region will be the one filled by all curves. The
|
|
1713
|
+
.I --region-debug
|
|
1714
|
+
does precisely this and can be of a really great help to understand
|
|
1715
|
+
what is actually happening.
|
|
1716
|
+
|
|
1717
|
+
If the
|
|
1718
|
+
.I --region-invert-rule
|
|
1719
|
+
option is in order, the above rule gets reversed: every odd plot is
|
|
1720
|
+
closed to the bottom and every even one to the top.
|
|
1721
|
+
With the
|
|
1722
|
+
.I --region-fill-twice
|
|
1723
|
+
option, the region is filled twice, once with each rule.
|
|
1724
|
+
|
|
1725
|
+
To make simple things simple, if you just want to be filling the space
|
|
1726
|
+
between two non-intersecting curves, just put the lower one firs or
|
|
1727
|
+
use
|
|
1728
|
+
.I --region-invert-rule
|
|
1729
|
+
if you don't want that.
|
|
1730
|
+
For relatively simple intersecting curves, you might want to try
|
|
1731
|
+
.IR --region-fill-twice ,
|
|
1732
|
+
as it tends to do what one wants (in my humble opinion).
|
|
1733
|
+
|
|
1734
|
+
For more complex stuff, you can use the
|
|
1735
|
+
.I --region-dont-display
|
|
1736
|
+
to specify complex shapes and clip them. You can use multiple
|
|
1737
|
+
.I --region
|
|
1738
|
+
to get the desired effect.
|
|
1739
|
+
|
|
1740
|
+
|
|
1741
|
+
.SH "ENVIRONMENT VARIABLE"
|
|
1742
|
+
|
|
1743
|
+
If a
|
|
1744
|
+
.B CTIOGA
|
|
1745
|
+
environement variable is found, it is taken as a part of the command
|
|
1746
|
+
line, with some differences however:
|
|
1747
|
+
|
|
1748
|
+
.TP 2
|
|
1749
|
+
.B *
|
|
1750
|
+
it is parsed before the command line;
|
|
1751
|
+
|
|
1752
|
+
.TP
|
|
1753
|
+
.B *
|
|
1754
|
+
if a
|
|
1755
|
+
.BI --include \ file
|
|
1756
|
+
option is present, the
|
|
1757
|
+
.IR file 's
|
|
1758
|
+
.I ctioga_defaults
|
|
1759
|
+
function will be taken into account;
|
|
1760
|
+
|
|
1761
|
+
.TP
|
|
1762
|
+
.B *
|
|
1763
|
+
it's contents don't show up in the
|
|
1764
|
+
.B --display-commandline
|
|
1765
|
+
display.
|
|
1766
|
+
|
|
1767
|
+
.SH BACKENDS
|
|
1768
|
+
|
|
1769
|
+
.B ctioga
|
|
1770
|
+
is based on the concept of
|
|
1771
|
+
.IR Backends .
|
|
1772
|
+
Backends are classes that deal with acquiring the data. This can mean
|
|
1773
|
+
generate the data on the fly (like what the
|
|
1774
|
+
.I math
|
|
1775
|
+
backend does), reading it from a text file (the
|
|
1776
|
+
.IR text )
|
|
1777
|
+
backend or from binary files or databases (backends yet to be
|
|
1778
|
+
written). For some backends, you can provide additional information
|
|
1779
|
+
with command-line switches. For some, a given set of command-line
|
|
1780
|
+
switches are necessary for good operation (not applicable yet).
|
|
1781
|
+
|
|
1782
|
+
\" .P
|
|
1783
|
+
|
|
1784
|
+
\" We will detail each available backend separately.
|
|
1785
|
+
|
|
1786
|
+
.SS Set expansion
|
|
1787
|
+
|
|
1788
|
+
Most of the backends come with a feature called
|
|
1789
|
+
.I set expansion
|
|
1790
|
+
: it is possible to compactly transform a single set specification
|
|
1791
|
+
into several different data sets. For instance,
|
|
1792
|
+
.I file@1:2##4
|
|
1793
|
+
is transformed into
|
|
1794
|
+
.I file@1:2 file@1:3 file@1:4\fR.
|
|
1795
|
+
|
|
1796
|
+
There are three patterns recognised by most of the backends:
|
|
1797
|
+
|
|
1798
|
+
.TP
|
|
1799
|
+
.IB n ## m
|
|
1800
|
+
where
|
|
1801
|
+
.I n
|
|
1802
|
+
and
|
|
1803
|
+
.I m
|
|
1804
|
+
are numbers, is expanded into all the numbers from
|
|
1805
|
+
.I n
|
|
1806
|
+
to
|
|
1807
|
+
.I m
|
|
1808
|
+
included.
|
|
1809
|
+
|
|
1810
|
+
.TP
|
|
1811
|
+
.BI #< n < code > m >
|
|
1812
|
+
is expanded into the Ruby code
|
|
1813
|
+
.I code
|
|
1814
|
+
with variable
|
|
1815
|
+
.B i
|
|
1816
|
+
ranging from
|
|
1817
|
+
.I n
|
|
1818
|
+
to
|
|
1819
|
+
.IR m .
|
|
1820
|
+
The value the block is returning is replaced
|
|
1821
|
+
in the set specification. This way,
|
|
1822
|
+
.I #<1<i**2>4>
|
|
1823
|
+
expands into
|
|
1824
|
+
.I 1 4 9 16\fR.
|
|
1825
|
+
Please note the absence of spaces around
|
|
1826
|
+
.I n
|
|
1827
|
+
and
|
|
1828
|
+
.IR m .
|
|
1829
|
+
|
|
1830
|
+
.TP
|
|
1831
|
+
.BI #< var = n < code > m >
|
|
1832
|
+
Although it looks very much like the previous one, this one is much
|
|
1833
|
+
easier to work with: the previous expands to a block of Ruby code,
|
|
1834
|
+
which means that you're likely to get into compilation errors. This
|
|
1835
|
+
way, however, expands the
|
|
1836
|
+
.B string
|
|
1837
|
+
.IR code ,
|
|
1838
|
+
replacing any occurence of the variable named
|
|
1839
|
+
.I var
|
|
1840
|
+
by an integer value from
|
|
1841
|
+
.I n
|
|
1842
|
+
to
|
|
1843
|
+
.IR m .
|
|
1844
|
+
Contrary to the previous expressions, you can put arbitrary spaces.
|
|
1845
|
+
|
|
1846
|
+
|
|
1847
|
+
.P
|
|
1848
|
+
The second and third expansions, though in appearance very similar,
|
|
1849
|
+
have completely different applications.
|
|
1850
|
+
|
|
1851
|
+
.P
|
|
1852
|
+
The second,
|
|
1853
|
+
.BI #< var = n < code > m >\fR,
|
|
1854
|
+
works with a real Ruby expression that must return a
|
|
1855
|
+
.I String
|
|
1856
|
+
object, or something that can be cast to a String, such as a number.
|
|
1857
|
+
This expansion can be used for instance to plot every second column of
|
|
1858
|
+
a file, using the following specification:
|
|
1859
|
+
|
|
1860
|
+
.I ctioga file.dat@'1:#<2<i*2>6>'
|
|
1861
|
+
|
|
1862
|
+
.B ctioga
|
|
1863
|
+
will expand that to the value of the expression
|
|
1864
|
+
.I i*2
|
|
1865
|
+
with
|
|
1866
|
+
.I i
|
|
1867
|
+
ranging from 2 to 6. What we obtain is:
|
|
1868
|
+
|
|
1869
|
+
.I ctioga file.dat@'1:4' file.dat@'1:6' ... file.dat@'1:12'
|
|
1870
|
+
|
|
1871
|
+
The second expansion is well adapted to dirty tricks about data
|
|
1872
|
+
files. In principle, it is the most powerful expansion, as you get
|
|
1873
|
+
full ruby interpretation. But it can be delicate, as you need to think
|
|
1874
|
+
in terms of Ruby expressions.
|
|
1875
|
+
|
|
1876
|
+
.P
|
|
1877
|
+
On the other hand, in the third,
|
|
1878
|
+
.BI #< var = n < code > m >
|
|
1879
|
+
you define a variable whose name will be replaced by all the numbers
|
|
1880
|
+
from
|
|
1881
|
+
.I n
|
|
1882
|
+
to \fIm\fR. In particular, we can't try the same trick as above: using
|
|
1883
|
+
|
|
1884
|
+
|
|
1885
|
+
.I ctioga file.dat@'1:#<n=2<n*2>6>'
|
|
1886
|
+
|
|
1887
|
+
will result in
|
|
1888
|
+
.B ctioga
|
|
1889
|
+
expanding that into:
|
|
1890
|
+
|
|
1891
|
+
.I ctioga file.dat@'1:2*2' file.dat@'1:3*2' ... file.dat@'1:6*2'
|
|
1892
|
+
|
|
1893
|
+
which is completely different than above. On the other hand, this
|
|
1894
|
+
expansion is much more suited to change a parameter that must appear
|
|
1895
|
+
in several places in the expansion, such as the followin:
|
|
1896
|
+
|
|
1897
|
+
.I ctioga --math '#<n = 2< sin(n*x)/n>10>'
|
|
1898
|
+
|
|
1899
|
+
which plots
|
|
1900
|
+
.I sin(n*x)/n
|
|
1901
|
+
for all
|
|
1902
|
+
.I n
|
|
1903
|
+
values from 2 to 10.
|
|
1904
|
+
|
|
1905
|
+
That is possible to do with the second expansion, but it is way
|
|
1906
|
+
heavier:
|
|
1907
|
+
|
|
1908
|
+
.I ctioga --math '#<2<"sin(#{i}*x)/#{i}">10>'
|
|
1909
|
+
|
|
1910
|
+
Note that the quotes are necessary, as we want to get a ruby string,
|
|
1911
|
+
and not the result of the computation of
|
|
1912
|
+
.I sin(i*x)/i\fR,
|
|
1913
|
+
which will most likely result in a Ruby error, because it does not
|
|
1914
|
+
know about any
|
|
1915
|
+
.IR x .
|
|
1916
|
+
|
|
1917
|
+
|
|
1918
|
+
.SS The text backend
|
|
1919
|
+
|
|
1920
|
+
Select it with the option
|
|
1921
|
+
.IR --text .
|
|
1922
|
+
It accepts four options:
|
|
1923
|
+
|
|
1924
|
+
.TP
|
|
1925
|
+
.BI --text-skip \ number
|
|
1926
|
+
when reading subsequent files, the file
|
|
1927
|
+
.I number
|
|
1928
|
+
lines of the file are skipped.
|
|
1929
|
+
|
|
1930
|
+
.TP
|
|
1931
|
+
.BI --text-baseline \ set
|
|
1932
|
+
this specifies that
|
|
1933
|
+
.I set
|
|
1934
|
+
should act as a baseline for every subsequent set. That is, the Y
|
|
1935
|
+
values of this set will be substracted to every single subsequent
|
|
1936
|
+
set. Use
|
|
1937
|
+
.I no
|
|
1938
|
+
to cancel baseline.
|
|
1939
|
+
|
|
1940
|
+
.TP
|
|
1941
|
+
.BI --text-col \ spec
|
|
1942
|
+
which column specification to use in case no one is specified. No
|
|
1943
|
+
expansion is performed here.
|
|
1944
|
+
|
|
1945
|
+
.TP
|
|
1946
|
+
.BI --text-separator \ regexp
|
|
1947
|
+
a Ruby regular expression that designates the column separator.
|
|
1948
|
+
For instance, for CSV files, you could use
|
|
1949
|
+
.I ,
|
|
1950
|
+
or
|
|
1951
|
+
.I ;
|
|
1952
|
+
or, even better
|
|
1953
|
+
.IR "'/[,;]/'" .
|
|
1954
|
+
|
|
1955
|
+
|
|
1956
|
+
.P
|
|
1957
|
+
|
|
1958
|
+
It reads text files in a simple
|
|
1959
|
+
format (numbers separated with spaces) and seperates them in
|
|
1960
|
+
columns. The first column in the file is 1, and so on. You can access
|
|
1961
|
+
to the index of the line with the column number 0 (like in
|
|
1962
|
+
.IR gnuplot ).
|
|
1963
|
+
|
|
1964
|
+
The general syntax of a data set is
|
|
1965
|
+
.IB file @ x_col : y_col
|
|
1966
|
+
with the following meaning:
|
|
1967
|
+
|
|
1968
|
+
.TP 4
|
|
1969
|
+
.I file
|
|
1970
|
+
is the name of the file where the data is. If it is omitted, the last
|
|
1971
|
+
file opened by the backend is used.
|
|
1972
|
+
|
|
1973
|
+
.TP
|
|
1974
|
+
.IB x_col : y_col
|
|
1975
|
+
are column specifications. If they are simple numbers, the
|
|
1976
|
+
corresponding columns are used:
|
|
1977
|
+
.I 3:1
|
|
1978
|
+
asks to plot the first column as a function of the third.
|
|
1979
|
+
On the contrary if they contain at least one \fI$\fR
|
|
1980
|
+
sign, then they are interpreted as a function of the columns, where
|
|
1981
|
+
.I $n
|
|
1982
|
+
represents the nth column:
|
|
1983
|
+
.I $2**2:$1*$3
|
|
1984
|
+
asks to plot the product of column 1 and 3 as a function of the square
|
|
1985
|
+
of the second. Arbitrary expressions can be used, as well as functions
|
|
1986
|
+
defined in configuration or included files. Please note that in the
|
|
1987
|
+
latter case you will most probably need to quote the arguments with
|
|
1988
|
+
.I single quotes
|
|
1989
|
+
to prevent the shell from tampering with your arguments.
|
|
1990
|
+
|
|
1991
|
+
.P
|
|
1992
|
+
If the
|
|
1993
|
+
.BI @ x_col : y_col
|
|
1994
|
+
is omitted, then it defaults to
|
|
1995
|
+
.IR \fB@\fI1\fB:\fI2 ,
|
|
1996
|
+
or the the value given to the
|
|
1997
|
+
.B --text-col
|
|
1998
|
+
option if the latter was specified before.
|
|
1999
|
+
|
|
2000
|
+
.P
|
|
2001
|
+
The text backend supports an extansion to the set expansion mechanism
|
|
2002
|
+
described earlier, in that you can ommit the trailing number in
|
|
2003
|
+
a
|
|
2004
|
+
.I n##m
|
|
2005
|
+
specification. In this case, the last digit is taken to be the number of
|
|
2006
|
+
the last column in the file. If
|
|
2007
|
+
.I file.dat
|
|
2008
|
+
has 4 columns,
|
|
2009
|
+
.I file.dat@1:2##
|
|
2010
|
+
is exactly equivalent to
|
|
2011
|
+
.IR file.dat@1:2##4 .
|
|
2012
|
+
|
|
2013
|
+
Starting from
|
|
2014
|
+
.B ctioga
|
|
2015
|
+
version 1.4, the text bacjend supports error bars. You do it using
|
|
2016
|
+
extra column specifications, such as in the following:
|
|
2017
|
+
|
|
2018
|
+
.IB file.dat : 1 : 2 : xeabs=3 : yeabs=4
|
|
2019
|
+
|
|
2020
|
+
This column specification means that column
|
|
2021
|
+
.I 3
|
|
2022
|
+
will be taken as absolute errors on the
|
|
2023
|
+
.I x
|
|
2024
|
+
values
|
|
2025
|
+
and column
|
|
2026
|
+
.I 4
|
|
2027
|
+
as the absolute error on the
|
|
2028
|
+
.I y
|
|
2029
|
+
values, both of the being symmetric: for
|
|
2030
|
+
.IR y ,
|
|
2031
|
+
for instance, you get the value in the column
|
|
2032
|
+
.I 2
|
|
2033
|
+
plus or minus the one in column
|
|
2034
|
+
.I 4
|
|
2035
|
+
as an error bar.
|
|
2036
|
+
|
|
2037
|
+
Quite a few different specifiers are available in place of
|
|
2038
|
+
.I xeabs
|
|
2039
|
+
and
|
|
2040
|
+
.IR yeabs .
|
|
2041
|
+
For instance, for
|
|
2042
|
+
.I x
|
|
2043
|
+
error bars:
|
|
2044
|
+
|
|
2045
|
+
.TP
|
|
2046
|
+
.I xeabs
|
|
2047
|
+
specifies an absolute symmetric error
|
|
2048
|
+
|
|
2049
|
+
.TP
|
|
2050
|
+
.I xeup
|
|
2051
|
+
specifies the absolute error above the
|
|
2052
|
+
.I x
|
|
2053
|
+
values.
|
|
2054
|
+
|
|
2055
|
+
.TP
|
|
2056
|
+
.I xedown
|
|
2057
|
+
the absolute error below the
|
|
2058
|
+
.I x
|
|
2059
|
+
values.
|
|
2060
|
+
|
|
2061
|
+
.TP
|
|
2062
|
+
.I xerel
|
|
2063
|
+
plays the same role as
|
|
2064
|
+
.I xeabs
|
|
2065
|
+
but for relative values (expressed in fractions of the corresponding
|
|
2066
|
+
value).
|
|
2067
|
+
|
|
2068
|
+
.TP
|
|
2069
|
+
.IR xerdown \ and \ xerup
|
|
2070
|
+
are the equivalent of
|
|
2071
|
+
.I xeup
|
|
2072
|
+
and
|
|
2073
|
+
.I xedown
|
|
2074
|
+
for relative values.
|
|
2075
|
+
|
|
2076
|
+
|
|
2077
|
+
.TP
|
|
2078
|
+
.I xmin
|
|
2079
|
+
and
|
|
2080
|
+
.I xmax
|
|
2081
|
+
directly specify the position of the left and right position of the
|
|
2082
|
+
error bar.
|
|
2083
|
+
|
|
2084
|
+
.P
|
|
2085
|
+
|
|
2086
|
+
The
|
|
2087
|
+
.I yeabs
|
|
2088
|
+
and so on are the pendant of the
|
|
2089
|
+
.I xeabs
|
|
2090
|
+
for the
|
|
2091
|
+
.I y
|
|
2092
|
+
values. Specifications can be abbreviated to the smallest unambiguous
|
|
2093
|
+
possibilities.
|
|
2094
|
+
|
|
2095
|
+
.TP
|
|
2096
|
+
.B --[no-]text-split
|
|
2097
|
+
|
|
2098
|
+
Starting from version
|
|
2099
|
+
.B 1.9\fR,
|
|
2100
|
+
at the request of
|
|
2101
|
+
.I Ivars Finvers\fR,
|
|
2102
|
+
it is possible to separate a text file into subsets at blank lines, a
|
|
2103
|
+
bit like what gnuplot is doing. Subsets can be reached using a syntax
|
|
2104
|
+
in the spirit of
|
|
2105
|
+
|
|
2106
|
+
.I ctioga --text-split file.dat#12
|
|
2107
|
+
|
|
2108
|
+
that shows the 12th subset of
|
|
2109
|
+
.I file.dat\fR.
|
|
2110
|
+
|
|
2111
|
+
|
|
2112
|
+
|
|
2113
|
+
.SS The multitext backend
|
|
2114
|
+
|
|
2115
|
+
Select it with the option
|
|
2116
|
+
.IR --multitext .
|
|
2117
|
+
It recognizes the option
|
|
2118
|
+
.I --multitext-skip
|
|
2119
|
+
which is the equivalent of
|
|
2120
|
+
.IR --text-skip .
|
|
2121
|
+
It exists to provide the ability of plotting columns from different data
|
|
2122
|
+
files and works similarly to the
|
|
2123
|
+
.I --text
|
|
2124
|
+
backend with a stricter syntax:
|
|
2125
|
+
|
|
2126
|
+
.IB [file1@x_col] : [file2@y_col]
|
|
2127
|
+
|
|
2128
|
+
Nothing can be ommited, especially not the square braces. Nevertheless, it can
|
|
2129
|
+
handle arbitrarily complicated mathematical expression such as
|
|
2130
|
+
|
|
2131
|
+
.IB [file1@x_col1]-[file2@x_col2] : [file3@y_col1]/[file4@y_col2]
|
|
2132
|
+
|
|
2133
|
+
Note that the files should all have the same number of lines and that you
|
|
2134
|
+
should avoid for example division by 0.
|
|
2135
|
+
You will also need to quote the arguments to avoid shell expansion.
|
|
2136
|
+
|
|
2137
|
+
The expansion mechanism explained in the
|
|
2138
|
+
.I text
|
|
2139
|
+
backend also works, with the exception that the last column has to be specified.
|
|
2140
|
+
|
|
2141
|
+
.SS The math backend
|
|
2142
|
+
|
|
2143
|
+
Select it with the option
|
|
2144
|
+
.IR --math .
|
|
2145
|
+
It accepts two options
|
|
2146
|
+
|
|
2147
|
+
.TP 10
|
|
2148
|
+
.BI --math-xrange \ range
|
|
2149
|
+
specifies the range over which to plot, in the form
|
|
2150
|
+
.IB xmin : xmax
|
|
2151
|
+
|
|
2152
|
+
.TP
|
|
2153
|
+
.BI --math-samples \ number
|
|
2154
|
+
the number of points used for the computation. They are distributed
|
|
2155
|
+
homogeneously in the range.
|
|
2156
|
+
|
|
2157
|
+
.TP
|
|
2158
|
+
.B --[no-]math-log
|
|
2159
|
+
with this option, the samples are spaced logarithmically instead of
|
|
2160
|
+
linealy. Good in combination with
|
|
2161
|
+
.IR --xlog .
|
|
2162
|
+
|
|
2163
|
+
|
|
2164
|
+
.P
|
|
2165
|
+
You can use arbitrary functions of
|
|
2166
|
+
.I x
|
|
2167
|
+
with this backend, such as
|
|
2168
|
+
.IR sin(x) , \ x**2\ +\ 2*x , \ etc ...
|
|
2169
|
+
You will probably need to quote the arguments to prevent shell
|
|
2170
|
+
expansion.
|
|
2171
|
+
|
|
2172
|
+
|
|
2173
|
+
|
|
2174
|
+
.SS The gnuplot backend
|
|
2175
|
+
|
|
2176
|
+
This backend is an attempt to use files that make plots with
|
|
2177
|
+
.BR gnuplot .
|
|
2178
|
+
In particular, it can be really useful to write a series of
|
|
2179
|
+
functions and fits using gnuplot, profiting from its abilities while
|
|
2180
|
+
benefitting from
|
|
2181
|
+
.BR ctioga 's
|
|
2182
|
+
better-looking output.
|
|
2183
|
+
|
|
2184
|
+
In short, this backend sends the file to
|
|
2185
|
+
.B gnuplot
|
|
2186
|
+
and intercept its output with the
|
|
2187
|
+
.I table
|
|
2188
|
+
terminal.
|
|
2189
|
+
You should not have to modify the original file to use with
|
|
2190
|
+
.BR ctioga ,
|
|
2191
|
+
but that might fail some times (please file a bug report then).
|
|
2192
|
+
|
|
2193
|
+
.B Note :
|
|
2194
|
+
this is just a backend, and in its way it will only provide
|
|
2195
|
+
.B ctioga
|
|
2196
|
+
with
|
|
2197
|
+
.BR data .
|
|
2198
|
+
In particular,
|
|
2199
|
+
.B all formatting options in the gnuplot file are lost
|
|
2200
|
+
!
|
|
2201
|
+
|
|
2202
|
+
You select it with the
|
|
2203
|
+
.I --gnuplot
|
|
2204
|
+
option.
|
|
2205
|
+
|
|
2206
|
+
Options:
|
|
2207
|
+
|
|
2208
|
+
.TP
|
|
2209
|
+
.BI --gnuplot-range \ range
|
|
2210
|
+
overrides range specification for plots from the file
|
|
2211
|
+
|
|
2212
|
+
.TP
|
|
2213
|
+
.BI --gnuplot-vars \ vars
|
|
2214
|
+
a colon-separated list of variables that will override the ones from
|
|
2215
|
+
the file.
|
|
2216
|
+
|
|
2217
|
+
|
|
2218
|
+
|
|
2219
|
+
|
|
2220
|
+
For the examples, we'll use the following
|
|
2221
|
+
.I ctioga.gnuplot
|
|
2222
|
+
file:
|
|
2223
|
+
|
|
2224
|
+
.I set term postscript
|
|
2225
|
+
.I a = 10
|
|
2226
|
+
.I b = 4
|
|
2227
|
+
.I plot [2:12] x**2 - a*x + b
|
|
2228
|
+
|
|
2229
|
+
It can be found in the
|
|
2230
|
+
.I examples/
|
|
2231
|
+
directory in the source tarball. Try this:
|
|
2232
|
+
|
|
2233
|
+
|
|
2234
|
+
.I ctioga --gnuplot ctioga.gnuplot
|
|
2235
|
+
|
|
2236
|
+
.I ctioga --gnuplot --gnuplot-range -2:2 ctioga.gnuplot
|
|
2237
|
+
|
|
2238
|
+
.I ctioga --gnuplot ctioga.gnuplot --gnuplot-vars 'a=11; b=3' ctioga.gnuplot
|
|
2239
|
+
|
|
2240
|
+
|
|
2241
|
+
.SH FILTERS
|
|
2242
|
+
|
|
2243
|
+
Each backend can have as many filters as you wish. They are applied in
|
|
2244
|
+
the order with which they come on the command-line. You can view it as
|
|
2245
|
+
a stack where the bottom filters are applied first, and new filters go
|
|
2246
|
+
on top.
|
|
2247
|
+
.I Each backend has its own stack.
|
|
2248
|
+
|
|
2249
|
+
|
|
2250
|
+
.TP
|
|
2251
|
+
.B --filter-pop
|
|
2252
|
+
Pops the last filter pushed onto the current backend's stack.
|
|
2253
|
+
|
|
2254
|
+
.TP
|
|
2255
|
+
.B --filter-clear
|
|
2256
|
+
Clears all filters of the current backend.
|
|
2257
|
+
|
|
2258
|
+
.TP
|
|
2259
|
+
.BI --smooth\ number
|
|
2260
|
+
Applies a gaussian-like convolution filter of size
|
|
2261
|
+
.I number
|
|
2262
|
+
onto the data. For better results,
|
|
2263
|
+
.I number
|
|
2264
|
+
should be odd to have a clear middle for the convolution kernel.
|
|
2265
|
+
|
|
2266
|
+
.TP
|
|
2267
|
+
.B --sort
|
|
2268
|
+
Sorts the X data.
|
|
2269
|
+
|
|
2270
|
+
|
|
2271
|
+
.TP
|
|
2272
|
+
.BI --trim \ number
|
|
2273
|
+
Keeps only one point every
|
|
2274
|
+
.I number
|
|
2275
|
+
in the data. Useful to reduce PDF size and displaying time for curves
|
|
2276
|
+
with wild oversampling.
|
|
2277
|
+
|
|
2278
|
+
.TP
|
|
2279
|
+
.B --norm
|
|
2280
|
+
Normalizes the input data so that the maximum absolute value is 1. It
|
|
2281
|
+
does not change its sign.
|
|
2282
|
+
|
|
2283
|
+
.TP
|
|
2284
|
+
.B --cumulate
|
|
2285
|
+
Sums all points as they are read. Do not mistake this for integration.
|
|
2286
|
+
|
|
2287
|
+
.TP
|
|
2288
|
+
.B --strip
|
|
2289
|
+
Strips all points that are not NaN, mostly useful with
|
|
2290
|
+
.B ctable
|
|
2291
|
+
(1).
|
|
2292
|
+
|
|
2293
|
+
.TP
|
|
2294
|
+
.B --avgdup
|
|
2295
|
+
Averages all Y values of the same X value. Sorts data at the same
|
|
2296
|
+
time.
|
|
2297
|
+
|
|
2298
|
+
.TP
|
|
2299
|
+
.B --stddev
|
|
2300
|
+
Averages successive Y values with the same X value, and set error bars
|
|
2301
|
+
to reflect standard deviation around the average. Dead useful.
|
|
2302
|
+
|
|
2303
|
+
|
|
2304
|
+
.SH AUTHOR
|
|
2305
|
+
|
|
2306
|
+
.B ctioga
|
|
2307
|
+
was written by Vincent Fourmond with the help of Jean-Julien Fleck.
|
|
2308
|
+
.B Tioga
|
|
2309
|
+
was written by Bill Paxton.
|
|
2310
|
+
|
|
2311
|
+
.SH BUGS
|
|
2312
|
+
|
|
2313
|
+
.B ctioga
|
|
2314
|
+
is most certainly not bug-free. You can use the facility at
|
|
2315
|
+
.B rubyforge.org
|
|
2316
|
+
to report any bug you notice:
|
|
2317
|
+
.IR http://rubyforge.org/tracker/?func=add&group_id=1477&atid=5773 .
|
|
2318
|
+
You can also use the same facility for feature requests.
|
|
2319
|
+
|
|
2320
|
+
.SH "IMPORTANT NOTE"
|
|
2321
|
+
|
|
2322
|
+
The development of
|
|
2323
|
+
.B ctioga
|
|
2324
|
+
as such has ended. Further development is going on on a complete
|
|
2325
|
+
rewrite of the engine, called
|
|
2326
|
+
.B ctioga2\fR.
|
|
2327
|
+
More information can be found at the
|
|
2328
|
+
.B ctioga2
|
|
2329
|
+
website:
|
|
2330
|
+
.IR http://ctioga2.rubyforge.org .
|
|
2331
|
+
|
|
2332
|
+
.SH "SEE ALSO"
|
|
2333
|
+
|
|
2334
|
+
.BR xpdf (1),
|
|
2335
|
+
.BR pdflatex (1),
|
|
2336
|
+
.BR open (1),
|
|
2337
|
+
.BR gnuplot (1)
|
|
2338
|
+
|
|
2339
|
+
The original tarball includes an
|
|
2340
|
+
.I examples/
|
|
2341
|
+
directory where you will find some data files, some commented examples
|
|
2342
|
+
of configuration files and most importantly a tutorial along with a
|
|
2343
|
+
.I tutorial.sh
|
|
2344
|
+
shell script demonstrating the commands used in the tutorial.
|
|
2345
|
+
|
|
2346
|
+
It also includes a
|
|
2347
|
+
.I tests/
|
|
2348
|
+
directory containing test shell scripts. Runnning these shell scripts
|
|
2349
|
+
should give you a decent idea of
|
|
2350
|
+
.BR ctioga 's
|
|
2351
|
+
possibilities while assuring that it did install properly.
|
|
2352
|
+
|
|
2353
|
+
Useful documentation, including an illustrated version of the
|
|
2354
|
+
tutorial and instructions on bug reporting, can be found on
|
|
2355
|
+
.BR ctioga 's
|
|
2356
|
+
website, at
|
|
2357
|
+
.IR http://sciyag.rubyforge.org/ctioga .
|
|
2358
|
+
|
|
2359
|
+
More information about
|
|
2360
|
+
.B Tioga
|
|
2361
|
+
and its rdoc documentation
|
|
2362
|
+
can be found at
|
|
2363
|
+
.I http://www.kitp.ucsb.edu/~paxton/tioga.html
|