ctioga2
provides an automatic styling of curves:
ctioga2 -X --math 'sin(x)' 'sin(x+1)' 'sin(x+2)' 'sin(x+3)' \ --color-set pastel1 --yoffset 2.1 --line-style auto \ 'sin(x)' 'sin(x+1)' 'sin(x+2)' 'sin(x+3)'
As can be seen, the first curves are displayed in various colors (red,
green, blue and cyan), up to the --color-set pastel1
command, that instructs
ctioga2
to use another color set, pastel1
, for subsequent
curves. Line style had not changed so far, but it starts to change at
each curve after the --line-style auto
command. As a side note,
--yoffset
is used here to shift the second set of curves from the
first one.
It is possible to override some of the styles either for one curve, or definitely for the following curves:
ctioga2 -X --math --line-style auto 'sin(x)' 'sin(x+1)' --line-style Solid \ 'sin(x+2)' /color Purple 'sin(x+3)'
Commands, such as --line-style Solid
override until further use of
this command; using auto
as a parameter lifts the overrides. Using
an option, such as here /color Purple
allows one to override the
style element just for a single curve.
Commands handling the sets or overrides are all found within the curve style command group.
It is possible to indicate the position of data points on a curve with symbols, that are called markers in Tioga’s nomenclature:
ctioga2 -X --math /samples 31 --marker auto 'sin(x)' \ 'sin(x+1)' /marker-color Pink /marker-scale 1 \ 'sin(x+2)' /marker CircleOpen
As can be seen above, the markers symbol, size and color can be tuned using the options or the corresponding commands. The list of accepted symbol names can be found in Tioga’s documentation.
Something that comes in useful with markers is the possibility to disable lines altogether this way:
ctioga2 -X --math /samples 31 --marker auto 'sin(x)' \ --line-style no 'sin(x+1)' /marker-color Pink \ /marker-scale 1 'sin(x+2)' /marker CircleOpen
From ctioga2
version 0.12
, it is possible to choose the marker
fill and line color independently this way:
math /samples=51 marker auto margin 0.05 marker-line-color Black marker-line-width 0.5 plot sin(x) plot cos(x) plot -sin(x) /marker-fill-color=Purple
Using advanced specification of color sets, one can even draw markers with dimmed inside:
math /samples=51 marker auto margin 0.05 marker-fill-color-set default!!20 marker-line-width 0.5 plot 'sin(x+0##4)'
The specification default!20
for marker-fill-color-set
specifies that the color set for the marker fill color should be the
default
colorset dimmed by 100 - 20 =80%
(it is a specification
like LaTeX xcolor
.).
ctioga2
provides quite a bit of customizability of error bars. First
of all, to have error bars, you need to specify a data column or
formula specifying the errors. The simplest way to do that using the
yerr=
specification of the --text
backend
ctioga2 -X --yrange -1.1:1.1 data.dat@'$1:$2:yerr=$2*0.2'
Here, by using yerr=$2*0.2
, we force a relative error of 20% both
below and above the point. Asymetric error bars can be obtained using
the ymin
and ymax
specifications.
ctioga2 -X --yrange -1.1:1.1 --line-style no \ --marker auto \ data.dat@'$1:$2:ymin=$2-0.05:ymax=$2+0.2' \ /error-bar-color=Black \ data.dat@'$1+2:$2:xerr=$1*0.1'
It is also possible to set the color of the error bars, and to have error bars on the X values too ! Error bars tends to combine better with marker curve styles.
When drawing curves, by default, ctioga2
joins successive points by
straight lines. But there are other ways, that you select via the
/path-style
option or the path-style
command, namely
splines
and impulses
as of now:
math /samples=11 margin 0.03 plot x**2 plot x**2+10 /path-style=splines plot 50-x**2 /path-style=impulses /line-width=4 /line-cap=butt
The impulses
example above also demonstrates the use of the
/line-cap
option. By default, the end of lines are “rounded” (it’s
almost never visible), but you can change that using the /line-cap
option.
Curves in ctioga2
can be filled to a certain level using the
--fill
command, that takes precisely this level as an argument. See:
ctioga2 -X --math --fill axis 'sin(x)' /fill-color '#fcc'
By default, the filling has the same color as the lines of the curve, and it can be made transparent, which allows for neat effects such as:
ctioga2 -X --math --fill axis --fill-transparency 0.6 \ 'sin(x)' 'cos(x)' ' -sin(x)'
You can improve the style a bit with a difference choice of colors
using one of the predefined color sets,
and use a filled background
:
math color-set pastel1 fill axis fill-transparency 0.6 title 'Filled trigonometry' background Ivory plot 'sin(x)' plot 'cos(x)'
It is possible to show patterned fills using the /fill-pattern
option:
math fill axis plot 'sin(x)' /fill-pattern vlines plot 'cos(x)' /fill-pattern hlines:3 plot '-sin(x)' /fill-pattern xlines
ctioga2
can also fill the region between two curves, but that is
another story told
somewhere else !
ctioga2
provides a neat way to plot lots of curves with a linearly
changing color. Behold:
ctioga2 -X --math --gradient Red Blue \ 'sin(x) + 0##12 * 0.1'
Here, a trick needs to be explained: the 0##12
is expanded by
ctioga2
into several dataset as 0
, 1
, 2
… up until 12
(which is the reason why there are 13 curves).
The old way of making gradient in ctioga
, using a gradient:
dataset is still supported, but is clearly behind the new way.
While predefined sets may suit you, it is possible to build custom sets directly on the fly:
ctioga2 -X --math --color-set 'Red|Blue|Green' \ --line-style-set 'Solid|Dots*3' \ 'sin(x) + 0##6 * 0.3'
Let’s analyse in details. We have 7 curves (from 0
to 6
, ie from
bottom to top). The color set specification, Red|Blue|Green
instructs ctioga2
to use these three colors each in turn for each
curve. Now, the line style specification, Solid|Dots*3
, instructs to
use 3 times the Solid
line style, then 3 times the Dots
line
style. Combining these possibilities makes for very easy play with
colors/markers/line styles…
ctioga2
offers advanced manipulations of style, such as skipping the
next style or reusing the style of a previous curve, possibly with
modifications:
math plot sin(x) /id=sin /legend '$\sin x$' skip plot cos(x) /id=cos /legend '$\cos x$' reuse-style sin plot sin(x)**2 /legend '$\sin^2x$' reuse-style cos plot cos(x)**2 /line-style Dashes /legend '$\cos^2x$'
Without the call to skip
, the cos(x)
curve would be green
(by default), but with skip
, it skips to the next color
(blue). The reuse-style
commands reuse the style of the
named curve (with the /id=
option) for the next curve. The style can
still be overridden by modifications.