CTIOGA2(1)
π CTIOGA2(1) β Command-line interface for Tioga π
okay bestie, sit down, hydrate, and let me tell you about ctioga2, because this little manual page is giving main character energy and you're about to be obsessed β¨
πΈ NAME πΈ
ctioga2 β a command-line front-end for the Tioga plotting library
π SYNOPSIS π
ctioga2 arguments ...
π¦ DESCRIPTION π¦
So like, ctioga2 is a command-line front-end to the wonderful Tioga plotting library. No cap. Its whole vibe is plotting quickly β both data files and mathematical functions β while still letting you have a high level of control over the details if you're feeling extra π
The big glow-up compared to the old ctioga is that now you can use command files with ctioga2: every single command-line option corresponds to a command, whose name is written. Just give the command the same arguments as you'd give to the command-line option. To read a command file, feed it to the -f command-line option. iykyk π«Ά
π EXAMPLES π
Here are a few examples, both from the command-line and using the corresponding files.
ctioga2 File.datβ Produces a filePlot.pdfshowing the second column ofFile.datas a function of the first.
The corresponding command file would be:
#!/usr/bin/env ctioga2 -f
plot(File.dat)
β¨ OPTIONS β¨
π Plots
Plots
--plot DATASETβ Use the current backend to load the given datasets onto the data stack and plot them. It is literally a combo of theloadand theplot-lastcommands; you might wanna peek at their documentation for the full tea.
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=...)
-p,--plot-lastβ Plots the last dataset pushed onto the data stack (or the one specified with thewhichoption), with the current style. All aspects of the curve style (colors, markers, line styles...) can be overridden through the use of options. So yes, you can absolutely switch up the fit at the last second π
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=...)
π§ Curves styles
Set stylistic details of curves or other object drawn from data β this is where you make your plot serve π
--[no-]clippedβ Sets theclippedfor subsequent curves, until cancelled withautoas argument.
Corresponding command: clipped(boolean-or-auto)
-c,--color COLOR-OR-FALSE-OR-AUTOβ Sets the line color for subsequent curves, until cancelled withautoas argument.
Corresponding command: color(color-or-false-or-auto)
--color-map COLORMAP-OR-AUTOβ Sets the color map for the subsequent curves, until cancelled by anautoargument.
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 setscolortoauto, 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 theCONRECalgorithm 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)
--contour-minor-number INTEGER-OR-AUTOβ Sets the number of minor level lines between major ones (approx) for subsequent curves, until cancelled withautoas argument.
Corresponding command: contour-minor-number(integer-or-auto)
--contour-minor-scale FLOAT-OR-AUTOβ Sets the relative scale of minor level lines for subsequent curves, until cancelled withautoas argument.
Corresponding command: contour-minor-scale(float-or-auto)
--contour-minor-style LINE-STYLE-OR-AUTOβ Sets the minor ticks line style for subsequent curves, until cancelled withautoas argument.
Corresponding command: contour-minor-style(line-style-or-auto)
--contour-number INTEGER-OR-AUTOβ Sets the overall number of level lines for subsequent curves, until cancelled withautoas argument.
Corresponding command: contour-number(integer-or-auto)
--depth INTEGER-OR-AUTOβ Sets the depth for subsequent curves, until cancelled withautoas argument.
Corresponding command: depth(integer-or-auto)
--error-bar-color COLOR-OR-FALSE-OR-AUTOβ Sets the error bar color for subsequent curves, until cancelled withautoas argument.
Corresponding command: error-bar-color(color-or-false-or-auto)
--error-bar-color-set COLOR-OR-FALSE-SETβ Chooses a set for the error bar color of subsequent curves. Also setserror-bar-colortoauto, so that the set takes effect immediately.
Corresponding command: error-bar-color-set(color-or-false-set)
--error-bar-line-width FLOAT-OR-AUTOβ Sets the error bar line width for subsequent curves, until cancelled withautoas argument.
Corresponding command: error-bar-line-width(float-or-auto)
--error-bar-line-width-set FLOAT-SETβ Chooses a set for the error bar line width of subsequent curves. Also setserror-bar-line-widthtoauto, so that the set takes effect immediately.
Corresponding command: error-bar-line-width-set(float-set)
--fill FILL-UNTIL-OR-AUTOβ Sets the Fill until for subsequent curves, until cancelled withautoas argument.
Corresponding command: fill(fill-until-or-auto)
--fill-color COLOR-OR-AUTOβ Sets the fill color for subsequent curves, until cancelled withautoas argument.
Corresponding command: fill-color(color-or-auto)
--fill-color-set COLOR-SETβ Chooses a set for the fill color of subsequent curves. Also setsfill-colortoauto, 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 withautoas argument.
Corresponding command: fill-pattern(fill-pattern-or-auto)
--fill-set FILL-UNTIL-SETβ Chooses a set for the Fill until of subsequent curves. Also setsfilltoauto, so that the set takes effect immediately.
Corresponding command: fill-set(fill-until-set)
--fill-transparency FLOAT-OR-AUTOβ Sets the fill transparency for subsequent curves, until cancelled withautoas argument.
Corresponding command: fill-transparency(float-or-auto)
--fill-transparency-set FLOAT-SETβ Chooses a set for the fill transparency of subsequent curves. Also setsfill-transparencytoauto, 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 withautoas argument.
Corresponding command: line-cap(line-cap-or-auto)
--line-style LINE-STYLE-OR-AUTOβ Sets the line style for subsequent curves, until cancelled withautoas 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 setsline-styletoauto, so that the set takes effect immediately.
Corresponding command: line-style-set(line-style-set)
--line-width FLOAT-OR-AUTOβ Sets the line width for subsequent curves, until cancelled withautoas argument.
Corresponding command: line-width(float-or-auto)
--line-width-set FLOAT-SETβ Chooses a set for the line width of subsequent curves. Also setsline-widthtoauto, so that the set takes effect immediately.
Corresponding command: line-width-set(float-set)
-m,--marker MARKER-OR-AUTOβ Sets the marker for subsequent curves, until cancelled withautoas argument.
Corresponding command: marker(marker-or-auto)
--marker-angle FLOAT-OR-AUTOβ Sets the marker angle for subsequent curves, until cancelled withautoas argument.
Corresponding command: marker-angle(float-or-auto)
--marker-color COLOR-OR-FALSE-OR-AUTOβ Sets the marker color for subsequent curves, until cancelled withautoas argument.
Corresponding command: marker-color(color-or-false-or-auto)
--marker-color-map COLORMAP-OR-AUTOβ Sets the color map for markers for subsequent curves, until cancelled withautoas argument.
Corresponding command: marker-color-map(colormap-or-auto)
--marker-color-set COLOR-OR-FALSE-SETβ Chooses a set for the marker color of subsequent curves. Also setsmarker-colortoauto, so that the set takes effect immediately.
Corresponding command: marker-color-set(color-or-false-set)
--marker-fill-color COLOR-OR-FALSE-OR-AUTOβ Sets the marker fill color for subsequent curves, until cancelled withautoas argument.
Corresponding command: marker-fill-color(color-or-false-or-auto)
--marker-fill-color-map COLORMAP-OR-AUTOβ Sets the color map for the lines of markers for subsequent curves, until cancelled withautoas argument.
Corresponding command: marker-fill-color-map(colormap-or-auto)
--marker-fill-color-set COLOR-OR-FALSE-SETβ Chooses a set for the marker fill color of subsequent curves. Also setsmarker-fill-colortoauto, so that the set takes effect immediately.
Corresponding command: marker-fill-color-set(color-or-false-set)
bestie we are SO not done yet β there's more of this page coming, don't you dare close the tab π
--marker-line-color COLOR-OR-FALSE-OR-AUTOβ sets the marker stroke color for the curves that come after this one, and it just keeps applying until you cancel it by passingautoas the argument. β¨- Corresponding command:
marker-line-color(color-or-false-or-auto)
- Corresponding command:
--marker-line-color-map COLORMAP-OR-AUTOβ picks the color map used for the lines of markers on subsequent curves, until you cancel withauto. π- Corresponding command:
marker-line-color-map(colormap-or-auto)
- Corresponding command:
--marker-line-color-set COLOR-OR-FALSE-SETβ chooses a set for the marker stroke color of subsequent curves. Heads up bestie: this also setsmarker-line-colortoauto, so the set kicks in immediately. π- Corresponding command:
marker-line-color-set(color-or-false-set)
- Corresponding command:
--marker-line-width FLOAT-OR-AUTOβ sets the marker line width for subsequent curves, until cancelled withauto.- Corresponding command:
marker-line-width(float-or-auto)
- Corresponding command:
--marker-min-scale FLOAT-OR-FALSE-OR-AUTOβ sets the marker scale for subsequent curves, until cancelled withauto.- Corresponding command:
marker-min-scale(float-or-false-or-auto)
- Corresponding command:
--marker-scale FLOAT-OR-AUTOβ sets the marker scale for subsequent curves, until cancelled withauto.- Corresponding command:
marker-scale(float-or-auto)
- Corresponding command:
--marker-scale-set FLOAT-SETβ chooses a set for the marker scale of subsequent curves. And again β it also setsmarker-scaletoautoso your set takes effect immediately. π«Ά- Corresponding command:
marker-scale-set(float-set)
- Corresponding command:
--marker-set MARKER-SETβ chooses a set for the marker of subsequent curves, and also setsmarkertoautoso it takes effect right away.- Corresponding command:
marker-set(marker-set)
- Corresponding command:
--path-style TEXT-OR-AUTOβ sets the path style for subsequent curves, until cancelled withauto.- Corresponding command:
path-style(text-or-auto)
- Corresponding command:
--path-style-set TEXT-SETβ chooses a set for the path style of subsequent curves. Yep, it also setspath-styletoautoso it applies immediately.- Corresponding command:
path-style-set(text-set)
- Corresponding command:
--region-side REGION-SIDE-OR-AUTOβ sets the region side for subsequent curves, until cancelled withauto.- Corresponding command:
region-side(region-side-or-auto)
- Corresponding command:
--region-side-set REGION-SIDE-SETβ chooses a set for the region side of subsequent curves. And (say it with me) it also setsregion-sidetoauto, so the set takes effect immediately. π- Corresponding command:
region-side-set(region-side-set)
- Corresponding command:
--reuse-style OBJECTβ after you use this, the next curve gets the same style as the curve whose name you gave as the first argument (that's the name you gave to the/id=option toplot). Literally style-stealing, iconic. π- Corresponding command:
reuse-style(object)
- Corresponding command:
--skipβ acts as if one (ornumber) dataset had been drawn with respect to the style of the next dataset to be drawn. Like a ghost curve that only exists to bump the style counter. π»- Optional arguments:
number - Corresponding command:
skip(,option=...)
- Optional arguments:
--[no-]split-on-nanβ so in general,NaNs (not a number, aka invalid data points in the dataset) are silently ignored, no drama. When this option is on, the lines ofxy-plot-styleplots get split whenever they hit aNaN. βοΈ- Corresponding command:
split-on-nan(boolean-or-auto)
- Corresponding command:
--zaxis TEXT-OR-AUTOβ sets the name of the zaxis for the subsequent curves. This must be an axis that has been previously created usingnew-zaxis. This axis will be used to display the colormaps of the following curve.- Corresponding command:
zaxis(text-or-auto)
- Corresponding command:
π Legends π
Commands to specify legends and tweak their look. The glow-up station, fr.
--[no-]auto-legendβ when this is in effect (off by default), every dataset gets a legend β its 'dataset name' β unless another legend is manually specified.- Corresponding command:
auto-legend(boolean)
- Corresponding command:
-l,--legend TEXTβ sets the legend for the next dataset. Overridden by thelegendoption to theplotcommand.- Corresponding command:
legend(text)
- Corresponding command:
--legend-inside ALIGNED-POINTβ using this sets the position of the legends for the current (sub)plot inside it, at the exact location you give. As a shortcut,legend-insidealso takes all the options thatlegend-styletakes, with the same effect. π¦- Optional arguments:
classdyframe_capframe_colorframe_fill_colorframe_fill_patternframe_fill_transparencyframe_paddingframe_radiusframe_shapeframe_styleframe_widthidpicto_heightpicto_to_textpicto_widthscalesymbol_scaletext_scalevpadding - Corresponding command:
legend-inside(aligned-point,option=...)
- Optional arguments:
--legend-line TEXTβ adds a line of text to the legend that isn't attached to any curve. The options controlling the aspect of the legend are documented in thedefine-text-stylecommand.- Optional arguments:
alignalignmentanglecolorhalignjustificationpositionscaleshifttext_aligntext_widthvalign - Corresponding command:
legend-line(text,option=...)
- Optional arguments:
--legend-multicolβ following legends get layed out in multiple columns, until a call tolegend-multicol-end.- Optional arguments:
columnsdx - Corresponding command:
legend-multicol(,option=...)
- Optional arguments:
--legend-multicol-endβ stop layout out legends in several columns. π- Corresponding command:
legend-multicol-end()
- Corresponding command:
--legend-styleβ 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 ofvpadding;vpadding: the space left between the bottom of a line and the top of the next one;scale: the overall scale of the legendstext-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:
classdyframe_capframe_colorframe_fill_colorframe_fill_patternframe_fill_transparencyframe_paddingframe_radiusframe_shapeframe_styleframe_widthidpicto_heightpicto_to_textpicto_widthscalesymbol_scaletext_scalevpadding - Corresponding command:
legend-style(,option=...)
π Switch between different kinds of plots π
How to switch between different kinds of plot types. Mix and match, main character energy only.
--contourβ switch to contour plots for later curves. Contour plots need three columns (X,Y,Z). They have major and minor lines. πΊοΈ- Corresponding command:
contour()
- Corresponding command:
--histogramβ switch to drawing histograms. π- Optional arguments:
compute_dxcumulativegapintra_sep - Corresponding command:
histogram(,option=...)
- Optional arguments:
--xy-parametricβ 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:
z1z2z3z4 - Corresponding command:
xy-parametric(,option=...)
- Optional arguments:
--xy-plotβ switch (back) to standard XY plots (that's ctioga's default, bestie). π―- Corresponding command:
xy-plot()
- Corresponding command:
--xyz-mapβ switch to XYZ maps, ie plots where the color at a XY location is given by its Z value.- Corresponding command:
xyz-map()
- Corresponding command:
πΈ Plot coordinates πΈ
Plot coordinates. Where your stuff actually lives.
--margin FLOATβ leaves a margin around the data points. Expressed in relative size of the whole plot.- Corresponding command:
margin(float)
- Corresponding command:
--xfact FLOATβ alias forxscale.- Corresponding command:
xfact(float)
- Corresponding command:
--[no-]xlogβ uses a logarithmic scale for the X axis.- Corresponding command:
xlog(boolean)
- Corresponding command:
--xoffset FLOATβ adds the given offset to all X coordinates.- Corresponding command:
xoffset(float)
- Corresponding command:
--xrange PARTIAL-FLOAT-RANGEβ sets the range of the X coordinates.
Important note: when the axis is in log range (usingxlog), the numbers you give are not the or ylog values, but theirlog10, so that to display X values from1e-2to1e3, use:
xyrange -2:3
- Corresponding command:
xrange(partial-float-range)
--xscale FLOATβ multiplies the X coordinates by this factor.- Corresponding command:
xscale(float)
- Corresponding command:
--yfact FLOATβ alias foryscale.- Corresponding command:
yfact(float)
- Corresponding command:
--[no-]ylogβ uses a logarithmic scale for the Y axis.- Corresponding command:
ylog(boolean)
- Corresponding command:
--yoffset FLOATβ adds the given offset to all Y coordinates.- Corresponding command:
yoffset(float)
- Corresponding command:
--yrange PARTIAL-FLOAT-RANGEβ sets the range of the Y coordinates.
Important note: when the axis is in log range (usingylog), the numbers you give are not the or ylog values, but theirlog10, so that to display Y values from1e-2to1e3, use:
yyrange -2:3
- Corresponding command:
yrange(partial-float-range)
--yscale FLOATβ multiplies the Y coordinates by this factor.- Corresponding command:
yscale(float)
- Corresponding command:
β¨ Graphics primitives β¨
Tioga graphics primitives. Little building blocks, so cute.
--draw DRAWING-SPECβ tries to emulate the old--drawbehavior ofctioga. Don't use it for new things.- Corresponding command:
draw(drawing-spec)
- Corresponding command:
--draw-arrow POINT POINTβ draws arrow on the current plot, using the given style. For more information on the available options, see thedefine-arrow-stylecommand. πΉ- Optional arguments:
capclassclippedcolordepthhead_anglehead_colorhead_markerhead_scaleidline_styleline_widthstyletail_angletail_colortail_markertail_scalewidth - Corresponding command:
draw-arrow(point,point,option=...)
- Optional arguments:
--draw-box POINT POINTβ draws box on the current plot, using the given style. For more information on the available options, see thedefine-box-stylecommand. π¦- 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=...)
- Corresponding command:
--draw-color-listPOINT DIMENSION β literally draws the whole list of every named color right onto the current plot β¨- Optional arguments:
class,clipped,columns,depth,id,padding,scale - Corresponding command:
draw-color-list(point,dimension,option=...)
- Optional arguments:
--draw-color-set-listPOINT DIMENSION β same energy, but it's the list of all the color sets on the current plot π¨- Optional arguments:
class,clipped,depth,exclude,id,include,scale - Corresponding command:
draw-color-set-list(point,dimension,option=...)
- Optional arguments:
--draw-contourLEVEL β draws contour on the current plot, directly, no detours π- Optional arguments:
class,clipped,closed,color,depth,id,style,width - Corresponding command:
draw-contour(level,option=...)
- Optional arguments:
--draw-imageFILE TOP-LEFT BOTTOM-RIGHT β draws an image on the current plot using the style you gave it. Wanna know what options exist? Go read thedefine-image-stylecommand, bestie πΌοΈ- Optional arguments:
aspect_ratio,auto_rotate,class,clipped,depth,id,transparency - Corresponding command:
draw-image(file,top-left,bottom-right,option=...)
- Optional arguments:
--draw-legend-pictogramPOINT OBJECT β draws the legend pictogram for the curve you handed it π·οΈ- Optional arguments:
class,clipped,depth,id,width - Corresponding command:
draw-legend-pictogram(point,object,option=...)
- Optional arguments:
--draw-linePOINT POINT β draws a line on the current plot with the given style. For what you can actually tweak, see thedefine-line-stylecommand π- 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=...)
- Optional arguments:
--draw-line-style-listPOINT DIMENSION β draws the list of every named line style straight onto the current plot π₯- Optional arguments:
class,clipped,columns,depth,id,padding,scale - Corresponding command:
draw-line-style-list(point,dimension,option=...)
- Optional arguments:
--draw-markerPOINT MARKER β draws a marker on the current plot with the given style. The deets on the options live in thedefine-marker-stylecommand π- 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=...)
- Optional arguments:
--draw-marker-listPOINT DIMENSION β 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=...)
- Optional arguments:
--draw-marker-set-listPOINT DIMENSION β and this one draws the list of all the marker sets on the current plot π- Optional arguments:
class,clipped,depth,exclude,id,include,scale - Corresponding command:
draw-marker-set-list(point,dimension,option=...)
- Optional arguments:
--draw-oriented-linePOINT DIMENSION β draws an oriented-line on the current plot with the given style. Options? Thedefine-oriented-line-stylecommand has your back π«- 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=...)
- Optional arguments:
--draw-string-markerPOINT TEXT β draws a marker on the current plot with the given style. Yeah, same deal β go peep thedefine-marker-stylecommand for the option list π€- 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=...)
- Optional arguments:
--draw-tangentDATA-POINT β draws a tangent on the current plot with the given style. The options are documented under thedefine-arrow-stylecommand π- 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=...)
- Optional arguments:
--draw-textPOINT TEXT β draws text on the current plot with the given style. Every knob and dial is described in thedefine-text-stylecommand βοΈ- 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=...)
- Optional arguments:
β¨ The 'direct' backend: Direct format β¨
The commands in this group drive the behaviour of the direct backend; see its documentation for more information π
--directβ selects the'direct'backend- Corresponding command:
direct()
- Corresponding command:
π§ The 'gnuplot' backend: Gnuplot files π§
The commands in this group drive the behaviour of the gnuplot backend; see its documentation for more information
--gnuplotβ selects the'gnuplot'backend- Optional arguments:
range,samples,vars - Corresponding command:
gnuplot(,option=...)
- Optional arguments:
--gnuplot-rangeRANGE β the plotting X range, like0:2π- Corresponding command:
gnuplot-range(range)
- Corresponding command:
--gnuplot-samplesSAMPLES β the number of samples- Corresponding command:
gnuplot-samples(samples)
- Corresponding command:
--gnuplot-varsVARS β a colon-separated override of local variables, such asa=1;b=3;c=5- Corresponding command:
gnuplot-vars(vars)
- Corresponding command:
π The 'math' backend: Mathematical functions π
The commands in this group drive the behaviour of the math backend; see its documentation for more information
--mathβ selects the'math'backend- Optional arguments:
log,samples,trange,xrange - Corresponding command:
math(,option=...)
- Optional arguments:
--[no-]math-logβ space samples logarithmically π- Corresponding command:
math-log(log)
- Corresponding command:
--math-samplesSAMPLES β the number of points- Corresponding command:
math-samples(samples)
- Corresponding command:
--math-trangeTRANGE β T range (a:b) (parametric plot)- Corresponding command:
math-trange(trange)
- Corresponding command:
--math-xrangeXRANGE β X range (a:b)- Corresponding command:
math-xrange(xrange)
- Corresponding command:
π¦ The 'smath' backend: Mathematical functions (multi-D) π¦
The commands in this group drive the behaviour of the smath backend; see its documentation for more information
--smathβ selects the'smath'backend- Optional arguments:
samples,urange,usamples,vrange,vsamples - Corresponding command:
smath(,option=...)
- Optional arguments:
--smath-samplesSAMPLES β number of samples (default, overriden by variable-specific specs)- Corresponding command:
smath-samples(samples)
- Corresponding command:
--smath-urangeURANGE β U range (a:b)- Corresponding command:
smath-urange(urange)
- Corresponding command:
--smath-usamplesUSAMPLES β number of U samples- Corresponding command:
smath-usamples(usamples)
- Corresponding command:
--smath-vrangeVRANGE β V range (a:b)- Corresponding command:
smath-vrange(vrange)
- Corresponding command:
--smath-vsamplesVSAMPLES β number of V samples- Corresponding command:
smath-vsamples(vsamples)
- Corresponding command:
πΈ The 'text' backend: Text format πΈ
The commands in this group drive the behaviour of the text backend; see its documentation for more information
--csvβ 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=...)
- Optional arguments:
--text-colCOL β which columns to use when the@1:2syntax is not used- Corresponding command:
text-col(col)
- Corresponding command:
--text-header-lineHEADER-LINE β regular expression indicating the header line (containing column names), defaulting to/^##/- Corresponding command:
text-header-line(header-line)
- Corresponding command:
--text-parametersPARAMETERS β regular expression for extracting parameters from a file. Defaults tonil(ie nothing)- Corresponding command:
text-parameters(parameters)
- Corresponding command:
--text-separatorSEPARATOR β the columns separator. Defaults to/ +/- Corresponding command:
text-separator(separator)
- Corresponding command:
--text-skipSKIP β number of lines to be skipped at the beginning of the file- Corresponding command:
text-skip(skip)
- Corresponding command:
--[no-]text-splitβ if true, splits files into subsets on blank/non number lines βοΈ- Corresponding command:
text-split(split)
- Corresponding command:
π LaTeX π
Commands providing control over the LaTeX output (preamble, packages...) β yeah, the whole typesetting situation π
--preambleTEXT β adds the given string to the LaTeX preamble of the output.- Corresponding command:
preamble(text)
- Corresponding command:
--set-global-fontβ set global font. Sets the size of everything, including that of text that has already been used. π yes, everything, even the stuff you already wrote.- Optional arguments:
size - Corresponding command:
set-global-font(,option=...)
- Optional arguments:
--useTEXT β adds a command to include the LaTeX package into the preamble. The arguments, if given, are given within [square brackets].- Optional arguments:
arguments - Corresponding command:
use(text,option=...)
- Optional arguments:
--utf8β makes ctioga2 use UTF-8 for all text. It is exactly equivalent to the commandpreamblewith the argument:
sepackage[utf8]{inputenc}sepackage[T1]{fontenc}
- Corresponding command:
utf8()
π Subplots and assimilated π
Subplots and assimilated
--endβ leaves the current subobject. π bye bestie- Corresponding command:
end()
- Corresponding command:
--frame-marginsFRAME-MARGINS β sets the margins for the current plot π. Margins are literally the same thing as the position (like the one you'd specify for an inset). Heads up bestie: using this inside an inset or a more complex plot might give you unexpected results, no cap. Its main character moment is controlling the padding around simple plots.
The options override the contents of the margin, which makes it super easy to set all the dimensions to one value and only override the ones you actually need:
frame-margins 2mm /left=1cm
This sets all the margins around the side to 2mm except 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=...)
--gradientCOLOR COLOR β every curve between this command and the matchingendgets its color set to a weighted average of the two colors you passed. It's giving gradient. It's giving slay π.
Optional arguments: class, id
Corresponding command: gradient(color,color,option=...)
--hideOBJECTS β hides all the named objects in the list. Genuinely iconic for making animations β¨.
Optional arguments: show
Corresponding command: hide(objects,option=...)
--insetBOX β starts a brand new inset inside the box you give it.
And if no graph has been started yet? It just creates a new graph using the given box. Basically it does what it looks like it should do π«Ά.
Optional arguments: class, id
Corresponding command: inset(box,option=...)
--next-insetBOX β has the same effet asendfollowed byinset. (Yes, "effet" β we keep it exactly as the page says it, periodt π )
Highkey useful for chaining subgraphs. If that's your vibe, you might be interested in the grid box specification and setup-grid.
Optional arguments: class, id
Corresponding command: next-inset(box,option=...)
--paddingDIMENSION β when theframe-marginsis set to automatic,ctioga2leaves that much space around the plot on the sides where there are no labels.
Corresponding command: padding(dimension)
--plot-scaleFLOAT β applies a scaling factor to the whole current subplot. Depending on thewhatoption (default istext), the scale applies to:- text (
'text'or'both') - marker size (
'text'or'both') - line widths (
'lines'or'both')
- text (
Scaling also applies to all the elements of the plot that were added before the call to plot-scale. Not me noticing that detail, but it's important fr fr π
Optional arguments: what
Corresponding command: plot-scale(float,option=...)
--regionβ the curves up to the correspondingendwill 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 theregion-sidecommand (or the corresponding option toplot).
Optional arguments: class, color, id, pattern, reversed_color, reversed_pattern, reversed_transparency, transparency
Corresponding command: region(,option=...)
--reopenOBJECT β reopens a previously finished container, like a subplot, a region or a gradient π¦. Just hand it the unique name you gave as the/id=option to the first command.
Corresponding command: reopen(object)
--root-plotβ 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=...)
--setup-gridTEXT β sets up a grid of the given layout (like2x1). After this command, arguments such asgrid:0,1can be used as the box argument of theinsetandnext-insetcommands.
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 4 times larger than the first. Math but make it cute π
Optional arguments: bottom, dx, dy, left, right, top
Corresponding command: setup-grid(text,option=...)
--text-adjust-modeTEXT-ADJUST-MODE β when this is on (and it's the default),ctioga2tries to be smart about the size of the text bits around the plot β¨. But ngl, that can be bothersome at times, so you can disable it with this command.
Corresponding command: text-adjust-mode(text-adjust-mode)
π Axes and labels π
--axis-styleAXIS β this command sets various aspects of the style of the given axis through its various options, which are documented in more detail in thedefine-axis-stylecommand β excepted for theticksbit, which is documented in thetickscommand π.
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=...)
--background-gridCOLOR-OR-FALSE β shortcut to set the color for the left and bottom axes π
Optional arguments: cap, style, width
Corresponding command: background-grid(color-or-false,option=...)
--background-linesAXIS COLOR-OR-FALSE β 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=...)
--bottomAXIS-DECORATION β sets the type of the bottom axis.
The options have the same meaning as for define-axis-style, so go read that command for more info π.
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=...)
--clear-axesβ removes all the axes and their associated labels. Clean slate, bestie π§Ήβ¨
Corresponding command: clear-axes()
--drawing-frameβ sets up a drawing frame, i.e. a frame in which the top-left point is at0,0, with X and Y values positive over the whole frame, and counted in centimeters (or with the unit given using the/unitsoption, i.e./units=mmexpressed in millimeters, or/units=12ptexpressed in multiple of 12 TeX points). It's giving artsy π¨
Optional arguments: units
Corresponding command: drawing-frame(,option=...)
--label-styleLABEL β sets the style of the given label (see thetype labelfor more information). Seedefine-text-stylefor the detailed meaning of the options π.
The option text lets you also set the text of the label (but it does not work for ticks, sadly).
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 β no cap π
Optional arguments: align, alignment, angle, color, halign, justification, loc, position, scale, shift, text, text_align, text_width, valign
Corresponding command: label-style(label,option=...)
--leftAXIS-DECORATION β 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=...)
--new-zaxisTEXT β creates a named Z axis that can display information from Z color maps ππ
Optional arguments for this one: 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=...)
--no-titleβ poof π¨ the title of the current plot is gone.
Corresponding command: no-title()
--no-xlabelβ yeets the X label off the current plot. bye bestie π
Corresponding command: no-xlabel()
--no-ylabelβ same energy, but for the Y label of the current plot.
Corresponding command: no-ylabel()
--rightAXIS-DECORATION β sets the type of the right axis.
The options hit exactly the same as for define-axis-style, so go read that one if you need the deets π
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=...)
--ticksAXIS β this one is your remote control for where the major and minor ticks land, plus what their labels actually say, for whichever axis you point at π― Options you can pass:formatβ the format of the tick labels, written in asprintf-like syntax (more on that below)format-lastβ the format of the last of the tick labels (genuinely useful when you wanna sneak in an overall "power-of-ten" factor)majorβ a space- or comma-separated list of the positions of the major (labeled) ticksminorβ same thing, but for the minor tickslabelβ a comma-separated list of the tick labels (and it must have the same number of elements as themajorlist does). If you absolutely have to include a comma inside, then use||as a separator instead.
Format is a normal sprintf format, plus these extra special codes:
%pβ the "common power of 10": divide your tick values by 10 to the power%pand the smallest absolute value lands between 1 and 10 (zero excluded, obviously)%b...β the tick value divided by this common power of 10. You must follow this spec with a usualsprintfformat:%b.3gwould 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=...)
-t,--titleTEXT β sets the title of the current plot. main character moment fr π
Optional arguments: align, alignment, angle, color, halign, justification, loc, position, scale, shift, text_align, text_width, valign.
Corresponding command: title(text,option=...)
--topAXIS-DECORATION β sets the type of the top axis.
Again, the options mean the same thing as for define-axis-style β that command is your study guide π
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=...)
--x2β switches to using the top axis for the X axis for all the subsequent curves, and turns on full decoration for the right axis. It's literally just a shortcut for this β¨
xaxis top
axis-style top /decoration=full
Corresponding command: x2()
--xaxisAXIS β sets the default axis for the X axis, so every subsequent command that leans on default axes (thinkplot,xrange,yrange...) knows what's up.
Corresponding command: xaxis(axis)
-x,--xlabelTEXT β 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=...)
--y2β switches to using the right axis for the 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()
--yaxisAXIS β sets the default axis for the Y axis for all subsequent commands that rely on default axes (likeplot,xrange,yrange...).
Corresponding command: yaxis(axis)
-y,--ylabelTEXT β 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=...)
π Background π
Commands that deal with how the background of a plot looks (background lines are not invited to this party β they're linked to axes, different vibe entirely).
--backgroundCOLOR-OR-FALSE β sets the background color for the current (and subsequent?) plot.
Corresponding command: background(color-or-false)
--watermarkTEXT β 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=...)
π Default styles π
Commands for defining default styles, bestie.
Every one of these takes the selector of the style you're defining. It's a CSS-like selector β it works off #id and .class, and it uses #parentality. So if you define a style for .insets #stuff, that style applies to an object named stuff, but only when it's sitting inside another object that carries the .insets class. Nested, iykyk π
ctioga2 does not support changing a style after it's been used. Depending on the context, it may affect only the objects that come after, or all the objects that were created from the very beginning. For safety, only define styles before you issue any graphics command. No cap. π¨
--define-arrow-styleTEXT β sets the default style for arrows. Every arrow style descends from the base style. Wanna use a different style thanbase? Pass its name as the/base-styleoption to thedraw-arrowcommand.
What the style parameters actually mean:
color,styleandwidth: same as indefine-line-stylehead-marker,tail-marker: a marker to be used for the head or for the tailhead-scale,tail-scale: scale of the head or tail markershead-angle,tail-angle: rotate the head or the tail by that many degreeshead-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=...)
--define-axis-styleTEXT β sets the style for a whole axis. All axis styles descend from the base style. Horizontal and vertical axis styles descend from thexandystyles, and plot sides get styled with theleft,right,topandbottomstyles.
Axis styles have so many parameters, buckle up:
axis-label-andtick-label-parameters are title style parameters β their meaning is given indefine-title-style, and they affect ticks and axis labelsdecoration: an axis-decoration that specifies which ticks and tick labels to drawbackground-lines-parameters define the style of background lines, exactly as indefine-line-style
--define-axis-style TEXT(continued) β the optional arguments you can hand it are:axis_label_alignmentaxis_label_angleaxis_label_coloraxis_label_halignaxis_label_justificationaxis_label_locaxis_label_positionaxis_label_scaleaxis_label_shiftaxis_label_textaxis_label_text_alignaxis_label_text_widthaxis_label_valignbackground_lines_capbackground_lines_colorbackground_lines_stylebackground_lines_widthdecorationline_widthlocationlogmajor_tick_lengthmajor_tick_widthminor_tick_lengthminor_tick_widthoffsetstroke_colortick_label_alignmenttick_label_angletick_label_colortick_label_haligntick_label_justificationtick_label_positiontick_label_scaletick_label_shifttick_label_text_aligntick_label_text_widthtick_label_valignticks_formatticks_format_lastticks_labelsticks_majorticks_major_deltaticks_major_numberticks_major_septicks_minorticks_minor_deltaticks_minor_numberticks_minor_sep_minticks_sidetransformβ¨
Corresponding command: define-axis-style(text,option=...)
--define-background-style TEXTβ sets the style for the plot background, bestie π All background styles descend from the base style. On top of that, a plot's background gets changed by the style namebackground.
Meaning of the style parameters:
watermark: the text of the watermark- all
watermark_styles have the same meaning as indefine-text-style, because 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=...)
--define-box-style TEXTβ sets the default style for boxes π¦ All box styles descend from the base style. Wanna use a style that isn't base? Just pass its name as the/base-styleoption to thedraw-boxcommand, periodt.
Meaning of the style parameters:
color,styleandwidth: same as indefine-line-stylefill-color: fill color for the boxfill-transparency: the transparency for the fill, from0to1
Optional arguments: cap color fill_color fill_pattern fill_transparency radius shape style width
Corresponding command: define-box-style(text,option=...)
--define-curve-style TEXTβ sets the default style for the named plot background, no cap π
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=...)
--define-image-style TEXTβ sets the default style for the named image πΌοΈ
Optional arguments: aspect_ratio auto_rotate transparency
Corresponding command: define-image-style(text,option=...)
--define-legend-style TEXTβ sets the style for legends, iconic behavior fr fr π
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=...)
--define-line-style TEXTβ sets the default style for lines π All line styles descend from the base style. Wanna use a style that isn't base? Pass its name as the/base-styleoption to thedraw-linecommand.
Meaning of the style parameters:
color: the color of the line, seecolorstyle: the line style, seeline-stylewidth: the line width (in points)
lowkey the way these two hit different is everything:
--define-line-style * /color=Pink
makes all lines pink (unless overridden by the /color option to draw-line), while
--define-line-style .pink /color=Pink
only affects those that were given the /class=pink style option. iykyk π
Optional arguments: cap color style width
Corresponding command: define-line-style(text,option=...)
--define-marker-style TEXTβ 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-styleoption to thedraw-markerordraw-string-markercommands.
Meaning of the style parameters:
alignment,justification,angle,colorandscale: as indefine-text-stylefill-colorandstroke_color: markers are both stroked and filled, so you can control all colors in one go usingcolor, or specify each withfill-colorandstroke_colorfont: is a PDF font number (from1to14), only used for marker stringshorizontal-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=...)
--define-oriented-line-style TEXTβ 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=...)
--define-style TEXTβ the mother of all style-setters, bestie, it's giving main character energy π
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=...)
--define-text-style TEXTβ 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-styleoption to thedraw-textcommand.
Meaning of the style parameters:
alignment: vertical alignmentjustification: horizontal alignmentangle: angle in degrees to the horizontal (or default orientation in some cases)color: text colorscale: text scale
Optional arguments: alignment angle color halign justification position scale shift text_align text_width valign
Corresponding command: define-text-style(text,option=...)
--define-title-style TEXTβ sets the style for the title π All title styles descend from the base style. On top of that, the title of a plot is addressed by the style nametitle.
Meaning of the style parameters:
alignment,justification,angle,colorandscale: as indefine-text-styletext: sets the title textloc: the side on which to display the title, a locationshift: 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=...)
--load-style FILE- Corresponding command:
load-style(file)
π Output setup π
okay so this whole group is about making output files exist, in all their various aspects, and honestly it's giving backstage-pass energy:
- where the output file actually lives
- post-processing (and yes, that includes auto-display, we love a dramatic reveal)
- cleanup...
--[no-]cleanβ when this is on (which is the default, periodt),ctioga2automatically cleans up the intermediate files that Tioga makes. But lowkey, when LaTeX fails on you, those intermediate files are the only witnesses π, so turn this off if you wanna peek inside them.- Corresponding command:
clean(boolean)
- Corresponding command:
--[no-]cleanup-pdfβ turn this on andctioga2runs the PDF it made through ghostscript to clean it up. It's on by default ifctioga2can find thegsexecutable. (nogs, no cleanup, that's the vibe.)- Corresponding command:
cleanup-pdf(boolean)
- Corresponding command:
--dependencies FILEβ saves the dependencies as a Makefike into the file name you give it.- Corresponding command:
dependencies(file)
- Corresponding command:
--[no-]epsβ when this is on, every PDF file produced gets converted to EPS using thepdftopsprogram (from the xpdf tools suite, iykyk).- Corresponding command:
eps(boolean)
- Corresponding command:
--[no-]markβ when this is on β and it is the default, because it comes in very useful β the'title'field of the PDF informations gets set to the command-line that resulted in that PDF file. Disable it if you don't want any info leaking out π.
heads up bestie: this will not log the values of theCTIOGA2_PREandCTIOGA2_POSTvariables, so if you make heavy use of those, you might still end up with a different output.
- Corresponding command:
mark(boolean)
-n,--name FIGURE_NAMEβ 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, okay? That's a whole separate thing, set with thetitlecommand. Don't mix them up π
If the name contains a %, ctioga2 reads it as a printf-like format and 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. iconic.
- Corresponding command:
name(figure name)
--openβ usesopen(available on MacOS) to view the PDF files produced byctioga2.- Corresponding command:
open()
- Corresponding command:
-o,--output FIGURE_NAMEβ writes a figure with the given name (seename) and keeps the current state. This is the one you use to create an animation π¬.- Corresponding command:
output-now(figure name)
- Corresponding command:
--output-and-resetβ writes the current figure and starts a fresh one. All the non-graphical information is kept (curves loaded, figure names, preamble, and so on).- Corresponding command:
output-and-reset()
- Corresponding command:
-O,--output-directory TEXTβ sets the directory to which files will be plot. It defaults to the current directory.- Corresponding command:
output-directory(text)
- Corresponding command:
-r,--page-size TEXTβ sets the size of the output PDF file, in real units. Takes arguments in the form of12cm x 3in(spaces can be omitted, we're flexible like that).- Optional arguments:
count-legend - Corresponding command:
page-size(text,option=...)
- Optional arguments:
--png RESOLUTIONβ turns all produced PDF files into PNG images of the given resolution usingconvert. 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:
oversamplingpdftoppmscale - Corresponding command:
png(resolution,option=...)
- Optional arguments:
--resolution FLOATβ by default,ctioga2has a resolution of 1/100th of a postscript point. That is clearly enough for most tasks, but you can increase it if 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, bestie.
- Corresponding command:
resolution(float)
--[no-]svgβ when this feature is on, all produced PDF files are converted to SVG using the neatpdf2svgprogram. so cute, so vector.- Corresponding command:
svg(boolean)
- Corresponding command:
--viewer TEXTβ sets the command for viewing the PDF file afterctioga2has been run.- Corresponding command:
viewer(text)
- Corresponding command:
-X,--xpdfβ uses xpdf to view the PDF files produced byctioga2.
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
opencommand - on linux, it tries,
mime-open, and if that is missing, falls back to commonly available PDF viewers. - Corresponding command:
xpdf()
π¦ Data stack manipulation π¦
Commands for manipulation of the data stack. it's giving stacked-decks energy, but make it datasets π
--append DATASETβ 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 runningloadand thenjoin-datasets.- Optional arguments:
asignore_hookswhere - Corresponding command:
append(dataset,option=...)
- Optional arguments:
--apply-formula TEXTβ applies a formula to the last dataset (or the named one).- Optional arguments:
namewhich - Corresponding command:
apply-formula(text,option=...)
- Optional arguments:
--binβ 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:
columndeltamaxminnamenormalizenumberwhich - Corresponding command:
bin(,option=...)
- Optional arguments:
--compute-contour FLOATβ 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. go off π
- Optional arguments:
which - Corresponding command:
compute-contour(float,option=...)
--dataset-hook COMMANDSβ 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)
- Corresponding command:
--dataset-hook-add COMMANDSβ adds the given commands to the dataset hook. Seedataset-hookfor more information about the dataset hook.- Corresponding command:
dataset-hook-add(commands)
- Corresponding command:
--dataset-hook-clearβ clears the dataset hook. Seedataset-hookfor more information.- Corresponding command:
dataset-hook-clear()
- Corresponding command:
--drop STORED-DATASETβ 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. declutter your stack, bestie π§Ή
- Corresponding command:
drop(stored-dataset)
-j,--join-datasetsβ pops the last two (ornumber, if it is specified) datasets from the stack, concatenates them (older last) and push them back onto the stack. Thenameoption can be used to give a name to the new dataset.- Optional arguments:
namenumberwhich - Corresponding command:
join-datasets(,option=...)
- Optional arguments:
-L,--load DATASETβ 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:
asignore_hooksnamewhere - Corresponding command:
load(dataset,option=...)
--make-contour FLOAT- Optional arguments:
asignore_hooksnamewherewhich - Corresponding command:
make-contour(float,option=...)
- Optional arguments:
--merge-datasetsβ 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 thecolumnsoption 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. obsessed with a little 3D moment π§
- Optional arguments:
columnsnumberprecisionwhich - Corresponding command:
merge-datasets(,option=...)
-P,--print-datasetβ prints to standard output data contained in the last dataset pushed onto the stack, or the given stored dataset if thewhichoption is given.- Optional arguments:
savewhich - Corresponding command:
print-dataset(,option=...)
- Optional arguments:
--show-stackβ 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. we've all been there π
- Corresponding command:
show-stack()
--xy-reglin
This command will get documented some day.
- Optional arguments:
linearwhich - Corresponding command:
xy-reglin(,option=...)
π Introspection π
Commands displaying information about the internals of ctioga2, such as known types/commands/backends... look inside the machine, bestie π
--edit-command TEXTβ edit the given command in an editor. It will only work from the top directory of actioga2source tree.- Optional arguments:
doc - Corresponding command:
edit-command(text,option=...)
- Optional arguments:
--edit-group TEXTβ edit the given group in an editor. It will only work from the top directory of actioga2source tree.- Corresponding command:
edit-group(text)
- Corresponding command:
--edit-type TEXTβ opens up the given type in your editor so you can poke at it. Heads up bestie, this only works if you're sitting in the top directory of actioga2source tree, so no trying it from just anywhere π
Corresponding command: edit-type(text)
--list-commandsβ shows you every single commandctioga2knows about. the whole roster, periodt β¨
Optional arguments: format raw
Corresponding command: list-commands(,option=...)
--list-groupsβ lists all the command groupsctioga2knows about, all organized and cute π
Optional arguments: raw
Corresponding command: list-groups(,option=...)
--list-stylesβ lists every available color set, marker set, and all that aesthetic goodness. it's giving palette reveal π
Optional arguments: raw
Corresponding command: list-styles(,option=...)
--list-typesβ lists all the typesctioga2knows about π¦
Optional arguments: raw
Corresponding command: list-types(,option=...)
--version-rawβ prints the raw version number with zero extra decoration and no newline. literally just the number, no vibes attached π
Corresponding command: version-raw()
π§ Filters π§
okay so the commands in this group act upon the last dataset pushed unto the data stack β think of them as filters, bestie π«Ά
--avg-dupβ installs theavg-dup-lastcommand as a dataset hook (peepdataset-hook): every dataset acquired after this is switched on will get averaged if it has identical successive values of X.
Corresponding command: avg-dup()
--avg-dup-lastβ averages successive points that have identical X values. ngl this algorithm is naive about the min/max values and averages them right along with everything else, even though you might expect something smarter π
If you wanna average over all X values when they're not successive in the dataset, you should run sort-last first.
Optional arguments: mode
Corresponding command: avg-dup-last(,option=...)
--cherry-pick TEXTβ installs thecherry-pick-lastcommand as a dataset hook (peepdataset-hook): every point where the formula returns false gets removed for subsequent datasets π
Corresponding command: cherry-pick(text)
--cherry-pick-last TEXTβ removes the data from the last dataset on the data stack wherever the formula returns false.
See also the cherry-pick command if you wanna apply that selection to all the datasets, not just the last one.
fr fr, you might find it way easier to just use the /where option of the plot or load commands π
Corresponding command: cherry-pick-last(text)
--smooth INTEGERβ installs thesmooth-lastcommand as a dataset hook (peepdataset-hook): from this point on, all the datasets get smoothed β¨
Corresponding command: smooth(integer)
--smooth-last INTEGERβ smooths the data with a simple (naive even) gaussian filter. perfect for those 'lines to guide the eye' moments π
Corresponding command: smooth-last(integer)
--sortβ installs thesort-lastcommand as a dataset hook (peepdataset-hook): all subsequent datasets get sorted according to their X values. so organized β¨
Corresponding command: sort()
--sort-lastβ sorts the last dataset pushed unto the stack according to X values. can be used as a filter π¦
Heads up: this command sorts in-place.
See also sort.
Corresponding command: sort-last()
--trim INTEGERβ installs thetrim-lastcommand as a dataset hook (peepdataset-hook): all subsequent datasets get trimmed to keep only every *n*th point.
Corresponding command: trim(integer)
--trim-last INTEGERβ keeps only one out of every ? data point on the last dataset pushed unto the data stack. lowkey a lifesaver when your data has too many points and you're tryna avoid heavy PDF files that take ages to display with no additional benefits π
Be warned: this operation is very crude and does not average data.
See also trim.
Corresponding command: trim-last(integer)
π General commands π
General scope commands
--debugβ with this on,ctioga2writes a whole lot of debugging information. you probably won't need this unless you're planning to file a bug report or tackle a problem yourself π₯
Be warned that it will slow down the processing of ctioga2 very significantly (up to hundreds of times slower), especially if you're not redirecting the output to a file. no cap, it gets rough π
Corresponding command: debug()
--echoβ writes the whole command-line used to standard error, quoted in such a way that it should be usable directly for copy/paste. chef's kiss for reusing commands π
Corresponding command: echo()
-e,--eval COMMANDSβ runs the given strings as commands, exactly as if they were given from a command file β¨
Corresponding command: eval(commands)
-f,--file FILEβ reads the file and runs the commands found in it, 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=...)
-h,--helpβ prints help about the short and long options available when run from the command-line π«Ά
Optional arguments: pager
Corresponding command: command-line-help(,option=...)
--help-on TEXTβ 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, whenever errors or warnings have been shown. this is especially useful on windows or other environments where the terminal shuts down the secondctioga2finishes π
Corresponding command: pause(boolean)
--print-instructionsβ writes the list of all the instructions run so far.
ngl this is not very helpful for now, possibly π
Corresponding command: print-instructions()
--ruby-run FILEβ reads the file and runs the Ruby code found inside, a bit like Ruby would do with therequirecommand β except thatctioga2does not follow Ruby's file searching rules: you have to specify the full path π
Corresponding command: ruby-run(file)
--set TEXT TEXTβ sets the value of the variable (first argument) to the given second argument. no parsing is done, it just does the thing π
Corresponding command: set(text,text)
-v,--verboseβ with this on,ctioga2outputs quite a fair amount of informative messages πΈ
Corresponding command: verbose()
-V,--versionβ prints the version of ctioga in use β
Corresponding command: version()
π TYPES π
most of the commands accept one or more arguments, and those arguments have different types. here's what all those types actually mean, bestie π«Ά
aligned-point
a point together with alignment specifications, used to place elements like legends that need to know about alignment π
the first two letters represent the alignment:
tfor topbfor bottomcfor centerlfor left andrfor right
those letters can optionally be followed by the exact location of the point in frame coordinates. if you don't provide it, a reasonable default value gets chosen β¨
Examples:
tlis a point at the top left of the frame aligned to the top and left;cl:0.1,0.6is vertically centered and aligned to the left, and positioned 10% from the left and 60% from the bottom.
alignment
vertical alignment for text. can be one of:
tortopc,center,mormidheight(vertically centered)B,Baselineorbaselineto align at the baselineborbottom
aspect-ratio
how the draw-image command respects the original image aspect ratio:
ignore(the default) ignores the original aspect ratioexpandexpand the original box to respect aspect ratiocontractcontract the original box to respect aspect ratio
average-mode
how the avg-dup-last command works:
naiveoraverage(the default) treats all columns (values and error bars) the same way, and averages everythingstddevignores the original errors, and sets the new errors to the standard deviation of the values
axis
the name of the axis of a plot. it can be:
left,top,bottomorright;x,xaxis,y,yaxis, which return one of the above depending on the preferences of the current plot (seexaxisandyaxisto change them);- one of the named axes, such as the ones created by
new-zaxis.
axis-decoration
kinds of decoration on an axis line, such as nothing, lines, ticks, tick labels. possible values:
hidden,off,no,none: no axis at allline: only a lineticks: only ticksmajor: only major ticksmajor-num: major ticks along with their labelsfull: major ticks and labels + minor ticks
axis-or-auto
same thing as axis, or auto to let the style factory handle it automatically π
bijection
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 β these are not exactly mathematical functions, and in particular Ruby does not like floats that 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, meaning from and to are the same function (this is the case for a/x). in that case, you can just omit the second function β¨
boolean
yes or no. that's it, that's the whole type π
boolean-or-auto
same thing as boolean, or auto to let the style factory handle it automatically πΈ
box
the specification for a box, such as an inset. it can be a grid specification, like grid:0,1. for this to work, a grid must have been set up 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 that starts from the point sitting 10% from the left and 20% from the bottom, with a width of 70% and a height of 20%. box era fr π¦box-shapeβ the shape of a box. It can be:squarefor a plain square boxroundfor a rounded box
colorβ a color. It comes in three forms, pick your fighter:- a named color β full list lives at http://tioga.rubyforge.org/doc/classes/Tioga/ColorConstants.html
- an HTML color, for instance
#f00or#ff0000is red - a list of three numbers between 0 and 1:
1,0,0is red too
color-or-autoβ literally the same ascolor, orautoto let the style factory handle it automatically. let the factory cook πcolor-or-falseβ a color, ornoneto say that nothing should be drawn.color-or-false-or-autoβ same thing ascolor-or-false, orautoto let the style factory handle it automatically.color-or-false-setβ sets ofcolor-or-falsecolor-setβ sets ofcolorcolormapβ a Z color map. It takes the formColor1--Color2--Color3.... All colors can optionally be followed by a number. For instance, forRed--Blue--Pink--Green, the colors are evenly spaced. In the case ofRed--Blue(0.1)--Pink(0.2)--Green, the Blue to Pink stretch is located between Z values 0.1 and 0.2. gradient queen energy π- If a prefix
hls:orwheel:is present, then linear interpolation is done in the HLS colorspace instead of the RGB one (the default). - If a suffix
:sym:valueis present, then the colormap is symmetric around that value. - It is also possible to directly use a
color-set, in which case everything works as if the colors of the color-set had been given directly, without Z values.
- If a prefix
colormap-or-autoβ same thing ascolormap, orautoto let the style factory handle it automatically.commandsβctioga2commands, such as the ones that could be found in command files.compute-dxβ this controls how the histograms treat unevenly spaced X values:none: ignores the problem, and treats the points as if they were all evenly spacedmin,mindx: considers that all slots have the size of the smallest variation of X values
cumulative-histogramsβ 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 stackednext, in which case the following histograms get stacked on a new slot
data-pointβ a point from an already-loaded Dataset. You have two ways to choose the point:@13takes the 13th point in the last dataset0.2takes the point closest to 20% of the dataset- If you need another dataset than the last one, give its number or name within brackets:
{-2}0.2is the point closest to the 20% of the one-before-last dataset.
datasetβ one expandable dataset. just one, bestie β¨dimensionβ a dimension, in absolute units, or in units of text height, figure, frame or page coordinates. It's in the formvalue unitwhere value is a number and unit can be one ofpt,bp,in,cm(absolute units, same meaning as in TeX),dy(1.0 dy is the height of a text line),figureorf(for figure coordinates, i.e. the coordinates of the plot),frameorF(1.0 frame is the full size of the current subplot) andpageorp(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).
- It can also be
dimension-or-noβ a dimension, ornoornone.drawing-specβ a ctioga 1--drawspecification.fileβ a file name.fill-patternβ a fill pattern, one of:lines:angle,distance,widthvlines:distance,widthhlines:distance,widthxlines:distance,width,anglesolidorplain- The first three are lines: arbitrary orientation for
lines, vertical forvlinesand horizontal forhlines.xlinescorrespond to crossed perpendicular lines (theangleis 45 by default). For these styles, thedistanceandwidthare all optional and correspond respectively to the distance between the lines and the line width. solidorplaincorrespond to solid fill (i.e. not patterned).
fill-pattern-or-autoβ same thing asfill-pattern, orautoto let the style factory handle it automatically.fill-untilβ how to close the path of a curve to fill it. Can be:bottom,top,left,rightto fill until the named side of the plotaxisorxaxisto fill until the X axis (ie y = 0)yaxisto fill until the Y axis (ie x = 0)x:valueorx=valueto fill until the given X valuey:valueory=valueto fill until the given Y valueclosefor just closing the path (doesn't look good in general) ngl don't πnonefor no fill
fill-until-or-autoβ same thing asfill-until, orautoto let the style factory handle it automatically.fill-until-setβ sets offill-untilfloatβ a floating-point number.float-listβ a list of space-separated or comma-separated floating point numbers.float-or-autoβ same thing asfloat, orautoto let the style factory handle it automatically.float-or-falseβ a floating-point number, ornone.float-or-false-or-autoβ same thing asfloat-or-false, orautoto let the style factory handle it automatically.float-rangeβ abeginning:endrange.float-setβ sets offloatframe-marginsβ 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.
integerβ an integer.integer-listβ a list of space-separated or comma-separated integersinteger-or-autoβ same thing asinteger, orautoto let the style factory handle it automatically.internal-formatβ output format for internals. the inner workings, iykykjustificationβ horizontal alignment of the (with respect to its location). Can be one of:lorleftc,centerr,right
labelβ the name of an label. It can be:titleto mean the current plot's title.axis_tickoraxis_ticksor simplyaxis, where axis is a valid axis. It designates the ticks of the named axis.axis_label, same as above but targets the label of the named axis.
latex-fontβ a LaTeX font.@todo document !the author said what they said πlevelβ a level on a XYZ map (that is, just a Z value).line-capβ 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)
line-cap-or-autoβ same thing asline-cap, orautoto let the style factory handle it automatically.line-styleβ a line style, which is one ofsolid,dots,dashes,small_dots, a series of comma-separated numbers which are the length of the strokes and gaps, orno,noneoroffto mean no line.line-style-or-autoβ same thing asline-style, orautoto let the style factory handle it automatically.line-style-setβ sets ofline-stylelocationβ a position on the plot, referenced with respect to the sides. Can be:leftrighttopbottomx0, for the x = 0 positiony0, 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. someday bestie, someday π
markerβ a Tioga Marker, ie either a name from the list at http://tioga.rubyforge.org/doc/Tioga/MarkerConstants.html, such asBox,Star,Spadeor two or three comma-separated numbers,font,numberandwidth.fontdefines the font (standard PDF fonts, from 1 to 14),numberthe number of the character within the font (between 0 and 255), and ifwidthis specified, the marker is stroked and not filled, and the number is the line width for the stroke.marker-or-autoβ same thing asmarker, orautoto let the style factory handle it automatically.marker-setβ sets ofmarkerobjectβ a named object (whose name was given using the/id=option to the appropriate command).objectsβ a list of comma-separated objects, or a class specification starting with a.partial-float-rangeβ abeginning:endrange, where either of the endpoints can be ommitted.pdf-fontβ 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).pointβ a given point on a figure.regexpβ a plain string or a regular expression (the latter being enclosed within/.../).region-sideβ within a region, designates the position of the curve with respect to the region:abovebelowignoreif this curve is not to be taken into account
region-side-or-autoβ same thing asregion-side, orautoto let the style factory handle it automatically.region-side-setβ sets ofregion-side
stored-dataset ποΈ
A dataset that's already been loaded, bestie. It's literally one of these three things:
- A number β in which case it's the index inside the stack.
0is the first one that got pushed onto the stack (the oldest dataset),1is the second,-1is the last one,-2is the one before the last, and so on and so forth. (it works just like Ruby's arrays, iykyk π ) - The name of a named dataset.
#followed by the id of a plot element.
style-aspect π¨
This type decides which aspect of the style of a xy-parametric plot gets controlled by a certain Z value. She can be any of these:
marker_colorβ the color for the markers β¨marker_size/marker_scaleβ the size of the markers π
text π
Plain text. That's it. That's the whole vibe.
text-adjust-mode π
The mode for text size adjustment, okay?
oldβ for the old style heuristics π΅bothβ for both the old style heuristics and the measures, taking whichever of those is the biggestmeasureβ for only measured text size (but watch out for axis ticks ! π)
text-align βοΈ
Horizontal alignment for text within its box. Only of use for texts with a given text width. Can be one of:
lorleftc,centerr,rightnoornoneto not issue aligning commands, in which case you get full LaTeX-justified paragraphs (probably with a lot of hyphens π« ).
text-list π
A list of comma-separated texts. If you must include a comma inside the texts, then use || as a separator instead. slay β¨
text-or-auto π€
Same thing as text, or auto to let the style factory handle it automatically. Let her cook π
text-set π§Ί
Sets of text. Very set. Much text.
ticks-side π
On what side of an axis line are the ticks positioned:
insideβ on the insideoutsideβ on the outsidebothβ on both the inside and the outside
πΈ ENVIRONMENT VARIABLES πΈ
If the environment variables CTIOGA2_PRE or CTIOGA2_POST are set, they get split into words according to shell rules (peep the Shellwords.shellwords ruby function for more info, bestie) and then prepended or appended to the command-line arguments. And they don't leave any trace in the actual command-line β so, for instance, --echo won't be aware of them. sneaky πΆβπ«οΈ
π AUTHOR π
ctioga2 was written by Vincent Fourmond. Tioga was written by Bill Paxton. legends only π«Ά
π BUGS π
ctioga2 is most certainly not bug-free. no cap. 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 that 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. we're listening π
π¦ SEE ALSO π¦
xpdf(1), pdflatex(1), open(1), gnuplot(1), ctioga(1) (the original ctioga) β yes she has a predecessor and she's iconic too π
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. (typo in the original, we keep it, we respect the original π)
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
okay bestie that's the WHOLE page, you made it to the end, and honestly? ate. π β¨
This wasVersion 0.14.1, datedTue 29 Mar 22:54:55 CEST 2016, and it's theCTIOGA2(1)manual page. go plot something gorgeous ππ
π¦ where this page comes from
- debian bookworm: ctioga2 0.14.1-2
- ubuntu jammy: ctioga2 0.14.1-2
- ubuntu noble: ctioga2 0.14.1-2
- ubuntu resolute: ctioga2 0.14.1-2
- Copyright 2009 by Vincent Fourmond
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms