ctioga 1.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. data/COPYING +340 -0
  2. data/ctioga/bin/ctable +28 -0
  3. data/ctioga/bin/ctioga +37 -0
  4. data/ctioga/doc/ctable.1 +156 -0
  5. data/ctioga/doc/ctioga.1 +2363 -0
  6. data/ctioga/examples/README +46 -0
  7. data/ctioga/examples/ctioga.gnuplot +4 -0
  8. data/ctioga/examples/ctioga_within_tioga.rb +53 -0
  9. data/ctioga/examples/ctiogarc.rb +24 -0
  10. data/ctioga/examples/include_1.rb +15 -0
  11. data/ctioga/examples/noise.dat +100 -0
  12. data/ctioga/examples/noise.rb +13 -0
  13. data/ctioga/examples/trig.csv +100 -0
  14. data/ctioga/examples/trig.dat +100 -0
  15. data/ctioga/examples/trig.rb +14 -0
  16. data/ctioga/examples/trigh.dat +100 -0
  17. data/ctioga/examples/trigh.rb +10 -0
  18. data/ctioga/examples/tutorial +763 -0
  19. data/ctioga/examples/tutorial.sh +269 -0
  20. data/ctioga/tests/README +14 -0
  21. data/ctioga/tests/axes.sh +40 -0
  22. data/ctioga/tests/basic.sh +11 -0
  23. data/ctioga/tests/draw.sh +24 -0
  24. data/ctioga/tests/histograms.sh +14 -0
  25. data/ctioga/tests/insets.sh +41 -0
  26. data/ctioga/tests/layouts.sh +29 -0
  27. data/ctioga/tests/legends.sh +113 -0
  28. data/ctioga/tests/styles.sh +43 -0
  29. data/ctioga/tests/test_style.sh +8 -0
  30. data/ctioga/tests/tests.sh +24 -0
  31. data/ctioga/tests/text_backend.sh +83 -0
  32. data/ctioga/tests/tioga_defaults.rb +18 -0
  33. data/lib/CTioga/axes.rb +904 -0
  34. data/lib/CTioga/backends.rb +88 -0
  35. data/lib/CTioga/boundaries.rb +224 -0
  36. data/lib/CTioga/ctable.rb +134 -0
  37. data/lib/CTioga/curve_style.rb +246 -0
  38. data/lib/CTioga/debug.rb +199 -0
  39. data/lib/CTioga/dimension.rb +133 -0
  40. data/lib/CTioga/elements.rb +17 -0
  41. data/lib/CTioga/elements/base.rb +84 -0
  42. data/lib/CTioga/elements/containers.rb +578 -0
  43. data/lib/CTioga/elements/curves.rb +368 -0
  44. data/lib/CTioga/elements/tioga_primitives.rb +440 -0
  45. data/lib/CTioga/layout.rb +595 -0
  46. data/lib/CTioga/legends.rb +29 -0
  47. data/lib/CTioga/legends/cmdline.rb +187 -0
  48. data/lib/CTioga/legends/item.rb +164 -0
  49. data/lib/CTioga/legends/style.rb +257 -0
  50. data/lib/CTioga/log.rb +73 -0
  51. data/lib/CTioga/movingarrays.rb +131 -0
  52. data/lib/CTioga/partition.rb +271 -0
  53. data/lib/CTioga/plot_style.rb +230 -0
  54. data/lib/CTioga/plotmaker.rb +1677 -0
  55. data/lib/CTioga/shortcuts.rb +69 -0
  56. data/lib/CTioga/structures.rb +82 -0
  57. data/lib/CTioga/styles.rb +140 -0
  58. data/lib/CTioga/themes.rb +581 -0
  59. data/lib/CTioga/themes/classical.rb +82 -0
  60. data/lib/CTioga/themes/demo.rb +63 -0
  61. data/lib/CTioga/themes/fits.rb +91 -0
  62. data/lib/CTioga/themes/mono.rb +33 -0
  63. data/lib/CTioga/tioga.rb +32 -0
  64. data/lib/CTioga/utils.rb +173 -0
  65. data/lib/MetaBuilder/Parameters/dates.rb +38 -0
  66. data/lib/MetaBuilder/Parameters/lists.rb +132 -0
  67. data/lib/MetaBuilder/Parameters/numbers.rb +69 -0
  68. data/lib/MetaBuilder/Parameters/strings.rb +86 -0
  69. data/lib/MetaBuilder/Parameters/styles.rb +75 -0
  70. data/lib/MetaBuilder/Qt4/Parameters/dates.rb +51 -0
  71. data/lib/MetaBuilder/Qt4/Parameters/numbers.rb +65 -0
  72. data/lib/MetaBuilder/Qt4/Parameters/strings.rb +106 -0
  73. data/lib/MetaBuilder/Qt4/parameter.rb +172 -0
  74. data/lib/MetaBuilder/Qt4/parameters.rb +9 -0
  75. data/lib/MetaBuilder/descriptions.rb +603 -0
  76. data/lib/MetaBuilder/factory.rb +101 -0
  77. data/lib/MetaBuilder/group.rb +57 -0
  78. data/lib/MetaBuilder/metabuilder.rb +10 -0
  79. data/lib/MetaBuilder/parameter.rb +374 -0
  80. data/lib/MetaBuilder/parameters.rb +11 -0
  81. data/lib/MetaBuilder/qt4.rb +8 -0
  82. data/lib/SciYAG/Backends/backend.rb +379 -0
  83. data/lib/SciYAG/Backends/binner.rb +168 -0
  84. data/lib/SciYAG/Backends/cache.rb +102 -0
  85. data/lib/SciYAG/Backends/dataset.rb +158 -0
  86. data/lib/SciYAG/Backends/descriptions.rb +469 -0
  87. data/lib/SciYAG/Backends/filters.rb +25 -0
  88. data/lib/SciYAG/Backends/filters/average.rb +134 -0
  89. data/lib/SciYAG/Backends/filters/cumulate.rb +37 -0
  90. data/lib/SciYAG/Backends/filters/filter.rb +70 -0
  91. data/lib/SciYAG/Backends/filters/norm.rb +39 -0
  92. data/lib/SciYAG/Backends/filters/smooth.rb +63 -0
  93. data/lib/SciYAG/Backends/filters/sort.rb +43 -0
  94. data/lib/SciYAG/Backends/filters/strip.rb +34 -0
  95. data/lib/SciYAG/Backends/filters/trim.rb +64 -0
  96. data/lib/SciYAG/Backends/gnuplot.rb +131 -0
  97. data/lib/SciYAG/Backends/math.rb +108 -0
  98. data/lib/SciYAG/Backends/mdb.rb +462 -0
  99. data/lib/SciYAG/Backends/multitext.rb +96 -0
  100. data/lib/SciYAG/Backends/source.rb +64 -0
  101. data/lib/SciYAG/Backends/text.rb +339 -0
  102. data/lib/SciYAG/backends.rb +16 -0
  103. metadata +191 -0
@@ -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