Version 2.41 Mar2009
Ploticus 2.41 release - 11 March, 2009
What's new in version 2.41
What's new in earlier versions
Home page: ploticus.sourceforge.net
News group: hosted on yahoo groups
Bug fixes applicable to 2.41 (newest to oldest):
- 16 Jan 2012 - build errors involving GD's png_set_dither() ... I simply commented out the
call to png_set_dither() in gd_png.c around line 311 ... it then compiles and ploticus seems to work fine
- 2 Dec 2011 - chron prefab - fixes to the error bars as released in March... error bars
now are drawn on top of other bars or lines, and cluster positioning fixed. Use eg. errcolor=x808080
arg to control color of error bars.
Download this file chron.pl and put it in your ./prefabs directory.
- 18 Mar 2011 - chron prefab - error bars hadn't been available as was claimed in the docs.
Also, data point symbols had been promised awhile back but never added.
And, there was a glitch with autoyears=yes . These issues have been addressed
and the prefab chron docs updated. See above for download.
- 10 Feb 2010 - the heatmap prefab wasn't obeying the legend=no parameter... fixed.
Take this file heatmap.pl and put it in your ./prefabs directory.
- 23 Jun 2009 - bug fix for those building apitest.c to test the libploticus.a API -
apitest.c missing some headers and a Makefile adjustment so it can build with X11.
See newsgroup message 2203 for the details.
- 19 Mar 2009 - proc boxplot - bug fix - incorrect error message on number of statfields supplied,
and likely other erratic behavior, when doing median-based bars plus a mean symbol.
Here's a revised version of
put it in your ploticus src directory and do make clean; make.
- 12 May 2009 - bug fix - the 'legendlabel' attribute was only accepting first
whitespace-delimited token... should accept entire line. Fixed these 5 plotting procs:
Cumulative summary of changes that might affect existing/old applications
Unless otherwise stated, ploticus versions are designed to be backward-compatible, meaning
that a "well-behaved" script written for an earlier version of ploticus should work
on any later version. Any exceptions to this rule are noted here:
- version 2.40 - The following are now deprecated: server-side image maps (use client-side instead);
definition of categories within proc areadef (use proc categories instead); proc print.
- version 2.40 - the following attributes have been discontinued:
proc processdata's stack; proc usedata's element, proc getdata's rotate,
and proc defineunits (use the $changeunits() function instead).
- version 2.40 - proc rangebar has been renamed proc boxplot and there are major functionality changes.
Any script that uses proc rangebar will need maintenance.
See the introduction on the proc boxplot manual page for details.
- version 2.40 - prefabs - the "compare" prefab and the boxplot component of the "vdist" prefab are no
longer available due to the above changes in proc rangebar / proc boxplot.
- version 2.40 - embedding of image from external file - proc import is now called proc image (old name will still work).
Default image alignment is now topleft (was centered), and scale attribute is discontinued in favor
of height and width. Symboldetails pngfile attribute name discontinued (use imgfile),
and symboldetails pngscale / imgscale discontinued (use imgwidth and imgheight).
These changes are a side effect of adding image support for SVG.
- version 2.40 - lower case requirement - proc names, attribute names,
and most controlled-vocabulary attribute values are documented as lowercase but uppercase
characters were often tolerated. Script interpreter now stricter in this regard.
- version 2.40 - proc processdata - field names for result dataset - for some actions default field names are assigned,
for other actions any existing field names are cleared when they would almost certainly be wrong. This may break scripts
that somehow depended on the old behavior.
- version 2.40 - C language API -
C programmers can no longer pass string constants to ploticus_execline(). This change was made necessary as a result of
changes in script processing to eliminate some internal string copying.
- version 2.33 - proc scatterplot - the cluster option is now no by default.
Previous default had been yes. The cluster option forces duplicate data points
to be made visible by offsetting them slightly, and involves a sort of all data points
(to ensure that duplicates are adjacent).
- version 2.33 - clickmap - URLs are now encoded properly. Before, the only encoding
performed on clickmap URLs was that embedded spaces would be changed to underscores. Apps that
depended on this quirk might need adjustment.
- version 2.33 - SVG - proc settings - the svg_linkparms attribute has been discontinued;
instead use the new clickmapurl: [target=new]http://abc.com... syntax.
- version 2.33 - proc bars - when doing floating segment bars, the default method for
labelling bars has been changed to "longways", that is, a label is centered within each bar
rather than shown at the end of each bar. This change likely won't bother anybody.
- version 2.31 - the "datematic" feature was added for more automatic handling of date, time, and datetime data.
Old default behavior was autorange to exact maxima and minima, and to display one stub every 7 days.
New default behavior is for autorange and stub increment to be selected based on context.
Script that relied on old defaults may now give different results.
Scripts must now specify eg. xautorange: ... nearest=exact to get the exact max and min.
- version 2.31 - proc processdata, action: stats now can compute stats
on the data in one or several data fields given in the fields attribute.
Previously, a second field specified in the fields attribute was taken as an identifier field
for MIN_ID and MAX_ID.. now a separate attribute tagfield is used for this purpose.
- version 2.30 - with -csmap (client-side image maps PNG/GIF/JPEG) the default is now for map
content to be written to stdout since this seems to be what is usually wanted.
Previously the default had been for it to be written to a file.
Server-side image maps (-map) and SVG are not affected by this change.
- version 2.30 - prefabs - a few changes that might minimally affect existing applications
- see "Caution:"
- version 2.30 - SVG mouseover - the default method for
doing mouseover text tooltip bubbles has been improved but it now references
- version 2.10 (probably) - the proc processdata breaks action requires
an invocation of proc usedata to get back to the original data
set. This is now explained correctly in the docs.
- sometime after version 1.39, time values greater than 24:00:00 began to be regarded as
invalid (they're invalid for clock times but not for elapsed times). This has been fixed in 2.20
but requires a format such as hhh:mm:ss to be specified when working with elapsed times (hhh
indicates elapsed time, no upper limit).
- version 2.10 - several obscure changes:
config file parameters sid, gid, and filesizelimit dropped;
number display format settings dropped from proc page;
proc areadef catcompmethod: fuzzy no longer supported;
proc processdata stack is now no by default, which might be an issue in scripts that use
originaldata to access processdata result data set;
- version 2.03 - pltab no longer supported. However, it is still available from
- version 2.03 - proc rect (old name proc bevelrect) - bevelsize must now be specified
in order to get a bevelled rectangle.
- version 2.02 - lines prefab - changed the way that the fill parameter works.
Previously it had applied to all curves and line color was used. Now it is specified
as a color, and separately for each curve (using fill2, fill3, and fill4). This will
break any existing applications that use the lines prefab to render multiple filled curves.
- version 2.00 - New script interpreter resulted in some script syntax changes.
Concatenation of variables is done differently in #set and #if statements,
#setifnotgiven replaces #declare soft, and some other minor issues.
Here are the details.
Requested features list
These items have been mentioned in correspondence (or in some cases dreamed up by myself)
but are not currently on the "front burner". It's likely that some of these will
be addressed eventually but probably not in the immediate future. If you have interest
in taking any of these on, let me know and I will be happy to facilitate.
- a method for automatic annotation placement, including avoidance of annotation, label, and plot object collisions.
Rudimentary collision detection would probably
involve keeping a list of labels and graphical elements and checking this
list before rendering each successive element. The workaround for people
who need it (such as those publishing in journals) is to render in EPS
then use Adobe tools to manipulate elements by hand.
- polar coordinates, radar plots, star plots (example)
Unfortunately polar/radar can't be implemented just by writing new data
space to absolute space translating routines.. for one thing assumptions
about drawing long straight lines in x y space based on two endpoints
don't hold in polar/radar space (they need to be curved around).
- Interface to later versions of GD that have antialiased linedrawing (in grgd.c, shielded by #ifdefs)
(note: may not be necessary now with the better data point symbols in 2.33)
- Provide a "canned" ploticus freetype build (executables) for linux (requires static freetype2 lib(s)
- Right-to-left font support for languages such as Arabic, Hebrew, for ploticus
freetype, SVG, etc. This might be best implemented by someone who can read in one
of these languages, to verify correctness.
- PDF output capability (you can use the pstill package to convert postscript to PDF)
- additional prefabs
- a way to define holidays in config file (similar to omitweekends)
- facilities to make QQ plots easier
- the ability to run as a persistent daemon and accept commands via named pipe
- more 3-D plots and effects
- XML script syntax option - the plotting procs fit the xml model easily enough
but not sure what to do about flow of control operators such as #if or #for .. #endloop.
- a mechanism similar to catslide that would allow similar minor adjustment of scaled data placement
for any type of axis, not just categories.
- alternative to 0am for displaying "midnight"
- proc pie option to produce ring graphs
data display engine
Copyright Steve Grubb