Blog: Difference between revisions

From GretlWiki
Jump to navigation Jump to search
(add multiple bands feature)
Line 49: Line 49:
setobs 1 1 --time-series  
setobs 1 1 --time-series  
series y = log(time) # main line to be plotted
series y = log(time) # main line to be plotted
series w = normal() # example width series  
series w = normal() # example width series  
series x1 = y + 0.1 # optional center different from y
series x1 = y + 0.1 # optional center different from y
series x2 = y - 0.1 # ditto
series x2 = y - 0.1 # ditto


# specify the band specs  
# specify the band specs  

Revision as of 11:29, 2 November 2023

New features, fixed bugs, and software news are shown here

A good concise list is provided in the official changelog, here the aim is to be more explicit and sometimes give some examples. Before the respective new gretl version is released, the examples will only work in snapshots that are recent enough, or with self-compiled bleeding-edge versions.

New in what will be gretl 2023c

(this is just a selection, not exhaustive)

gridplot command

This new native command makes it possible to arrange several subplots in a grid (rectangular) layout. As such it will pretty much replace the contributed function package multiplot. There are basically two ways of using it:

First, using some other plotting commands, redirect the output to a string buffer inside a strings array. Then execute the gridplot command on that array. Example:

open australia
strings temparr = array(2)
qqplot IAU --outbuf=temparr[1]
kdplot E --outbuf=temparr[2]
gridplot temparr --output=display

Secondly, use the companion command gpbuild in a block format, and then define the individual parts:

open data4-10
gpbuild MyPlots
    gnuplot ENROLL CATHOL
    gnuplot ENROLL INCOME
    gnuplot ENROLL COLLEGE
end gpbuild
gridplot MyPlots --output=display

tsplots (virtual) command

You can now use the new tsplots command to create several joint time-series plots easily. Example:

open denmark
tsplots LRM LRY --output=display

This has actually "always" been possible with the scatters command --and was duly documented-- but it was somewhat counterintuitive to use a command for scatter plots to draw time-series lines.

plot multiple bands

Plotting a single band to represent a confidence area or something similar has been possible for a long long time. Now you can also insert more than one band into a plot. The syntax relies on specifying a hansl bundle for each band and then passing all of them inside an array of bundles to the gnuplot call. Meaningless example:

# create artificial data 
nulldata 50
setobs 1 1 --time-series 
series y = log(time)	# main line to be plotted
series w = normal()	# example width series 
series x1 = y + 0.1 	# optional center different from y
series x2 = y - 0.1	# ditto

# specify the band specs 
bundle b1 = _(center="x1", width="w", style="bars") 
bundle b2 = _(center="x2", width="w", factor=0.2, style="fill", color="grey")
bundles bandspecs = defarray(b1,b2)

# execute the plot 
gnuplot y --time-series --with-lines --output=display --bands=bandspecs