ctioga2’s types

Many of the arguments to ctioga2’s commands or options have a well-defined type. Their syntax and signification are documented here.


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.


  • 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:


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

Generated for ctioga2 version: 0.14.1