DOKK / manpages / debian 10 / ctioga2 / ctioga2.1.en
CTIOGA2(1) Command-line interface for Tioga CTIOGA2(1)

ctioga2 - a command-line front-end for the Tioga plotting library

ctioga2 arguments ...

ctioga2 is a command-line front-end to the wonderful Tioga plotting library. It aims at plotting quickly both data files and mathematical functions, with however the possibility of a high control over the details.

The main feature that was introduced compared to the old ctioga is that it is now possible to use command files for ctioga2: every single command-line option corresponds to a command, whose name is written. Just give the command the same arguments as to the command-line option. To read a command file, feed it to the -f command-line option.

Here are a few examples, both from command-line and using the corresponding files.

Produces a file Plot.pdf showing the second column of File.dat as a function of the first.

The corresponding command file would be:


#!/usr/bin/env ctioga2 -f
plot(File.dat)

Plots

Use the current backend to load the given datasets onto the data stack and plot them. It is a combination of the load and the plot-last commands; you might want to see their documentation.

Optional arguments: as bypass-transforms class clipped color color-map contour-conrec contour-minor-number contour-minor-scale contour-minor-style contour-number depth error-bar-color error-bar-line-width fill fill-color fill-pattern fill-transparency id ignore_hooks legend line-cap line-style line-width marker marker-angle marker-color marker-color-map marker-fill-color marker-fill-color-map marker-line-color marker-line-color-map marker-line-width marker-min-scale marker-scale name path-style region-side split-on-nan where xaxis yaxis zaxis
Corresponding command: plot(dataset,option=...)

Plots the last dataset pushed onto the data stack (or the one specified with the which option), with the current style. All aspects of the curve style (colors, markers, line styles...) can be overridden through the use of options.

Optional arguments: class clipped color color-map contour-conrec contour-minor-number contour-minor-scale contour-minor-style contour-number depth error-bar-color error-bar-line-width fill fill-color fill-pattern fill-transparency id legend line-cap line-style line-width marker marker-angle marker-color marker-color-map marker-fill-color marker-fill-color-map marker-line-color marker-line-color-map marker-line-width marker-min-scale marker-scale path-style region-side split-on-nan which xaxis yaxis zaxis
Corresponding command: plot-last(,option=...)

Set stylistic details of curves or other object drawn from data

--[no-]clipped
Sets the clipped for subsequent curves, until cancelled with auto as argument.

Corresponding command: clipped(boolean-or-auto)

Sets the line color for subsequent curves, until cancelled with auto as argument.

Corresponding command: color(color-or-false-or-auto)

Sets the color map for the subsequent curves, until cancelled by an auto argument.

Color maps are used for 3D plots, ie under the effet of contour, xyz-map and xy-parametric.

Corresponding command: color-map(colormap-or-auto)

--color-set COLOR-OR-FALSE-SET
Chooses a set for the line color of subsequent curves. Also sets color to auto, so that the set takes effect immediately

Corresponding command: color-set(color-or-false-set)

--[no-]contour-conrec
If on, the subsequent curves will use the CONREC algorithm for contouring. In the opposite case, the contouring algorithm of Gri is used.

Only useful when contour is in effect.

Corresponding command: contour-conrec(boolean-or-auto)

Sets the number of minor level lines between major ones (approx) for subsequent curves, until cancelled with auto as argument.

Corresponding command: contour-minor-number(integer-or-auto)

Sets the relative scale of minor level lines for subsequent curves, until cancelled with auto as argument.

Corresponding command: contour-minor-scale(float-or-auto)

Sets the minor ticks line style for subsequent curves, until cancelled with auto as argument.

Corresponding command: contour-minor-style(line-style-or-auto)

Sets the overall number of level lines for subsequent curves, until cancelled with auto as argument.

Corresponding command: contour-number(integer-or-auto)

Sets the depth for subsequent curves, until cancelled with auto as argument.

Corresponding command: depth(integer-or-auto)

Sets the error bar color for subsequent curves, until cancelled with auto as argument.

Corresponding command: error-bar-color(color-or-false-or-auto)

Chooses a set for the error bar color of subsequent curves. Also sets error-bar-color to auto, so that the set takes effect immediately

Corresponding command: error-bar-color-set(color-or-false-set)

Sets the error bar line width for subsequent curves, until cancelled with auto as argument.

Corresponding command: error-bar-line-width(float-or-auto)

Chooses a set for the error bar line width of subsequent curves. Also sets error-bar-line-width to auto, so that the set takes effect immediately

Corresponding command: error-bar-line-width-set(float-set)

Sets the Fill until for subsequent curves, until cancelled with auto as argument.

Corresponding command: fill(fill-until-or-auto)

Sets the fill color for subsequent curves, until cancelled with auto as argument.

Corresponding command: fill-color(color-or-auto)

Chooses a set for the fill color of subsequent curves. Also sets fill-color to auto, so that the set takes effect immediately

Corresponding command: fill-color-set(color-set)

--fill-pattern FILL-PATTERN-OR-AUTO
Sets the fill pattern for subsequent curves, until cancelled with auto as argument.

Corresponding command: fill-pattern(fill-pattern-or-auto)

Chooses a set for the Fill until of subsequent curves. Also sets fill to auto, so that the set takes effect immediately

Corresponding command: fill-set(fill-until-set)

Sets the fill transparency for subsequent curves, until cancelled with auto as argument.

Corresponding command: fill-transparency(float-or-auto)

Chooses a set for the fill transparency of subsequent curves. Also sets fill-transparency to auto, so that the set takes effect immediately

Corresponding command: fill-transparency-set(float-set)

--line-cap LINE-CAP-OR-AUTO
Sets the line cap for subsequent curves, until cancelled with auto as argument.

Corresponding command: line-cap(line-cap-or-auto)

--line-style LINE-STYLE-OR-AUTO
Sets the line style for subsequent curves, until cancelled with auto as argument.

Corresponding command: line-style(line-style-or-auto)

--line-style-set LINE-STYLE-SET
Chooses a set for the line style of subsequent curves. Also sets line-style to auto, so that the set takes effect immediately

Corresponding command: line-style-set(line-style-set)

Sets the line width for subsequent curves, until cancelled with auto as argument.

Corresponding command: line-width(float-or-auto)

Chooses a set for the line width of subsequent curves. Also sets line-width to auto, so that the set takes effect immediately

Corresponding command: line-width-set(float-set)

Sets the marker for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker(marker-or-auto)

Sets the marker angle for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-angle(float-or-auto)

Sets the marker color for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-color(color-or-false-or-auto)

Sets the color map for markers for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-color-map(colormap-or-auto)

Chooses a set for the marker color of subsequent curves. Also sets marker-color to auto, so that the set takes effect immediately

Corresponding command: marker-color-set(color-or-false-set)

Sets the marker fill color for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-fill-color(color-or-false-or-auto)

Sets the color map for the lines of markers for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-fill-color-map(colormap-or-auto)

Chooses a set for the marker fill color of subsequent curves. Also sets marker-fill-color to auto, so that the set takes effect immediately

Corresponding command: marker-fill-color-set(color-or-false-set)

Sets the marker stroke color for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-line-color(color-or-false-or-auto)

Sets the color map for the lines of markers for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-line-color-map(colormap-or-auto)

Chooses a set for the marker stroke color of subsequent curves. Also sets marker-line-color to auto, so that the set takes effect immediately

Corresponding command: marker-line-color-set(color-or-false-set)

Sets the marker line width for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-line-width(float-or-auto)

Sets the marker scale for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-min-scale(float-or-false-or-auto)

Sets the marker scale for subsequent curves, until cancelled with auto as argument.

Corresponding command: marker-scale(float-or-auto)

Chooses a set for the marker scale of subsequent curves. Also sets marker-scale to auto, so that the set takes effect immediately

Corresponding command: marker-scale-set(float-set)

--marker-set MARKER-SET
Chooses a set for the marker of subsequent curves. Also sets marker to auto, so that the set takes effect immediately

Corresponding command: marker-set(marker-set)

Sets the path style for subsequent curves, until cancelled with auto as argument.

Corresponding command: path-style(text-or-auto)

Chooses a set for the path style of subsequent curves. Also sets path-style to auto, so that the set takes effect immediately

