The original gallery can be found there.
fillcrvs.1
set title set key outside set title "plot with filledcurve [options]" plot [-10:10] [-5:3] \ 1.5+sin(x)/x with filledcurve x2, \ sin(x)/x with filledcurve, \ 1+sin(x)/x with lines, \ -1+sin(x)/x with filledcurve y1=-2, \ -2.5+sin(x)/x with filledcurve xy=-5,-4., \ -4.3+sin(x)/x with filledcurve x1, \ (x>3.5 ? x/3-3 : 1/0) with filledcurve y2
ctioga2
code (download)title "plot with filled curves" color-set gnuplot auto-legend true math /xrange=-10:10 yrange -5:3 plot 1.5+sin(x)/x /fill=top plot sin(x)/x /fill=close plot 1+sin(x)/x plot -1+sin(x)/x /fill y=-2 plot -2.5+sin(x)/x /fill xy=-5,-4. plot -4.3+sin(x)/x /fill bottom plot "(x>3.5 ? x/3-3 : 1/0)" /fill right
Gnuplot | ctioga2 |
Here, we set the color-set
to gnuplot
to have ctioga2
colors match those of gnuplot, in order to facilitate the comparison
between the left and right plots.
Note as well that, as the (x>3.5 ? x/3-3 : 1/0)
plot contains
spaces, we had to quote it as ctioga2
splits a line into
arguments/options at spaces, a bit like the shell.
fillcrvs.2
set key outside set title "Intersection of two parabolas" plot x*x with filledcurves, 50-x*x with filledcurves, x*x with line lt 1
ctioga2
code (download)auto-legend true title "Intersection of two parabolas" math plot x*x /fill=top plot 50-x*x /fill=bottom plot x*x /color Red
Gnuplot | ctioga2 |
Of course, this does not look good, even with ctioga2
. It would have
been better to take advantage of fill transparency to avoid redrawing
the first parabola:
title "Intersection of two parabolas" math plot x*x /fill=top /fill-transparency 0.8 /legend '$x^2$' plot 50-x*x /fill=bottom /fill-transparency 0.8 /legend '$50 - x^2$'
fillcrvs.3
set key outside set grid front set title "Filled sinus and cosinus curves" plot 2+sin(x)**2 with filledcurve x1, cos(x)**2 with filledcurve x1
ctioga2
code (download)title "Filled sinus and cosinus curves" background-lines left Black /style=Dots background-lines bottom Black /style=Dots math auto-legend true plot 2+sin(x)**2 /fill=bottom /depth=95 plot cos(x)**2 /fill=bottom /depth=95
Gnuplot | ctioga2 |
We used the option /depth=95
to draw the curves behind the
background lines (they are drawn between depth 90 and 91).
fillcrvs.4
set key outside set title "The red bat: abs(x) with filledcurve xy=2,5" plot abs(x) with filledcurve xy=2,5
ctioga2
code (download)math auto-legend true title 'The red bat: abs(x) filled to $(2,5)$' plot abs(x) /fill xy=2,5
Gnuplot | ctioga2 |
fillcrvs.5
set key outside set title "Sqrt stripes on filled background" plot [0:10] [-8:6] \ -8 with filledcurve x2 lt 15, \ sqrt(x) with filledcurves y1=-0.5, \ sqrt(10-x)-4.5 with filledcurves y1=-5.5
ctioga2
code (download)title "Sqrt stripes on filled background" math /xrange=0:10 yrange -8:6 auto-legend true background Blue!40 plot sqrt(x) /fill -0.5 plot sqrt(10-x)-4.5 /fill -5.5
Gnuplot | ctioga2 |
Here, it is much smarted to fill the background of the plot rather
than to use a constant value. In addition, this ctioga2
plot
demonstrates the xcolor
-like possibilities to tweak colors:
Blue!40
means 40% of Blue
mixed with 60% of something else (white
by default).
fillcrvs.6
set title "Let's smile with parametric filled curves" set size square set key off unset border unset xtics unset ytics set grid set arrow 1 from -0.1,0.26 to 0.18,-0.17 front size 0.1,40 lt 5 lw 4 set label 1 "gnuplot" at 0,1.2 center front set label 2 "gnuplot" at 0.02,-0.6 center front set parametric set xrange [-1:1] set yrange [-1:1.6] plot [t=-pi:pi] \ sin(t),cos(t) with filledcurve xy=0,0 lt 15, \ sin(t)/8-0.5,cos(t)/8+0.4 with filledcurve lt 3, \ sin(t)/8+0.5,cos(t)/8+0.4 with filledcurve lt 3, \ t/5,abs(t/5)-0.8 with filledcurve xy=0.1,-0.5 lt 1, \ t/3,1.52-abs(t/pi) with filledcurve xy=0,1.8 lt -1
ctioga2
code (download)# missing: set size square title "Let's smile with parametric filled curves" clear-axes math /trange=-3.141592:3.141592 xrange -1:1 yrange -1:1.6 plot sin(t):cos(t) /fill xy:0,0 /color Yellow plot sin(t)/8-0.5:cos(t)/8+0.4 /fill close /color Blue plot sin(t)/8+0.5:cos(t)/8+0.4 /fill close /color Blue plot t/5:(t/5).abs-0.8 /fill xy=0.1,-0.5 /color Red plot t/3:1.52-(t/3.1415).abs /fill xy=0,1.6 /color Black draw-arrow -0.1,0.26 0.18,-0.17 /tail-marker None /color '#0F0' draw-text 0,1.2 "ctioga2" draw-text 0.02,-0.6 "ctioga2"
Gnuplot | ctioga2 |
Note that one has to change the xy=0,1.8
fill specification to
xy=0,1.6
since gnuplot will silently force any point you specify
this way to lie within the plot boundaries, which doesn’t make much
sense in my eyes (because it makes it very difficult to draw lines
that go in a precise direction).
There is no way for now to specify an aspect ratio using ctioga2
.
fillcrvs.7
set title "world.dat plotted with filledcurves" set format x "" set format y "" set grid layerdefault linewidth 0.5 set object 1 rect from graph 0, 0 to graph 1, 1 behind fc rgb "#afffff" fillstyle solid 1.00 border -1 set xrange [ -180.000 : 180.000 ] set yrange [ -70.0000 : 80.0000 ] set lmargin 1 plot 'world.dat' with filledcurve notitle fs solid 1.0 lc rgb 'dark-goldenrod'
ctioga2
code (download)title "world.dat plotted with filledcurves" no-xlabel no-ylabel axis-style left /decoration=major /also-axes=right,top,bottom background-lines top Black /style Dots background-lines left Black /style Dots background "#afffff" xrange -180:180 yrange -70:80 text /split=true plot 'world.dat#1##153' /color DarkGoldenrod /fill close
Gnuplot | ctioga2 |
Here, we use two esoteric features of ctioga2
’s text
backend. First, if you turn on the /split
option of the
text
backend (which is also possible using directly the command
text-split
), ctioga2
will divide the data files into
“subsets” separated by blank lines. You select the third subset by
adding #3
after the name of the file.
The second esoteric feature is the set expansion. While processing the
plot
command above, ctioga2
will replace the 1##153
bit
by all the numbers from 1 to 153 in succession. The effect is the same
as if we had run the plot
command on
world.dat#1
then on world.dat#2
, etc, but it is of course much
more compact.
We also took advantage of the /also-axes
option to axis-style
to use only major ticks for all the axes in one go.
There happen to be exactly 153 bits in the file, but we could have
used 1##2000
, as ctioga2
just complains when datasets are missing,
but doesn’t stop to build the plot.
We use no-xlabel
and no-ylabel
to disable the
display of the X
and Y
labels. This is different than setting an
empty label using {command xlabel} ' '
, as the plot does not reserve
space for plotting the label, and hence the whole target space is used
for the plot.