News > |
|Release notes for earlier versions|
Version 2.41 (May 2009) – new features:
- New proc: proc pvalue for computing pvalues associated with t-test.
- proc scatterplot - new attribute colorfield allows you to control data point color directly
from a data field (not involving the legend-driven technique).
- proc areadef - new attributes clickmapadjust for tweaking the overall position of grid clickmap,
and catbinsadjust useful in setting up a plotting area with categories that are slid -0.5.
- proc print - new variable that is set called FOUNDROW, which lets you determine which data row contains
a given value, then pass the row number to the $datarow() function
- proc catlines - column bars
- category names having embedded whitespace can now be used for positioning (use underscores in the location spec)
- prefabs - new parameters xgridskip, ygridskip, xgridblocks, ygridblocks, firststub, laststub
2.41 bug fixes
Thanks to all those who reported and/or supplied fixes for these bugs...
- C coding issue - string pointer comparisons, was ok on gcc but failed on sun C compiler and others
- clickmap - double url encoding bug
- tokncpy() fix affecting win32 builds
- proc processdata action: breaks not setting NRECORDS to 0 on eof
- proc processdata - result field names are set later, allowing current field names to be used in select statements
- on clickmap tags, alt= attribute added so that output passes xml validation
- numgroup() function - contributed bugfix installed
- datetime stubs - seconds were incorrect
- clickmap urlencoding - spaces are now urlencoded to %20 (previously was +)
- direct pixel data points are now influenced by -scale
- proc catlines able to function with just one subcat (use to require at least two)
- instability related to field name headers, getfname()
- memory leak in grgd.c, Gptlist
- date stubs dislaying garbage when given unrecognized date format string
- lineplot XFINAL was incorrect
Version 2.40 (Jan 2008) New features:
- A revision pass was done affecting all script and attribute parsing, with the goal of
eliminating attribute length restrictions where possible, and reducing string copy operations.
- proc getdata ... data sets using the bar character (|) as field delimiter are now supported.
Also, there's now delim: auto which tries to automatically determine data field delimitation.
- proc processdata ... new actions: summary, summaryplus, raccum ... new attributes binsize, binmod
- proc boxplot (formerly proc rangebar) ... functionality change.. it now produces a
set of boxplots in a similar way to how other procs (such as proc bars) operate. Any existing scripts using proc rangebar
will require attention.
- new pl(1) command line options
-pixsize (to set exact size of result image in pixels), and
-cputime (to set cputime resource limit). As usual these have equivalent settings in
proc page and/or proc settings
- axis autorange now supports the following: nearest=Nminute nearest=second nearest=Nsecond
- proc image (formerly called proc import)...
gifs can be imported. Images can now be incorporated into SVG plot results. Clickmap support.
- symboldetails ... imgfile, imgwidth, imgheight
- color ... color specifications using notation such as xFEDCBA now supported
- Slanted axis stubs are now supported. See proc axis stubvert parameter
- A number of other new attributes that are specialized or of minor interest
2.40 Bug fixes
- bug related to legend-driven bar graphing
- direct pixel data points inherit current line dashing .. symboldetails needs to set linetype to plain
- segfault occuring after error 12040 "DISPLAY=" ?
- svg compile and swf segfault bugs
- proc getdata - recent fix related to #field names and #data fields needs to take filters into account
- proc categories - when cats specified literally, trailing whitespace is taken as part of category
- proc image segfaults with -x11
- proc lineplot - gapmissing autozero not working right
- segfault when -csmap is used with long urls
- proc processdata MIN, MAX - not affected by 'resultformat' but should be
- First x stub is a little higher than the others
- gd color bug when degenerate data row encountered [color change bug - lineplot gapmissing and fill options]
- prefab chunk_title - align= was giving backward results
- proc bars - segments - code bug demonstrated by gallery/timeline2.htm
- proc bars - instability related to color change optimization (wild draw location)
- prefab cumufrac - no curve produced for certain input data (see msg 1974)
- clickmap - the clickmap entries for plot elements sitting on top of a clickmap grid are written too late
in the map and mouse doesn't respond. For gif/png/jpg imagemaps, need to write map entires in this order:
1) plot element regions 2) xy grid regions 3) single-dimention grid regions. (svg uses the opposite order)
- scripts having embedded CSV data (w rows > 255) can break script processor causing instability.
- proc annotate instability on filled rectangle draw caused by unitialized bd* vars
- proc curvefit - xfield was required, but doesn't need to be
- legend - repeated use of legends eventually gives "Sorry, too much legend content" msg
- prefab overlays - each run needs to output a code into the dumpfile that tells pcode to do a graphics init.
Otherwise, run 2 inherits current color (other settings?) left behind by run1
- proc axis - stubround - 1st stub seems to be often omitted even when it is a round value (snps/distplot)
- URL encoding shouldn't encode '.' or other normal punctuation chars..
- floating bars weirdness
- instability when trying to #set a var to length > 334 chars
- instability when supplying a long perl script with #proc getdata commandmr
Ploticus 2.33 (June 2006) New features
- direct pixel data point symbols for gd and x11, to provide sharp non-distorted data points.
In the example below the first two rows use the new direct pixel data points, while the 3rd row shows
the vector-based data points that have always been available.
- proc venndisk - some new attributes to support "vennmag" plots (a series of disks resting on X axis
to compare magnitudes). Here's an example:
- clickmaps - new clickmapurl syntax to allow deployment in a new window, etc. Syntax is like this:
- SVG - proc settings / config files - svg_linkparms attribute discontinued. Use the new clickmapurl syntax (see above)
- proc axis - stubround attribute - solves the old problem of getting stubs at round number locations when plot
area minima is not at a round location.
- proc lineplot - gapmissing: autozero
- proc bars - new attributes for better control of bar labels: labelmustfit, labelmaxlen, labelselect
- pl command line -ping option
- proc scatterplot - cluster attribute - default will now be 'no'
- prefab scat - new parm ptstyle= filled or outline ..... and changed to use the new direct pixel data point symbols.
2.33 Bug fixes
- clickmap - url encoding is now performed on variable contents and axis values that are substituted into clickmapurls
- proc categories - uniqueness check wasn't applied when categories listed literally. Useful in apps where the list is
generated by another program or whatever.
- improved handling of very long command line args - each arg is silently truncated to 255 chars.
var=value parameters cannot begin with a dash as may have been previously tolerated.
var=value parameters are now intercepted before entering the arg name big decision structure.
- $dategroup() function didn't know about datetime separator characters other than '.'
- issue where the "circuit breaker tripped" message was appearing when autorange is used but no stubs / no tics were being generated
- ploticus api code bug - prefabs were not usable via api
- made adjustments to improve rounding error when axis begins in negative space and reaches zero, zero was shown a very tiny scientific notation number
- proc processdata - percents - resulting data values were written as enclosed in quotes which made them unplottable.
- fixed many compile warnings when building w/ gcc4 -Wall
- drawing to out-of-bounds locations (GD) resulted in huge image.
The pl bounding box was set to a huge rectangle due to a wild draw op..
then the final GD crop operation used the huge bounding box to set the size for the cropped result.
Fixed by limiting final result to 'pagesize'.
- proc bars - longways labels on bars that travel beyond plot area boundary weren't being shown/centered properly.
- in the -scale parameter, if you used -scale 1,2 the scale did not change but -scale 1.01,2 does work.
Fixed- some code was only taking action if x scale != 1.0
- svg - opening <svg> tag didn't have xmlns:xlink parameter (always); font size didn't have "pt" on end (firefox 1.5 / easytimeline)
- proc getdata - instability when there were more field names than available data fields. Fixed - number of field names now sets
the 'nfields' idea of how many fields there are. This only happens when nfields is not explicitly specified.
- scatterplot - short line segments as symbols - no legend entries were appeariing
- proc legend - longer line segments were colliding with other entries in "across" format
- proc rangesweep - instability when bad values encountered in data
- proc annotate - box outline color not being set properly
- proc bars - showvalues - conflict between "backbox" and "labeldetails: color="
- pl -errfile stdout (w/ no other args) gave seg fault
- prefab scat - new maxinpoints= parameter (for curvefit)
- heatmaps - with contentfield= and values 0.0 -> 1.0 .. cutoff table was not automatically created properly.
- prefabs - some prefab parameters cannot be set in a data file.. because they are set
in the prefab script before getting the data. More detailed explaination in docs.
- -tag command line arg wasn't generating the <embed> tag for svg
- scatterplot - heatmap-related cell coloring bug
- draw prefab - win32 issue with dumpfile
- autorange - code bug involving nearest=hours
Ploticus 2.32 (Aug 2005) – New features
- proc legend - support for multi-column or multi-row legends, word wrap for legend entries,
backing box, title, and others. Thanks to Philippe Jalaber and Tobias Minich who suggested some of these features.
- proc venndisk - new proc for producing venn diagrams.
- textdetails - new linesep attribute to control line spacing.
- mousover/tooltip labels can now be up to 1500 chars. Also any proc that had a clickmaplabel
attribute now also has a clickmaplabeltext multiline attribute. This is to
- proc axis - month stub inc with datetime scaletype now supported.
- proc pie - new wraplen attribute to wordwrap pie slice labels
- new function - $rewritenum(f) which takes a numeric quantity f and
returns it rewritten for display purposes, applying numbernotation (as specified in your proc settings
or config file)
- new function - $textwidth(f)
returns horizontal width of FreeType bounding box. Useful only with freetype fonts, otherwise it returns 0.
Suggested/contributed by Erik Zachte.
- autorange - if user doesn't specify numformat, %f is now
automatically used to build result with high magnitude low variance data sets
(such as where the min is 1,000,000 and the max is 1,000,003).
- Prefab parameters for access to some of the new proc legend features; and some other prefab items.
2.32 Bug fixes
- date notations involving dots (such as dd.mm.yy) weren't being handled properly
- gd16.c gcc 4 compile issue (static int cost, static int sint)
- crosshatch lines were too thin w/ svg
- proc bars - with 'truncate', bar completely out of range was suppressed but label still appears
- drawcommands ignored cm units - fixed. Also, mark and cblock now accept posex specifications.
- heatmap prefab - now supports title and related parameters.
- superscripts in X axis stubs showed up on Y axis - fixed
- autorange - now handles degenerate case where all data are 0
- proc vector - instability if start and end points of a vector are same
- proc getdata no longer does a popen( cat filename ) in CGI mode
- strange color change problem - related to certain degenerate lineplots that
don't draw anything. Bug in proc_lineplot.c fixed.
- proc legend width attribute now supports cm
- heatmap prefab - yaxis=none didn't have any effect. Fixed.
- proc pie - with outlinedetails: none the labels and any associated lines disappeared
- proc scatterplot - default clustermethod was horizontal when ylocation given..
and vertical when xlocation given.. seems like it should be the other way round.. so I changed it.
- with datetime (others?) xautorange nearest=exact wasn't working
- command line option -prefab is now disabled when operating in direct cgi mode
- command line option -drawdumpa displayed to x11 but shouldn't
Ploticus 2.31 (Feb 2005) – New features
2.31 Bug fixes
- due to a Makefile problem (pl command only) no imagemap output was produced with
-map or -csmap when producing gif, png, or jpeg. libploticus unaffected.
More info here.
- dates - bug involving incorrect day-of-week computation.
Plots that used omitweekends omitted the wrong days of the week.
- proc curvefit - wasn't discarding input data points where Y component was a non-numeric
(eg. a missing data code).
- very long category names used as axis labels.. some long labels were being omitted on axis..
- autorange - big datafield list using fieldnames, was causing overflow
- arrow color sometimes incorrect - fixed
- in X mode, the yellow [End.] or [more..] button is not affected by -scale
- bounding box incorrect with vertical text when a -scale was set
- proc usedata - was giving error when current data set was the original data set; also made more lenient on the "original" name
- svg - "bad CSS property or descriptor declaration" error - fixed (?)
- font names w/ embedded spaces - these are parsed correctly everywhere (-font, proc page, proc settings, textdetails font=)
but these are problematic with some drivers.. SWF definitely won't handle these.
In a test, GD/Truetype doesn't seem to work with them either. Not sure about SVG.
Ploticus 2.30 (Aug 2004) – New features
- Superscripts and subscripts capability. This is a limited implementation that
works with monospaced fonts such as the default GD fonts, default X11 fonts, or PostScript's /Courier.
In scripts, to ensure backward compatibility, this capability must be turned on using
proc settings enable_suscripts (or in your config file).
Prefabs have superscript/subscript capability turned on by default. More info.
- -drawdump and -drawdumpa command line options, which allow you to
overlay or combine results from separate pl runs
- this opens up new possibilties when using prefabs, among other things.
The drawdump file can be rendered later in any desired format, using this command:
pl -prefab draw dumpfile=filename
or by using proc drawcommands.
Drawdump capability is available in all builds.
- New proc processdata actions: join / leftjoin / rightjoin,
which perform a join operation (useful for example when doing a scatterplot and you want the X component to
come from certain records in the data set, and the Y component to come from other records); stats,
which examines a field in the current data set and reports the min, max, mean, SD, N (etc.). It does this
by setting ploticus variables, that can be displayed or used to position annotations.
produces SVGs that support mouseover independently (without involving the containing HTML file).
Thanks to Jamie Echlin.
- Spaces and commas in data field names - Data field names cannot contain literal spaces or commas, but it is
now possible to encode spaces as _ and commas as |, for situations where the names will be displayed.
This capability must be turned on using proc settings encodenames or
in config file. Example.
- Various prefab-related features
- autorange - new attributes mininit and maxinit - similar to lowfix
and highfix but are overridden by encountered data values that exceed them.
- proc pie - new attribute - labelfmtstring - a more flexible way of building labels
from data field(s).
- proc pie - improvement - labelmode: labelonly - label positioning improved
- proc curvefit - new attribute - clip - allows the generated curve to be clipped
to the plotting area
- proc curvefit - maxmimum number of points in the input data set is now dynamic; size is
controlled by new attribute maxinpoints
- EPS files - the latin1 encoding that was added a year or two ago is now optional.. this can be controlled using
proc settings ps_latin1_encoding attribute.. try this if you're having
problems with ploticus EPS files in other applications.
- proc annotate - new attribute clip, which allows annotation to not
influence the overall bounding box.. may be handy if far-out annotations are just as well ignored.
- color - new notation for specifying colors as hex values xrgb(xxxxxx) or xrgb(xxxxxxxxxxxx).
- new function - $boundingbox() - which allows bounding box tracking
to be turned on or off.. turn off if you want to draw something that shouldn't influence the overall bounding box.
- new function - $squelch_display() - squelching of all drawing activity
can be turned on or off.. turn off if you want to run plotting procs invisibly
- code cleanup to allow config files and proc settings to share
common code for processing the settings
- code cleanup for eliminating spurious color change requests, which apparently can improve performance rather significantly
in some cases. Thanks to Harshula Jayasuriya and colleagues.
- docs - direct cgi mode page overhauled; a new page for select attributes
2.30 - Bug fixes
- proc bars - crossover is now cancelled when set to a value below axis min, or above axis max.
- functions $arith(), $arithl(), $isnumber() now handle numbers in scientific notation. Ditto for
- datetime w/ windowing - extra day was being shown, also a spurious warning message was being generated
- datetime w/ windowing - where last stub is AM, should be PM... a workaround is to use eg. laststub: 4PM
- in config file, option: content that requires quotes on the command line (eg. "rectangle= 1 1 4 4")
hadn't been parsed correctly. This is fixed, but quotes should not be used in config file.
- proc getdata now issues an implicit #proc processdata action: breakreset
- Some error messages had been going to the wrong place when -errfile was set on command line
- proc bars - when a crossover is used, one-way error bars need to go the opposite direction for the downward bars
- Noted - the #ifspec operator (used mainly when writing prefab scripts) requires care when intermingling with #clone.
- date arithmetic - a julian dates bug on leap years before 1970 has been fixed.
- proc annotate - clickmap box was way off with textdetails: align=right
- proc annotate - clickmap box (and bounding box) was not being influenced by textdetails: adjust=...
- SVG - the color gray(1) results in black in svg - should result in white.
Ploticus 2.21 (May 2004) – New features
- SVG - text messages on mouseover like done w/ client-side image maps now using overlib or similar.
Here's a working example.
- proc vector can now render error bars and T-bars in arbitrary directions; also vectors can now be rendered
by supplying two data points. Example.
- proc axis - stubhide attribute useful when doing tics but no stubs, allows more control over
tic placement (any of the available stub-related options can be used, and no stubs are rendered).
- proc getdata - commandmr attribute is same as the command attribute
but it accepts a multi-row shell command, terminated with a blank line.
- autorange - numformat parameter which may eliminate problems experienced when working with
very large or very small magnitude data
- proc scatterplot - labelword allows a template to be specified for the labelfield value.
- proc processdata - action: numberrows ... this new action can be used to prepend sequential
numbering to data set rows.
- programmer control over the first portion of all error messages.
Command line arg -errmsgpre. Also may be set within scripts using #proc settings, or
using the $errmsgpre() function.
- proc bars - minlabel attribute may be used to suppress bar labels when value is
below a certain threshold (thanks to Jessika Feustel)
- proc bars - errbarfields now allows one-way positive (upward/leftward) error bars
- proc curvefit - xsort attribute, for forcing an x sort for interpolated curves
- SVG - provide a way to specify target with SVG clickmaps <a xlink:"url" target=targ>
This can be done in proc settings using the new svg_linkparms parameter.
- New date formats - dd-mmm ddmmm
- proc axis - autoyears now works with any date-based increment, and does not require a January
stub to trigger it. Similar improvement for automonths and autoyears
- X11, SWF, GD driver limit of number of points in polygon (or continuous line with SWF) now dynamic (-maxdrawpoints)
- The following error messages silenced, as they can occur during normal operation:
proc legend, no entries exist yet, and
proc getdata warning: no data fields found.
2.21 - Bug fixes
- Fixed bug - proc axis - minorticinc with datetime scaling - inc given in
hours or minutes didn't work
- Fixed bug - select: @sex = m (incorrectly given with one at-sign) caused core dump..
- Fixed bug - legendlabels - size of 120 not long enough when embedded URLs are used. Raised to 256.
- Improvement - heatmap prefab - changed to use 'exact' category matching
- Fixed bug - heatmap prefab - If cutofflist was specified, no plot was produced.
- Improved handling of autorange lowfix=0 but all data negative problem
- Fixed bug involving longwise bar labels problem on stacked bars
- Improvement - proc lineplot - improved handling of degenerate case of NO points in range (anyvalid)
- Fixed bug - proc lineplot - line label is now subject to clipping
- Fixed bug - proc bars - errbarfields - incorrect data field accesses when two values are supplied
- Fixed bug - command line was interpreting arguments like crop.pl as -crop
- Fixed bug - X11 dashed lines - dash pattern was reset at beginning of each segment,
problematic when data points are close together
- Fixed bug - legendentry tag - was sensitive to trailing spaces
- Fixed bug - proc axis - race condition when no stubs and no tics are specified.