Corresponding command: path-style-set(text-set)

--region-side REGION-SIDE-OR-AUTO
Sets the region side for subsequent curves, until cancelled with auto as argument.

Corresponding command: region-side(region-side-or-auto)

--region-side-set REGION-SIDE-SET
Chooses a set for the region side of subsequent curves. Also sets region-side to auto, so that the set takes effect immediately

Corresponding command: region-side-set(region-side-set)

After using this command, the next curve will have the same style as the curve whose name was given as the first argument (it is the name given to the `/id=` option to plot.

Corresponding command: reuse-style(object)

This command acts as if one (or number) dataset had been drawn with respect to the style of the next dataset to be drawn.

Optional arguments: number
Corresponding command: skip(,option=...)

--[no-]split-on-nan
In general, the NaN (not a number, ie invalid data points in the dataset) in a dataset are silently ignored. When this option is on, the lines of xy-plot-style plots are split upon encountering a NaN.

Corresponding command: split-on-nan(boolean-or-auto)

Sets the name of the zaxis for the subsequent curves. This must be an axis that has been previously created using new-zaxis.

This axis will be used to display the colormaps of the following curve.

Corresponding command: zaxis(text-or-auto)

Commands to specify legends and tweak their look.

--[no-]auto-legend
When this option is in effect (off by default), all datasets get a legend, their 'dataset name', unless another legend is manually specified.

Corresponding command: auto-legend(boolean)

Sets the legend for the next dataset. Overridden by the legend option to the plot command.

Corresponding command: legend(text)

Using this command sets the position of the legends for the current (sub)plot inside it, at the precise location given.

As a shortcut, legend-inside also takes all the options that legend-style takes, with the same effect.

Optional arguments: class dy frame_cap frame_color frame_fill_color frame_fill_pattern frame_fill_transparency frame_padding frame_radius frame_shape frame_style frame_width id picto_height picto_to_text picto_width scale symbol_scale text_scale vpadding
Corresponding command: legend-inside(aligned-point,option=...)

Adds a line of text unrelated to any curve to the legend.

The options controlling the aspect of the legend are documented in the define-text-style command.

Optional arguments: align alignment angle color halign justification position scale shift text_align text_width valign
Corresponding command: legend-line(text,option=...)

Following legends will be layed out in multiple columns, until a call to legend-multicol-end.

Optional arguments: columns dx
Corresponding command: legend-multicol(,option=...)

Stop layout out legends in several columns

Corresponding command: legend-multicol-end()

Sets the various aspects of the style of the legends throught its options:

*
dy: the spacing between the baseline of consecutive lines; it is deprecated now in favor of vpadding;
*
vpadding: the space left between the bottom of a line and the top of the next one;
*
scale: the overall scale of the legends
*
text-scale: the scale of the text (and the markers) inside the legends

The frame- options control the drawing of a frame around the legend; they have the same meaning as corresponding ones of define-box-style with the frame- bit dropped.

Optional arguments: class dy frame_cap frame_color frame_fill_color frame_fill_pattern frame_fill_transparency frame_padding frame_radius frame_shape frame_style frame_width id picto_height picto_to_text picto_width scale symbol_scale text_scale vpadding
Corresponding command: legend-style(,option=...)

How to switch between different kinds of plot types

Switch to contour plots for later curves. Contour plots need three columns (X,Y,Z). They have major and minor lines.

Corresponding command: contour()

Switch to drawing histograms.

Optional arguments: compute_dx cumulative gap intra_sep
Corresponding command: histogram(,option=...)

Switch to XY parametric plots, that is standard XY plots whose appearance (such as color, marker color, and, potentially, marker kinds and more) are governed by one (or more ?) Z values.

Optional arguments: z1 z2 z3 z4
Corresponding command: xy-parametric(,option=...)

Switch (back) to standard XY plots (ctioga's default)

Corresponding command: xy-plot()

Switch to XYZ maps, ie plots where the color at a XY location is given by its Z value.

Corresponding command: xyz-map()

Plot coordinates

Leaves a margin around the data points. Expressed in relative size of the whole plot.

Corresponding command: margin(float)

Alias for xscale.

Corresponding command: xfact(float)

--[no-]xlog
Uses a logarithmic scale for the X axis.

Corresponding command: xlog(boolean)

Adds the given offset to all X coordinates.

Corresponding command: xoffset(float)

Sets the range of the X coordinates.

*Important note:* when the axis is in log range (using xlog), the numbers you give are not the or ylog values, but their log10, so that to display X values from 1e-2 to 1e3, use:


xyrange -2:3
Corresponding command: xrange(partial-float-range)

Multiplies the X coordinates by this factor.

Corresponding command: xscale(float)

Alias for yscale.

Corresponding command: yfact(float)

--[no-]ylog
Uses a logarithmic scale for the Y axis.

Corresponding command: ylog(boolean)

Adds the given offset to all Y coordinates.

Corresponding command: yoffset(float)

Sets the range of the Y coordinates.

*Important note:* when the axis is in log range (using ylog), the numbers you give are not the or ylog values, but their log10, so that to display Y values from 1e-2 to 1e3, use:


yyrange -2:3
Corresponding command: yrange(partial-float-range)

Multiplies the Y coordinates by this factor.

Corresponding command: yscale(float)

Tioga graphics primitives

Tries to emulate the old --draw behavior of ctioga. Don't use it for new things.

Corresponding command: draw(drawing-spec)

Draws arrow on the current plot, using the given style. For more information on the available options, see the define-arrow-style command.

Optional arguments: cap class clipped color depth head_angle head_color head_marker head_scale id line_style line_width style tail_angle tail_color tail_marker tail_scale width
Corresponding command: draw-arrow(point,point,option=...)

Draws box on the current plot, using the given style. For more information on the available options, see the define-box-style command.

Optional arguments: cap class clipped color depth fill-color fill-transparency fill_color fill_pattern fill_transparency id radius shape style width
Corresponding command: draw-box(point,point,option=...)

Directly draws the list of all named colors on the current plot

Optional arguments: class clipped columns depth id padding scale
Corresponding command: draw-color-list(point,dimension,option=...)

Directly draws the list of all color sets on the current plot

Optional arguments: class clipped depth exclude id include scale
Corresponding command: draw-color-set-list(point,dimension,option=...)

Directly draws contour on the current plot

Optional arguments: class clipped closed color depth id style width
Corresponding command: draw-contour(level,option=...)

Draws image on the current plot, using the given style. For more information on the available options, see the define-image-style command.

Optional arguments: aspect_ratio auto_rotate class clipped depth id transparency
Corresponding command: draw-image(file,top-left,bottom-right,option=...)

Draws the legend pictogram for the given curve

Optional arguments: class clipped depth id width
Corresponding command: draw-legend-pictogram(point,object,option=...)

Draws line on the current plot, using the given style. For more information on the available options, see the define-line-style command.

Optional arguments: cap class clipped color depth head_angle head_color head_marker head_scale id line_style line_width style tail_angle tail_color tail_marker tail_scale width
Corresponding command: draw-line(point,point,option=...)

Directly draws the list of all named line styles on the current plot

Optional arguments: class clipped columns depth id padding scale
Corresponding command: draw-line-style-list(point,dimension,option=...)

Draws marker on the current plot, using the given style. For more information on the available options, see the define-marker-style command.

Optional arguments: alignment angle class clipped color depth fill_color horizontal_scale id justification scale stroke_color stroke_width vertical_scale
Corresponding command: draw-marker(point,marker,option=...)

Directly draws the list of all named markers on the current plot

Optional arguments: class clipped columns depth id padding scale
Corresponding command: draw-marker-list(point,dimension,option=...)

Directly draws the list of all marker sets on the current plot

Optional arguments: class clipped depth exclude id include scale
Corresponding command: draw-marker-set-list(point,dimension,option=...)

Draws oriented-line on the current plot, using the given style. For more information on the available options, see the define-oriented-line-style command.

Optional arguments: angle cap class clipped color depth head_angle head_color head_marker head_scale id origin style tail_angle tail_color tail_marker tail_scale width
Corresponding command: draw-oriented-line(point,dimension,option=...)

Draws marker on the current plot, using the given style. For more information on the available options, see the define-marker-style command.

Optional arguments: alignment angle class clipped color depth fill_color font horizontal_scale id justification scale stroke_color stroke_width vertical_scale
Corresponding command: draw-string-marker(point,text,option=...)

Draws tangent on the current plot, using the given style. For more information on the available options, see the define-arrow-style command.

Optional arguments: cap class clipped color depth head_angle head_color head_marker head_scale id line_style line_width nbavg style tail_angle tail_color tail_marker tail_scale width xextent xfrom xto yextent yfrom yto
Corresponding command: draw-tangent(data-point,option=...)

Draws text on the current plot, using the given style. For more information on the available options, see the define-text-style command.

Optional arguments: alignment angle class clipped color depth font halign id justification position scale shift text_align text_width valign
Corresponding command: draw-text(point,text,option=...)

The commands in this group drive the behaviour of the direct backend; see its documentation for more information

Selects the 'direct' backend

Corresponding command: direct()

The commands in this group drive the behaviour of the gnuplot backend; see its documentation for more information

Selects the 'gnuplot' backend

Optional arguments: range samples vars
Corresponding command: gnuplot(,option=...)

The plotting X range, such as 0:2

Corresponding command: gnuplot-range(range)

The number of samples

Corresponding command: gnuplot-samples(samples)

A colon-separated override of local variables, such as a=1;b=3;c=5

Corresponding command: gnuplot-vars(vars)

The commands in this group drive the behaviour of the math backend; see its documentation for more information

Selects the 'math' backend

Optional arguments: log samples trange xrange
Corresponding command: math(,option=...)

--[no-]math-log
Space samples logarithmically

Corresponding command: math-log(log)

The number of points

Corresponding command: math-samples(samples)

T range (a:b) (parametric plot)

Corresponding command: math-trange(trange)

X range (a:b)

Corresponding command: math-xrange(xrange)

The commands in this group drive the behaviour of the smath backend; see its documentation for more information

Selects the 'smath' backend

Optional arguments: samples urange usamples vrange vsamples
Corresponding command: smath(,option=...)

Number of samples (default, overriden by variable-specific specs)

Corresponding command: smath-samples(samples)

U range (a:b)

Corresponding command: smath-urange(urange)

Number of U samples

Corresponding command: smath-usamples(usamples)

V range (a:b)

Corresponding command: smath-vrange(vrange)

Number of V samples

Corresponding command: smath-vsamples(vsamples)

The commands in this group drive the behaviour of the text backend; see its documentation for more information

Now parse the following data files as CSV. Equivalent to


text /separator=/[,;]/
Corresponding command: csv()

--text
Selects the 'text' backend

Optional arguments: col header-line parameters separator skip split
Corresponding command: text(,option=...)

Which columns to use when the @1:2 syntax is not used

Corresponding command: text-col(col)

Regular expression indicating the header line (containing column names) (default /^##/

Corresponding command: text-header-line(header-line)

Regular expression for extracting parameters from a file. Defaults to nil (ie nothing)

Corresponding command: text-parameters(parameters)

The columns separator. Defaults to / +/

Corresponding command: text-separator(separator)

Number of lines to be skipped at the beginning of the file

Corresponding command: text-skip(skip)

--[no-]text-split
If true, splits files into subsets on blank/non number lines

Corresponding command: text-split(split)

Commands providing control over the LaTeX output (preamble, packages...)

Adds the given string to the LaTeX preamble of the output.

Corresponding command: preamble(text)

Set global font. Sets the size of everything, including that of text that has already been used.

Optional arguments: size
Corresponding command: set-global-font(,option=...)

Adds a command to include the LaTeX package into the preamble. The arguments, if given, are given within [square backets].

Optional arguments: arguments
Corresponding command: use(text,option=...)

Makes ctioga2 use UTF-8 for all text. It is exactly equivalent to the command preamble with the argument:


sepackage[utf8]{inputenc}sepackage[T1]{fontenc}
Corresponding command: utf8()

Subplots and assimilated

Leaves the current subobject.

Corresponding command: end()

--frame-margins FRAME-MARGINS
Sets the margins for the current plot. Margins are the same things as the position (such as specified for and inset). Using this within an inset or more complex plots might produce unexpected results. The main use of this function is to control the padding around simple plots.

The options override the contents of the margin, which makes it easy to set all the dimensions to a given value and just override the ones you need to:


frame-margins 2mm /left=1cm This sets all the margins around the side to 2mm excepted the left one, which means in particular the bottom axis tick labels will be cut.

Optional arguments: bottom left right top
Corresponding command: frame-margins(frame-margins,option=...)

All the curves between this command and the corresponding end will have their color set to a weighted average of the colors given as argument. This gives a neat gradient effect.

Optional arguments: class id
Corresponding command: gradient(color,color,option=...)

Hides all the named objects in the list. Useful for creating animations.

Optional arguments: show
Corresponding command: hide(objects,option=...)

Starts a new inset within the given box.

If no graph has been started yet, it just creates a new graph using the given box. In short, it does what it seems it should.

Optional arguments: class id
Corresponding command: inset(box,option=...)

Has the same effet as end followed by inset.

Particularly useful for chaining subgraphs. In that case, you might be interested in the grid box specification and setup-grid.

Optional arguments: class id
Corresponding command: next-inset(box,option=...)

When the frame-margins is set to automatic, ctioga2 leaves that much space around the plot on the sides where there are no labels.

Corresponding command: padding(dimension)

Applies a scaling factor to the whole current subplot. Depending on the 'what' option (default text), the scale applies to:

*
text ('text' or 'both')
*
marker size ('text' or 'both')
*
line widths ('lines' or 'both') Scaling also applies to all elements of the plot that were added before the call to plot-scale.


Optional arguments: what
Corresponding command: plot-scale(float,option=...)

The curves up to the corresponding end will be considered for delimiting a colored region between them. The actual position of the curves with respect to the region can be fine-tuned using the region-side command (or the corresponding option to plot).

Optional arguments: class color id pattern reversed_color reversed_pattern reversed_transparency transparency
Corresponding command: region(,option=...)

Reopens a previously finished container, such as a subplot, a region or a gradient. Provide the unique name you gave as the /id= option to the first command

Corresponding command: reopen(object)

Begins the root plot. This command is only necessary if you want to give styling information to the root plot.

Optional arguments: class id
Corresponding command: root-plot(,option=...)

Sets up a grid of the given layout (such as 2x1). After this command, arguments such as grid:0,1 can be used as the box argument of inset and next-inset commands.

Alternatively, the layout can be specified as 1,2,1x1,4, in which case there are three columns and two rows; the second column is 2 times larger than the other ones, while the second row is four times larger than the first.

Optional arguments: bottom dx dy left right top
Corresponding command: setup-grid(text,option=...)

--text-adjust-mode TEXT-ADJUST-MODE
When this is on (the default), ctioga2 tries to be smart about the size of the text bits around the plot. However, this can be bothersome at times, so you can disable that with this command.

Corresponding command: text-adjust-mode(text-adjust-mode)

Axes and labels

This command can be used to set various aspects of the style of the given axis, through its various options, which are documented in more details in the define-axis-style command -- excepted for the ticks bit which are documented in the ticks command.

If the option also-axes is specified, the style is also applied to the comma-separated list of axes it contains.

Optional arguments: also-axes axis_label_alignment axis_label_angle axis_label_color axis_label_halign axis_label_justification axis_label_loc axis_label_position axis_label_scale axis_label_shift axis_label_text axis_label_text_align axis_label_text_width axis_label_valign background_lines_cap background_lines_color background_lines_style background_lines_width decoration line_width location log major_tick_length major_tick_width minor_tick_length minor_tick_width offset stroke_color tick_label_alignment tick_label_angle tick_label_color tick_label_halign tick_label_justification tick_label_position tick_label_scale tick_label_shift tick_label_text_align tick_label_text_width tick_label_valign ticks_format ticks_format_last ticks_labels ticks_major ticks_major_delta ticks_major_number ticks_major_sep ticks_minor ticks_minor_delta ticks_minor_number ticks_minor_sep_min ticks_side transform
Corresponding command: axis-style(axis,option=...)

Shortcut to set the color for the left and bottom axes

Optional arguments: cap style width
Corresponding command: background-grid(color-or-false,option=...)

Sets the color of the background lines for the given axis.

Optional arguments: cap style width
Corresponding command: background-lines(axis,color-or-false,option=...)

Sets the type of the bottom axis.

The options have the same meaning as for define-axis-style, see that command for more information.

Optional arguments: axis_label_alignment axis_label_angle axis_label_color axis_label_halign axis_label_justification axis_label_loc axis_label_position axis_label_scale axis_label_shift axis_label_text axis_label_text_align axis_label_text_width axis_label_valign background_lines_cap background_lines_color background_lines_style background_lines_width line_width location log major_tick_length major_tick_width minor_tick_length minor_tick_width offset stroke_color tick_label_alignment tick_label_angle tick_label_color tick_label_halign tick_label_justification tick_label_position tick_label_scale tick_label_shift tick_label_text_align tick_label_text_width tick_label_valign ticks_format ticks_format_last ticks_labels ticks_major ticks_major_delta ticks_major_number ticks_major_sep ticks_minor ticks_minor_delta ticks_minor_number ticks_minor_sep_min ticks_side transform
Corresponding command: bottom(axis-decoration,option=...)

Removes all the axes and their associated labels

Corresponding command: clear-axes()

Setup a drawing frame, ie a frame in which the top-left point is at 0,0, with X and Y values positive over the whole frame, and counted in centimeters (or with the unit given using the /units option, ie /units=mm expressed in millimeters or /units=12pt expressed in multiple of 12 TeX points).

Optional arguments: units
Corresponding command: drawing-frame(,option=...)

Sets the style of the given label (see the type label for more information). See define-text-style for detailed information about the meaning of the options.

The option text permits to also set the text of the label (does not work for ticks).

For tick labels, setting the color option also sets the color for the lines of the corresponding axis. If you don't want that, you can override the color using the stroke-color option of axis-style. This will only work with Tioga version 1.11 or greater.

Optional arguments: align alignment angle color halign justification loc position scale shift text text_align text_width valign
Corresponding command: label-style(label,option=...)

Sets the type of the left axis.

The options have the same meaning as for define-axis-style, see that command for more information.

Optional arguments: axis_label_alignment axis_label_angle axis_label_color axis_label_halign axis_label_justification axis_label_loc axis_label_position axis_label_scale axis_label_shift axis_label_text axis_label_text_align axis_label_text_width axis_label_valign background_lines_cap background_lines_color background_lines_style background_lines_width line_width location log major_tick_length major_tick_width minor_tick_length minor_tick_width offset stroke_color tick_label_alignment tick_label_angle tick_label_color tick_label_halign tick_label_justification tick_label_position tick_label_scale tick_label_shift tick_label_text_align tick_label_text_width tick_label_valign ticks_format ticks_format_last ticks_labels ticks_major ticks_major_delta ticks_major_number ticks_major_sep ticks_minor ticks_minor_delta ticks_minor_number ticks_minor_sep_min ticks_side transform
Corresponding command: left(axis-decoration,option=...)

Creates a named Z axis that can display information from Z color maps

Optional arguments: axis_label_alignment axis_label_angle axis_label_color axis_label_halign axis_label_justification axis_label_loc axis_label_position axis_label_scale axis_label_shift axis_label_text axis_label_text_align axis_label_text_width axis_label_valign background_lines_cap background_lines_color background_lines_style background_lines_width bar_shift bar_size bounds class decoration id line_width location log major_tick_length major_tick_width minor_tick_length minor_tick_width offset padding stroke_color tick_label_alignment tick_label_angle tick_label_color tick_label_halign tick_label_justification tick_label_position tick_label_scale tick_label_shift tick_label_text_align tick_label_text_width tick_label_valign ticks_format ticks_format_last ticks_labels ticks_major ticks_major_delta ticks_major_number ticks_major_sep ticks_minor ticks_minor_delta ticks_minor_number ticks_minor_sep_min ticks_side transform
Corresponding command: new-zaxis(text,option=...)

Removes the title of the current plot.

Corresponding command: no-title()

Removes the X label for the current plot.

Corresponding command: no-xlabel()

Removes the Y label for the current plot.

Corresponding command: no-ylabel()

Sets the type of the right axis.

The options have the same meaning as for define-axis-style, see that command for more information.

Optional arguments: axis_label_alignment axis_label_angle axis_label_color axis_label_halign axis_label_justification axis_label_loc axis_label_position axis_label_scale axis_label_shift axis_label_text axis_label_text_align axis_label_text_width axis_label_valign background_lines_cap background_lines_color background_lines_style background_lines_width line_width location log major_tick_length major_tick_width minor_tick_length minor_tick_width offset stroke_color tick_label_alignment tick_label_angle tick_label_color tick_label_halign tick_label_justification tick_label_position tick_label_scale tick_label_shift tick_label_text_align tick_label_text_width tick_label_valign ticks_format ticks_format_last ticks_labels ticks_major ticks_major_delta ticks_major_number ticks_major_sep ticks_minor ticks_minor_delta ticks_minor_number ticks_minor_sep_min ticks_side transform
Corresponding command: right(axis-decoration,option=...)

This command can be used to control the location of major and minor ticks and the text of their labels for the given axis. Options available:

*
format the format of the tick labels, using a sprintf-like syntax (see below)
*
format-last the format of the last of the tick labels (useful to include an overall "power-of-ten" factor
*
major a space or comma-separated list of the positions of the major (labeled) ticks
*
minor same for the minor ticks
*
label a comma-separated list of the tick labels (must be the same number of elements as that of the major list). If you must include a comma inside, then use || as a separator.

Format is a normal sprintf format, with the following additional special codes:

*
%p the "common power of 10": if you divide the tick values by 10 to the power %p, the smallest absolute value will be between 1 and 10 (excluding 0 of course)
*
%b... is the tick value divided by this common power of 10. You *must* follow this spec by a usual sprintf format: %b.3g would get you a number with 3 significant digits


Optional arguments: format format_last labels major major_delta major_number major_sep minor minor_delta minor_number minor_sep_min
Corresponding command: ticks(axis,option=...)

Sets the title of the current plot.

Optional arguments: align alignment angle color halign justification loc position scale shift text_align text_width valign
Corresponding command: title(text,option=...)

Sets the type of the top axis.

The options have the same meaning as for define-axis-style, see that command for more information.

Optional arguments: axis_label_alignment axis_label_angle axis_label_color axis_label_halign axis_label_justification axis_label_loc axis_label_position axis_label_scale axis_label_shift axis_label_text axis_label_text_align axis_label_text_width axis_label_valign background_lines_cap background_lines_color background_lines_style background_lines_width line_width location log major_tick_length major_tick_width minor_tick_length minor_tick_width offset stroke_color tick_label_alignment tick_label_angle tick_label_color tick_label_halign tick_label_justification tick_label_position tick_label_scale tick_label_shift tick_label_text_align tick_label_text_width tick_label_valign ticks_format ticks_format_last ticks_labels ticks_major ticks_major_delta ticks_major_number ticks_major_sep ticks_minor ticks_minor_delta ticks_minor_number ticks_minor_sep_min ticks_side transform
Corresponding command: top(axis-decoration,option=...)

Switches to using the top axis for X axis for the subsequent curves, and turns on full decoration for the right axis. Shortcut for:


xaxis top
axis-style top /decoration=full
Corresponding command: x2()

Sets the default axis for the X axis for all subsequent commands take rely on default axes (such as plot, xrange, yrange...).

Corresponding command: xaxis(axis)

Sets the X label of the current plot.

Optional arguments: align alignment angle color halign justification loc position scale shift text_align text_width valign
Corresponding command: xlabel(text,option=...)

Switches to using the right axis for Y axis for the subsequent curves, and turns on full decoration for the right axis. Shortcut for:


yaxis right
axis-style right /decoration=full
Corresponding command: y2()

Sets the default axis for the Y axis for all subsequent commands take rely on default axes (such as plot, xrange, yrange...).

Corresponding command: yaxis(axis)

Sets the Y label of the current plot.

Optional arguments: align alignment angle color halign justification loc position scale shift text_align text_width valign
Corresponding command: ylabel(text,option=...)

Commands dealing with the aspect of the background of a plot (excluding background lines, which are linked to axes).

Sets the background color for the current (and subsequent?) plot.

Corresponding command: background(color-or-false)

Sets a watermark for the background of the current plot.

Optional arguments: alignment angle color fill_color font horizontal_scale justification scale stroke_color stroke_width vertical_scale
Corresponding command: watermark(text,option=...)

Commands for defining default styles.

All commands take the selector of the style to be defined. It is a CSS-like selector, relying on #id and .class, and using #parentality. Therefore, defining a style for .insets #stuff will define it for an object named stuff, but only if it is contained within another one that has a .insets class.

ctioga2 does not support changing a style after its use. It may affect only the following objects or all the ones that were created from the beginning, depending on the context. For safety, only define style before issueing any graphics command.

Sets the default style for arrows. All arrow styles descend from the base style. Use a style different than base by passing its name as the /base-style option to the draw-arrow command.

Meaning of the style parameters:

*
color, style and width: same as in define-line-style
*
head-marker, tail-marker: a marker to be used for the head or for the tail
*
head-scale, tail-scale: scale of the head or tail markers
*
head-angle, tail-angle: rotate the head or the tail by that many degrees
*
head-color, tail-color: the color of the head or tail


Optional arguments: cap color head_angle head_color head_marker head_scale style tail_angle tail_color tail_marker tail_scale width
Corresponding command: define-arrow-style(text,option=...)

Sets the style for a whole axis. All axis styles descend from the base style. Horizontal and vertical axis styles descend from the x and y styles, and plot sides are styled with the left, right, top and bottom styles.

Axis styles have lots of parameters:

*
axis-label- and tick-label- parameters are title style parameters whose meaning is given in define-title-style, that affect ticks and axis labels
*
decoration: a axis-decoration that specify which ticks and tick labels to draw
*
background-lines- parameters define the style of background lines, as in define-line-style


Optional arguments: axis_label_alignment axis_label_angle axis_label_color axis_label_halign axis_label_justification axis_label_loc axis_label_position axis_label_scale axis_label_shift axis_label_text axis_label_text_align axis_label_text_width axis_label_valign background_lines_cap background_lines_color background_lines_style background_lines_width decoration line_width location log major_tick_length major_tick_width minor_tick_length minor_tick_width offset stroke_color tick_label_alignment tick_label_angle tick_label_color tick_label_halign tick_label_justification tick_label_position tick_label_scale tick_label_shift tick_label_text_align tick_label_text_width tick_label_valign ticks_format ticks_format_last ticks_labels ticks_major ticks_major_delta ticks_major_number ticks_major_sep ticks_minor ticks_minor_delta ticks_minor_number ticks_minor_sep_min ticks_side transform
Corresponding command: define-axis-style(text,option=...)

Sets the style for plot background. All background styles descend from the base style. In addition, the background of a plot is change by the style name background.

Meaning of the style parameters:

*
watermark: the text of the watermark
*
all watermark_ styles have the same meaning as in define-text-style, as the watermark is a string marker
*
background_color: the color of the background


Optional arguments: background_color watermark watermark_alignment watermark_angle watermark_color watermark_fill_color watermark_font watermark_horizontal_scale watermark_justification watermark_scale watermark_stroke_color watermark_stroke_width watermark_vertical_scale
Corresponding command: define-background-style(text,option=...)

Sets the default style for boxes. All box styles descend from the base style. Use a style different than base by passing its name as the /base-style option to the draw-box command.

Meaning of the style parameters:

*
color, style and width: same as in define-line-style
*
fill-color: fill color for the box
*
fill-transparency: the transparency for the fill, from 0 to 1


Optional arguments: cap color fill_color fill_pattern fill_transparency radius shape style width
Corresponding command: define-box-style(text,option=...)

Sets the default style for the named plot background.

Optional arguments: clipped color color_map contour_conrec contour_minor_number contour_minor_scale contour_minor_style contour_minor_width contour_number contour_use_naturals depth error_bar_color error_bar_line_cap error_bar_line_color error_bar_line_style error_bar_line_width fill fill_close_type fill_color fill_pattern fill_transparency legend line_cap line_color line_style line_width location_xaxis location_yaxis marker marker_angle marker_color marker_color_map marker_fill_color marker_fill_color_map marker_line_color marker_line_color_map marker_line_width marker_marker marker_min_scale marker_scale path_style region_position split_on_nan zaxis
Corresponding command: define-curve-style(text,option=...)

Sets the default style for the named image.

Optional arguments: aspect_ratio auto_rotate transparency
Corresponding command: define-image-style(text,option=...)

Sets the style for legends.

Optional arguments: dy frame_cap frame_color frame_fill_color frame_fill_pattern frame_fill_transparency frame_padding frame_radius frame_shape frame_style frame_width picto_height picto_to_text picto_width scale symbol_scale text_scale vpadding
Corresponding command: define-legend-style(text,option=...)

Sets the default style for lines. All line styles descend from the base style. Use a style different than base by passing its name as the /base-style option to the draw-line command.

Meaning of the style parameters:

*
color: the color of the line, see color
*
style: the line style, see line-style
*
width: the line width (in points)


--define-line-style * /color=Pink makes all lines pink (unless overriden by the /color option to draw-line), while


--define-line-style .pink /color=Pink only affect those to which the /class=pink style option was given.

Optional arguments: cap color style width
Corresponding command: define-line-style(text,option=...)

Sets the style for marker and marker strings. All marker and marker string styles descend from the base style. Use a style different than base by passing its name as the /base-style option to the draw-marker or draw-string-marker commands.

Meaning of the style parameters:

*
alignment, justification, angle, color and scale: as in define-text-style
*
fill-color and stroke_color: markers are both stroked and filled, you can control all colors in one go using color or specifying each with fill-color and stroke_color
*
font: is a PDF font number (from 1 to 14), only used for marker strings
*
horizontal-scale, vertical-scale: scales the marker only horizontally or vertically


Optional arguments: alignment angle color fill_color font horizontal_scale justification scale stroke_color stroke_width vertical_scale
Corresponding command: define-marker-style(text,option=...)

Sets the default style for the named oriented lines.

Optional arguments: angle cap color head_angle head_color head_marker head_scale origin style tail_angle tail_color tail_marker tail_scale width
Corresponding command: define-oriented-line-style(text,option=...)

Optional arguments: alignment angle aspect_ratio auto_rotate axis_label_alignment axis_label_angle axis_label_color axis_label_halign axis_label_justification axis_label_loc axis_label_position axis_label_scale axis_label_shift axis_label_text axis_label_text_align axis_label_text_width axis_label_valign background_color background_lines_cap background_lines_color background_lines_style background_lines_width cap clipped color color_map contour_conrec contour_minor_number contour_minor_scale contour_minor_style contour_minor_width contour_number contour_use_naturals decoration depth dy error_bar_color error_bar_line_cap error_bar_line_color error_bar_line_style error_bar_line_width fill fill_close_type fill_color fill_pattern fill_transparency font frame_cap frame_color frame_fill_color frame_fill_pattern frame_fill_transparency frame_padding frame_radius frame_shape frame_style frame_width halign head_angle head_color head_marker head_scale horizontal_scale justification legend line_cap line_color line_style line_width loc location location_xaxis location_yaxis log major_tick_length major_tick_width marker marker_angle marker_color marker_color_map marker_fill_color marker_fill_color_map marker_line_color marker_line_color_map marker_line_width marker_marker marker_min_scale marker_scale minor_tick_length minor_tick_width offset origin path_style picto_height picto_to_text picto_width position radius region_position scale shape shift split_on_nan stroke_color stroke_width style symbol_scale tail_angle tail_color tail_marker tail_scale text text_align text_scale text_width tick_label_alignment tick_label_angle tick_label_color tick_label_halign tick_label_justification tick_label_position tick_label_scale tick_label_shift tick_label_text_align tick_label_text_width tick_label_valign ticks_format ticks_format_last ticks_labels ticks_major ticks_major_delta ticks_major_number ticks_major_sep ticks_minor ticks_minor_delta ticks_minor_number ticks_minor_sep_min ticks_side transform transparency valign vertical_scale vpadding watermark watermark_alignment watermark_angle watermark_color watermark_fill_color watermark_font watermark_horizontal_scale watermark_justification watermark_scale watermark_stroke_color watermark_stroke_width watermark_vertical_scale width zaxis
Corresponding command: define-style(text,option=...)

Sets the default style for texts. All text styles descend from the base style. Use a style different than base by passing its name as the /base-style option to the draw-text command.

Meaning of the style parameters:

*
alignment: vertical alignment
*
justification: horizontal alignment
*
angle: angle in degrees to the horizontal (or default orientation in some cases)
*
color: text color
*
scale: text scale


Optional arguments: alignment angle color halign justification position scale shift text_align text_width valign
Corresponding command: define-text-style(text,option=...)

Sets the style for title. All title styles descend from the base style. In addition, the title of a plot is addressed by the style name title.

Meaning of the style parameters:

*
alignment, justification, angle, color and scale: as in define-text-style
*
text: sets the title text
*
loc: the side on which to display the title, a location
*
shift: the distance away from the plot in text size units (maybe a dimension should be better later)
*
position: shift from the center (parallel to the plot side)


Optional arguments: alignment angle color halign justification loc position scale shift text text_align text_width valign
Corresponding command: define-title-style(text,option=...)

Corresponding command: load-style(file)

Commands in this group deal with various aspects of the production of output files:

*
output file location
*
post-processing (including automatic display)
*
cleanup...

--[no-]clean
When this is on (the default), ctioga2 automatically cleans up intermediate files produced by Tioga. When LaTeX fails, it can be useful to have a closer look at them, so disable it to be able to look into them.

Corresponding command: clean(boolean)

--[no-]cleanup-pdf
If this is on, then ctioga2 uses ghostscript to cleanup the PDF file produced. It is on by default is ctioga2 is able to find the gs executable.

Corresponding command: cleanup-pdf(boolean)

Saves the dependencies as a Makefike into the given file name.

Corresponding command: dependencies(file)

--[no-]eps
When this feature is on, all produced PDF files are converted to EPS using the pdftops program (from the xpdf tools suite).

Corresponding command: eps(boolean)

--[no-]mark
When this feature is on (which is the default, as it comes in very useful), the 'title' field of the PDF informations is set to the command-line that resulted in the PDF file. Disable it if you don't want any information to leak.

Please note that this will not log the values of the CTIOGA2_PRE and CTIOGA2_POST variables, so you might still get a different output if you make heavy use of those.

Corresponding command: mark(boolean)

Sets the name of the figure, which is also the base name for the output file. This has nothing to do with the title of the plot, which can be set using the command title.

If the name contains a %, it is interpreted by ctioga2 as a printf-like format. It will attempt to find the first file that does not exist, feeding it with increasing numbers.

The default value is now Plot-%03d, which means you'll get increasing numbers automatically.

Corresponding command: name(figure name)

Uses open (available on MacOS) to view the PDF files produced by ctioga2.

Corresponding command: open()

Writes a figure with the given name (see name) and keeps the current state. This can be used to create an animation.

Corresponding command: output-now(figure name)

Writes the current figure and starts a fresh one. All non-graphical information are kept (curves loaded, figure names, preamble, and so on).

Corresponding command: output-and-reset()

Sets the directory to which files will be plot. It defaults to the current directory.

Corresponding command: output-directory(text)

Sets the size of the output PDF file, in real units. Takes arguments in the form of 12cm x 3in (spaces can be omitted).

Optional arguments: count-legend
Corresponding command: page-size(text,option=...)

Turns all produced PDF files into PNG images of the given resolution using convert. This also has for effect to set the page-size to the resolution divided by the 'scale' option in Postscript points. By default, 2 pixels are rendered for 1 final to produce a nicely antialiased image. Use the 'oversampling' option to change that, in case the output looks too pixelized. This option only affects conversion time.

Optional arguments: oversampling pdftoppm scale
Corresponding command: png(resolution,option=...)

By default, ctioga2 has a resolution of 1/100th of a postscript point. This is clearly enough for most tasks, but you can increase it should you need, or decrease it to generate possibly a little more jaggy but less large PDF files.

The number given is the number of output points per postscript point.

Better change that at the beginning of the plot.

Corresponding command: resolution(float)

--[no-]svg
When this feature is on, all produced PDF files are converted to SVG using the neat pdf2svg program.

Corresponding command: svg(boolean)

Sets the command for viewing the PDF file after ctioga2 has been run.

Corresponding command: viewer(text)

Uses xpdf to view the PDF files produced by ctioga2.

If xpdf is not found, then it tries to guess which viewers are available:

*
on windows, it uses the system file associations to open the PDF file
*
on mac, it uses the open command
*
on linux, it tries, mime-open, and if that is missing, falls back to commonly available PDF viewers.


Corresponding command: xpdf()

Commands for manipulation of the data stack

Use the current backend to load the given dataset(s) and append to the last dataset on the stack (without creating a new dataset). Roughly the equivalent of first running load and then join-datasets.

Optional arguments: as ignore_hooks where
Corresponding command: append(dataset,option=...)

Applies a formula to the last dataset (or the named one)

Optional arguments: name which
Corresponding command: apply-formula(text,option=...)

This command bins the contents of the Y column of the last dataset on the stack, and pushes the results as a new dataset.

Optional arguments: column delta max min name normalize number which
Corresponding command: bin(,option=...)

Computes the contour at the given level for the given dataset (or the last on the stack if none is specified) and pushes it onto the data stack.

You can further manipulate it as usual.

Optional arguments: which
Corresponding command: compute-contour(float,option=...)

The dataset hook is a series of commands such as those in the command files that are run every time after a dataset is added onto the data stack. Its main use is to provide automatic filtering of data, but any arbitrary command can be used, so enjoy !

Corresponding command: dataset-hook(commands)

Adds the given commands to the dataset hook. See dataset-hook for more information about the dataset hook.

Corresponding command: dataset-hook-add(commands)

Clears the dataset hook. See dataset-hook for more information.

Corresponding command: dataset-hook-clear()

Removes the given dataset from the stack.

Can become useful when dealing with large datasets, some of which are only used as intermediates for apply-formula or compute-contour, for instance.

Corresponding command: drop(stored-dataset)

Pops the last two (or number, if it is specified) datasets from the stack, concatenates them (older last) and push them back onto the stack. The name option can be used to give a name to the new dataset.

Optional arguments: name number which
Corresponding command: join-datasets(,option=...)

Use the current backend to load the given dataset(s) onto the data stack.

If the name option is given, the last dataset loaded this way (if dataset expansion occurs) gets named, or, if it contains a %d (or similar construct), each dataset gets named with %d replace with the number of the dataset within the expansion (starting at 0). This name can be used to further use the dataset without remembering its number. See the type stored-dataset for more information.

Optional arguments: as ignore_hooks name where
Corresponding command: load(dataset,option=...)

Optional arguments: as ignore_hooks name where which
Corresponding command: make-contour(float,option=...)

This commands merges data with matching X values from a dataset (by default the one before the last) into the last one. Data points that have no corresponding X value in the current dataset are simply ignored. If the columns option is provided, the numbered columns are use instead of the X columns (X is 1). More than one column can be provided this way, in which case *all* values must match.

This can be used to build 3D datasets for xyz-map or xy-parametric.

Optional arguments: columns number precision which
Corresponding command: merge-datasets(,option=...)

Prints to standard output data contained in the last dataset pushed onto the stack, or the given stored dataset if the which option is given.

Optional arguments: save which
Corresponding command: print-dataset(,option=...)

Displays the current contents of the dataset stack.

Mostly used for debugging when operations like merge-datasets or join-datasets don't work as expected.

Corresponding command: show-stack()

This command will get documented some day.

Optional arguments: linear which
Corresponding command: xy-reglin(,option=...)

Commands displaying information about the internals of ctioga2, such as known types/commands/backends...

Edit the given command in an editor. It will only work from the top directory of a ctioga2 source tree.

Optional arguments: doc
Corresponding command: edit-command(text,option=...)

Edit the given group in an editor. It will only work from the top directory of a ctioga2 source tree.

Corresponding command: edit-group(text)

Edit the given type in an editor. It will only work from the top directory of a ctioga2 source tree.

Corresponding command: edit-type(text)

List all commands known to ctioga2

Optional arguments: format raw
Corresponding command: list-commands(,option=...)

List all command groups known to ctioga2

Optional arguments: raw
Corresponding command: list-groups(,option=...)

Lists all available color sets, marker sets and the like.

Optional arguments: raw
Corresponding command: list-styles(,option=...)

List all types known to ctioga2

Optional arguments: raw
Corresponding command: list-types(,option=...)

Prints the raw version number, without any other decoration and newline.

Corresponding command: version-raw()

The commands in this group act upon the last dataset pushed unto the data stack: they can be viewed as filters.

Install the avg-dup-last command as a dataset hook (see dataset-hook): all datasets acquired after this is on will be averaged if they have identical successive values of X.

Corresponding command: avg-dup()

Averages successive points with identical X values. This algorithm is naive with respect to the min/max values and averages them just as well, whereas one might expect something more clever.

To average over all X values when they are not successive in the dataset, you should use sort-last first.

Optional arguments: mode
Corresponding command: avg-dup-last(,option=...)

Install the cherry-pick-last command as a dataset hook (see dataset-hook): all points for which the formula returns false for subsequent datasets will be removed.

Corresponding command: cherry-pick(text)

Removes the data from the last dataset in the data stack for which the formula returns false.

See also the cherry-pick command to apply the selection to all datasets.

You might find it much easier to use the /where option of the plot or load commands.

Corresponding command: cherry-pick-last(text)

Install the smooth-last command as a dataset hook (see dataset-hook): from now on, the datasets are all smoothed

Corresponding command: smooth(integer)

Smooth the data using a simple (naive even) gaussian filter. Good for producing 'lines to guide the eye'

Corresponding command: smooth-last(integer)

Install the sort-last command as a dataset hook (see dataset-hook): all subsequent datasets will be sorted according to their X values.

Corresponding command: sort()

Sorts the last dataset pushed unto the stack according to X values. Can be used as a filter.

This command sorts in-place.

See also sort.

Corresponding command: sort-last()

Install the trim-last command as a dataset hook (see dataset-hook): all subsequent datasets will be trimmed to keep only every n point.

Corresponding command: trim(integer)

Only keeps one every ? data point on the last dataset pushed unto the data stack. Useful when data have too many points to avoid creating heavy PDF files that take ages to display with no additional benefits.

This operation is very crude and does not average data.

See also trim.

Corresponding command: trim-last(integer)

General scope commands

With this on, ctioga2 writes a whole lot of debugging information. You probably will not need that unless you intend to file a bug report or to tackle a problem yourself.

Be warned that it *will* slow down very significantly the processing of ctioga2 (up to hundreds of times slower), especially if you are not redirecting the output to a file.

Corresponding command: debug()

Writes the whole command-line used to standard error, quoted in such a way that it should be usable directly for copy/paste.

Corresponding command: echo()

Runs the given strings as commands, as if given from a command file.

Corresponding command: eval(commands)

Reads the file and runs commands found in them, using the ctioga language.


ctioga2 -f my_file.ct2 If the /log is on, then all messages are written to a -log.txt file instead of to the terminal.

Optional arguments: log
Corresponding command: include(file,option=...)

Prints helps about short and long options available when run from the command-line.

Optional arguments: pager
Corresponding command: command-line-help(,option=...)

Prints help about the given command

Corresponding command: help-on(text)

--[no-]pause
When this is on, the program will ask for confirmation before finishing, when errors or warnings have been shown. This is especially useful on windows or other environments where the terminal shuts down as soon as ctioga2 has finished.

Corresponding command: pause(boolean)

Writes the list of all the instructions run so far.

This is not very helpful for now, possibly.

Corresponding command: print-instructions()

Reads the file and runs the Ruby code found inside, a bit like Ruby would do with the require command, excepted that ctioga2 does not follow Ruby's file searching rules: you have to specify the full path.

Corresponding command: ruby-run(file)

Sets the value of the variable (first argument) to the given second argument. No parsing is done.

Corresponding command: set(text,text)

With this on, ctioga2 outputs quite a fair amount of informative messages.

Corresponding command: verbose()

Prints the version of ctioga in use

Corresponding command: version()

Most of the commands accept one or more arguments, which have different types. Here are the meanings of those types.

A point together with alignment specifications, used to place some elements such as legends for instance, that require alignment information.

The first two letters represent the alignment:

*
t for top
*
b for bottom
*
c for center
*
l for left and
*
r for right

These letters can optionally be followed by the exact location of the point in frame coordinates. If not provided, a reasonable default value is chosen.

Examples:

*
tl is a point at the top left of the frame aligned to the top and left;
*
cl:0.1,0.6 is vertically centered and aligned to the left, and positioned 10% from the left and 60% from the bottom.

Vertical aligment for text. Can be one of:

*
t or top
*
c, center, m or midheight (vertically centered)
*
B, Baseline or baseline to align at the baseline
*
b or bottom

How the draw-image command respects the original image aspect ratio:

*
ignore (the default) ignores the original aspect ratio
*
expand expand the original box to respect aspect ratio
*
contract contract the original box to respect aspect ratio

How the avg-dup-last command :

*
naive or average (the default) treats all columns (values and error bars) the same way, and average everythin
*
stddev ignores the original errors, and sets the new errors to the standard deviation of the values

The name of the axis of a plot. It can be:

*
left, top, bottom or right;
*
x, xaxis, y, yaxis, which return one of the above depending on the preferences of the current plot (see xaxis and yaxis to change them);
*
one of the named axes, such as the ones created by new-zaxis.

Kinds of decoration on a axis line, such as nothing, lines, ticks, tick labels. Possible values:

*
hidden, off, no, none: no axis at all
*
line: only a line
*
ticks: only ticks
*
major: only major ticks
*
major-num: major ticks along with their labels
*
full: major ticks and labels + minor ticks

Same thing as axis, or auto to let the style factory handle automatically.

A pair of functions of x specifying a bidirectional coordinate transformation separated by a double colon (::), in the order from::to.

Each of the functions must be valid Ruby code - it is not exactly mathematical functions, in particular Ruby does not like floats which are missing digits on either side of the dot : for instance, .3 and 1. are not valid. Sorry.

In most of the usual cases, the coordinate transform is an involution, that is from and to is the same function (this is the case for a/x). In this case, you can omit the second function.

Yes or no.

Same thing as boolean, or auto to let the style factory handle automatically.

The specification for a box, such as an inset. It can be a grid specification, such as grid:0,1. For this to work, a grid must have been setup beforehand using setup-grid.

It can also be an aligned-point together with a width and optionally a height in frame coordinates, such as:

*
cc:0.3: a box in the center of size 30% width and 30% height;
*
bl:0.1,0.2:0.7,0.2 a box starting from the point at 10% from the left and 20% from the bottom, with a width of 70% and a height of 20%.

The shape of a box. It can be:

*
square for a plain square box
*
round for a rounded box

A color. It can take three forms:

*
a named color, see http://tioga.rubyforge.org/doc/classes/Tioga/ColorConstants.html for the list of color names.
*
an HTML color: for instance, #f00 or #ff0000 is red;
*
a list of three numbers between 0 and 1: 1,0,0 is red too.

Same thing as color, or auto to let the style factory handle automatically.

A color, or none to say that nothing should be drawn.

Same thing as color-or-false, or auto to let the style factory handle automatically.

Sets of color-or-false

Sets of color

A Z color map. It takes the form Color1--Color2--Color3.... All colors can optionally be followed by a number. For instance, for Red--Blue--Pink--Green, the colors are evenly spaced. In the case Red--Blue(0.1)--Pink(0.2)--Green, the Blue to Pink strech is located between Z values 0.1 and 0.2.

If a prefix hls: or wheel: is present, then linear interpolation is done in the HLS colorspace instead of the RGB one (the default).

If a suffix :sym:_value_ is present, then the colormap is symmetric around that value.

It is also possible to directly use a color-set, in which case eveything works as if the colors of the color-set had been given directly, without Z values.

Same thing as colormap, or auto to let the style factory handle automatically.

ctioga2 commands, such as the ones that could be found in command files.

This controls how the histograms treats unevenly spaced X values:

*
none: ignores the problem, and treats the points as if they were all evenly spaced
*
min, mindx: considers that all slots have the size of the smallest variation of X values

How to specify that histograms should be stacked. Can be:

*
a positive number, in which case the following histograms will be added to the numbered one (0 is the first)
*
no/false, in which case the following histograms are not stacked
*
next, in which case the following histograms get stacked on a new slot

A point from an already-loaded Dataset. You have two ways to choose the point:

*
@13 takes the 13th point in the last dataset;
*
0.2 takes the point the closest to 20% of the dataset.

If you need another dataset than the last one, give its number or named within brackets: {-2}0.2 is the point closest to the 20% of the one-before-last dataset.

One expandable dataset.

A dimension, in absolute units, or in units of text height, figure, frame or page coordinates. It is in the form value unit where value is a number and unit can be one of pt, bp, in, cm (absolute units, same meaning as in TeX), dy (1.0 dy is the height of a text line), figure or f (for figure coordinates, i.e. the coordinates of the plot), frame or F (1.0 frame is the full size of the current subplot) and page or p (1.0 page is the whole height/width of the output file).

It can also be auto, which is 1.0 in frame units (ie the width or the height of the current plot).

A dimension, or no or none.

A ctioga 1 --draw specification.

A file name.

A fill pattern, one of:

*
lines:_angle_,_distance_,_width_
*
vlines:_distance_,_width_
*
hlines:_distance_,_width_
*
xlines:_distance_,_width_,_angle_
*
solid or plain

The first three are lines, of arbitrary orientation for lines, vertical for vlines and horizontal for hlines. xlines correspond to crossed perpendicular lines (the _angle_ is 45 by default). For these styles, the _distance_ and _width_ are all optional and correspond respectively to the distance between the lines and the line width.

solid or plain correspond to solid fill (i.e. not patterned).

Same thing as fill-pattern, or auto to let the style factory handle automatically.

How to close the path of a curve to fill it. Can be:

*
bottom, top, left, right to fill until the named side of the plot
*
axis or xaxis to fill until the X axis (ie y = 0)
*
yaxis to fill until the Y axis (ie x = 0)
*
x:value or x=value to fill until the given X value
*
y:value or y=value to fill until the given Y value
*
close for just closing the path (doesn't look good in general)
*
none for no fill

Same thing as fill-until, or auto to let the style factory handle automatically.

Sets of fill-until

A floating-point number.

A list of space-separated or comma-separated floating point numbers.

Same thing as float, or auto to let the style factory handle automatically.

A floating-point number, or none.

Same thing as float-or-false, or auto to let the style factory handle automatically.

A beginning:end range.

Sets of float

Margins around a plot, ie the distance from the side of the plot to the corresponding side of the container (most likely the whole PDF). It can take three forms:

*
dimension (applies to all sides)
*
left_right, top_bottom
*
left, right, top, bottom

Each of these elements is a valid dimension.

It can also be auto, in which case the position of the margins is computed automatically to accomodate the various labels/ticks.

An integer.

A list of space-separated or comma-separated integers

Same thing as integer, or auto to let the style factory handle automatically.

Output format for internals.

Horizontal aligment of the (with respect to its location). Can be one of:

*
l or left
*
c, center
*
r, right

The name of an label. It can be:

*
title to mean the current plot's title.
*
axis_tick or axis_ticks or simply axis, where axis is a a valid axis. It designates the ticks of the named axis.
*
axis_label, same as above but targets the label of the named axis.

A LaTeX font.

@todo document !

A level on a XYZ map (that is, just a Z value).

A line cap style, i.e. how the line extends beyond its last point. Available choices:

*
round (extends as a half circle default)
*
butt (does not extend at all)
*
square (extends as a half square)

Same thing as line-cap, or auto to let the style factory handle automatically.

A line style, which is one of solid, dots, dashes, small_dots, a series of comma-separated numbers which are the length of the strokes and gaps, or no, none or off to mean no line.

Same thing as line-style, or auto to let the style factory handle automatically.

Sets of line-style

A position on the plot, referenced with respect to the sides. Can be:

*
left
*
right
*
top
*
bottom
*
x0, for the x = 0 position
*
y0, for the y = 0 position

In addition, there will one day be the possibility to specify an offset from these locations. But that is still something to do.

A Tioga Marker, ie either a name from the list at http://tioga.rubyforge.org/doc/Tioga/MarkerConstants.html, such as Box, Star, Spade or two or three comma-separated numbers, _font_, _number_ and _width_. _font_ defines the font (standard PDF fonts, from 1 to 14), _number_ the number of the character within the font (between 0 and 255), and if _width_ is specified, the marker is stroked and not filled, and the number is the line width for the stroke.

Same thing as marker, or auto to let the style factory handle automatically.

Sets of marker

A named object (whose name was given using the /id= option to the appropriate command).

A list of comma-separated objects, or a class specification starting with a .

A beginning:end range, where either of the endpoints can be ommitted.

A number between 1 and 14 that designates one of the 14 standard PDF fonts. (see for instance http://tioga.rubyforge.org/doc/classes/Tioga/MarkerConstants.html for more information).

A given point on a figure.

A plain string or a regular expression (the latter being enclosed within /.../).

Within a region, designates the position of the curve with respect to the region:

*
above
*
below
*
ignore if this curve is not to be taken into account

Same thing as region-side, or auto to let the style factory handle automatically.

Sets of region-side

A dataset that has already been loaded. It is either:

*
A number, in which case it specifies the index inside the stack. 0 is the first on that was pushed onto the stack (the oldest dataset), 1 the second, -1 the last one, -2 the one before the last and so on. (it works just like Ruby's arrays).
*
The name of a named dataset.
*
# followed by the id of a plot element

This type designs which aspect of the style of a xy-parametric plot is controlled by a certain Z value. It can take the following values:

*
marker_color: the color for the markers
*
marker_size/marker_scale: the size of the markers

Plain text.

Mode for text size adjustment

*
old for the old style heuristics
*
both for both the old style heuristics and the measures, taking whichever of those is the biggest
*
measure for only measured text size (but watch out for axis ticks !)

Horizontal aligment for text within its box. Only of use for texts with a given text width. Can be one of:

*
l or left
*
c, center
*
r, right
*
no or none to not issue aligning commands, in which case you get full LaTeX-justified paragraphs (probably with a lot of hyphens).

A list of comma-separated texts. If you must include a comma inside the texts, then use || as a separator.

Same thing as text, or auto to let the style factory handle automatically.

Sets of text

On what side of an axis line are the ticks positioned:

*
inside: on the inside
*
outside: on the outside
*
both: on both the inside and the outside

If the environment variables CTIOGA2_PRE or CTIOGA2_POST are set, they are split into words according to shell rules (see the Shellwords.shellwords ruby function for more information) and prepended or appended to the command-line arguments. They don't leave any trace in the actual command-line (so, for instance, --echo won't be aware of them).

ctioga2 was written by Vincent Fourmond. Tioga was written by Bill Paxton.

ctioga2 is most certainly not bug-free. You can use the facility at rubyforge.org to report any bug you notice: http://rubyforge.org/tracker/?group_id=8218. You can also use the same facility for feature requests and to provide use with patches.

Alternatively, you can use the forums at http://rubyforge.org/forum/?group_id=8218 or the ctioga2-users@rubyforge.org mailing list to report any kind of problems or suggestions.

xpdf(1), pdflatex(1), open(1), gnuplot(1), ctioga(1) (the original ctioga)

The original tarball includes an examples/ with various examples demonstrating different features of ctioga2, and in particular the different ways to use it: command-line or command-file.

It also includes a tests/ directory containing test shell scripts. Runnning these shell scripts should give you a decent idea of ctioga2's possibilities while assuring that it did install properly.

Useful information, documentation and most up-to-date news can be found at ctioga2's website, at http://ctioga2.rubyforge.org/.

More information about Tioga and its rdoc documentation can be found at http://www.kitp.ucsb.edu/~paxton/tioga.html.

Tue 29 Mar 22:54:55 CEST 2016 Version 0.14.1