Release notes for earlier versions

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 catlines

  • proc tree

  • 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:
          clickmapurl: [target=new]

  • 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. Examples

  • 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 accomodate chunks of javascript code as used with SVG mouseover/tooltip method #2.

  • 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. More info

2.32 Bug fixes

  • date notations involving dots (such as 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

  • datematic - when working with date, datetime, or time data, datematic will automatically determine a reasonable default axis range, stub format, stub increment, and will enable autoyears, automonths, or autodays as appropriate. In proc axis this is used by specifying stubs: datematic. In proc areadef autorange, it is used by specifying nearest=datematic.
      #proc areadef
        xautorange: datafield=1 nearest=datematic
        xaxis.stubs: datematic

  • autorange - lots of new nearest options

  • 64 bit Linux supported. Version 2.31 compiles and runs on AMD64. The source code now gives an (almost) clean -Wall compile .

  • lineplot - new feature - gapmissing: auto detects omitted data points without requiring missing data codes be present.. heuristic is based on interval between 1st 2 data points.

  • pl command line - new option -noshell disables all internal shell invocations, useful ie. when testing a script from a non-trusted source.

  • proc axis - new features stubs: minonly, stubs: maxonly, and stubs: minmaxonly to render stubs only at the axis minima, maxima, or both.

  • proc axis - new attribute - arrow for placing an arrowhead at the axis maxima.

  • proc line - new attribute anchor allows drawing relative a figure relative to an anchor location (useful when drawing the same figure repeatedly in different locations).

  • proc axis - new attribute nolimit that can be used to disable the axis drawing "circuit breaker" for those special cases where it is a hinderance.

  • proc processdata - action:stats - can now produce one set of stats based one or several data fields (values all taken together).

  • clickmap is now automatically disabled in direct cgi mode, since it's not applicable there.

  • proc page - new attributes map and csmap - allow clickmap generation to be turned on from within a script instead of on the command line.

  • win32 - when PNG/GIF/JPEG image output is written to stdout, stdout should now be set to the appropriate coding.

  • proc rect - to get no fill color you can now say color: none (used to have to say just color: )

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. Example.

  • -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.

  • A new SVG mouseover/javascript scheme which gives better results and produces SVGs that support mouseover independently (without involving the containing HTML file). Thanks to Jamie Echlin. More info. Requires 2 javascript files available here.

  • 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 conditional expressions.
  • 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 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.

Pre-2.21 change logs


Ploticus 2.42 ... May 2013 Terms of use / GPL