Major changes since 2.04:
- New libploticus C API.
- Vector plots.
- Unicode/big5 support (via GD and freetype).
- Disk resource limits lifted.
- CGI-mode fixes.
- Script interpreter overflow fixes.
- Other misc changes and bug fixes.
Provided by Grant Beattie <grant@netbsd.org> in private mail.
New features include:
* client-side imagemaps
* Changed: #proc endproc may now be written #endproc. The old syntax
will also continue to work.
* New feature - proc areadef categories - new modifier selectrows
which allows categories to be taken from data field based on a
conditional expression.
* New attribute - proc processdata - outfile allows result to be
written to a file. This came up because a user wanted to perform
arithmetic (a la getdata filter) to processdata result, and there
was no way to do it.
* New feature - proc annotate can now do drop shadows, beveling, and
colored backing box with or without outline.
* New attribute - proc getdata - pf_fieldnames for defining
post-filter fieldnames.
* New attribute - config and proc settings - numberspacerthreshold
controls when thousands separator characters begin to appear.
* New system variable - CM_UNITS - indicates if working in -cm mode
or not.
* HTML server-side imagemap support has been added.
* The data parsing code has been rewritten, and now allows situations
that weren't allowed before.
* new attribute - proc getdata - nfields - Controls the expected
number of fields per record.
* new attribute - proc getdata - fieldnamerows - like fieldnames but
allows data field names to be given one per line.
* new attribute - proc lineplot - gapmissing - allows missing data
points to cause a gap in the curve. Similar parameter added to lines
and chron prefabs.
* new attribute - proc scatterplot - clustermethod - control how
duplicate points will be clustered.
* new attribute - proc scatterplot - symfield and symrangefield -
allows symbol shape, color, etc. to be controlled by a data field.
* new attribute - proc scatterplot - dupsleg allows symbol shape,
color, etc. to be controlled by degree of duplicity
* prefabs - added rectangle as a standard parameter. It controls
plotting area size (and location, if rendering in paginated
postscript).
* some new functions, including $numgroup() and $dategroup() which are
useful in grouping a set of numbers or dates into bins.
* SVG capabilities. The driver was written by Bill Traill.
* postscript - ISO Latin1 encoding added, so that European
characters may be produced in postscript exactly like they are in
the other environments (ascii 128-255).
* Created graphic files are automatically chmod'ed to mode 644.
* Prefabs
* CGI mode
* A new script interpreter. New flow of control operators including:
#elseif #else #for #while #setifnotgiven #call #write #shell, etc.
Also, increased capacities for data fields and variables (250
chars) and script input lines (3000). The new interpreter involves
some script syntax changes that may cause existing scripts to
break in some cases.
* #sql, a new directive for retrieving data directly from an SQL
database. This is currently under development, and
user-contributed client interfaces to DBMSs such as MySQL and
Oracle would be welcome (the code is in dbinterface.c)
* Added: proc areadef autorange - new subattributes selectrows (for
selecting rows to be considered when scanning for min and max) and
combomode (to allow correct finding of min and max for situations
like error bars and stacked bars).
* Added: proc areadef autorange - now sets variables DATAXMIN,
DATAXMAX, DATAYMIN, and DATAYMAX - the actual minima and maxima of
data field.
* Added: proc axis - stubevery attribute
* Added: proc getdata - pathname attribute, to specify data file
name directly without involving cat(1)
* Added: proc bars - colorfield attribute - set bar color based on a
data field
* Added: proc legendentry - tag attribute
* Added: various new functions
* Added: the temp file default path name and default slash character
can now be changed in pl.h or in a config file.
* Added: resource utilization (cpu time and size of created disk
files) now can be controlled. Default upper limits are 10 cpu
seconds and 5,000,000 bytes. Limits may be altered in pl.h or by
using a config file
* Added: various other config file settings
all dependencies on packages depending on "png" which contain shared
libraries, all for the (imminent) update to the "png" package.
[List courtesy of John Darrow, courtesy of "bulk-build".]
Notable changes are:
* Fixed bug: proc axis - when producing stubs running from negative
to positive, zero is displayed as a very tiny non-zero
value such as 5.2579e-17 due to rounding error.
* Fixed bug: proc getdata - buffer overflow when 'filter' is used
with data records longer than 254 chars, causing garbage
result or instability.
Version 1.41 as of 18 June '01:
* Ploticus now covered under GPL.
* Fixed bug: colored background not completely filling the result window
when scale is being done
* Fixed scripts in test suite: The change in default size (version 1.40)
sometimes caused general layout problems with graphics that were layed
out with an 8.5" x 11" default size in mind. The solution for these
scripts is to add a #proc page and specify pagesize: 8.5 11. Some of
the scripts in the test suite had such problems and are now fixed.
* Fixed bug: EPS bounding box incorrect for 1) pltab output and 2) pl
where result draws into negative absolute coordinate space.
* Fixed bug: proc areadef xautorange/yautorange not working correctly in
some cases when a nearest= value is specified. This bug was
apparently introduced in 1.40.
* Fixed bug: proc lineplot - accum option choking when non-numeric data
encountered.
* Fixed bug: proc rangebar - negative barloc values not working.
* Added: proc areadef - autorange datafield may now be a comma-delimited
list of dfields so that multiple data fields are considered
when determining the axis min and max.
* Changed: scaletypes - times hh:mm:ss and mm:ss - validity checking
relaxed slightly to allow degenerate values such as 0:4:9
* Fixed bug: pltab - incorrect interaction between #font and
sectionheadings
* Fixed bug: proc rangebar - textdetails controls N= label but not
missing label
* Fixed bug: pltab - creates 8.5 x 11 inch gif, png regardless of result
size
* Fixed bug: axis - line grid and gridblock starting point incorrect in X
* Fixed bug: axis - colors incorrect when specified in certain
combinations for tics, stubs, grid
* Fixed bug: bars - ticks not being drawn when truncating was not
switched on
Version 1.40 as of 16 Jan '01:
* proc getdata - variables may be declared and set from within data files
using #set
* proc curvefit - linear regression and correlation
* proc areadef - "autowidth" and "autoheight" attributes for data-driven
plot area size
* proc axis - alternating shaded block backgrounds
* added: new script $functions - $exists() and $notexists() to test if a
@VARIABLE has a value. See functions(pl)
added: new script #operators - #hideund and #showund to control
display of embedded underscores, and #includesh. See scripts(pl)
* added: new scaletype - log+1 scaling for handling log-characeristic
data that may contain values of 0.0
* added: proc areadef - autorange - "incmult", which assists in
automatically determining hi and low margin
* added: proc areadef - "xextracategory" and "yextracategory" attributes,
which allow categories to be added explicitly even when most
categories are defined from data
* added: proc axis - "stubcull" attribute for eliminating stub collision,
or pile up on log axis
* added: proc axis - definable extent for grid lines
* added: cmyk color specification for use with PostScript and EPS.
* added: textdetails - "font" subattribute for setting PostScript font.
* added: proc print - "outfile" and "outmode" attributes allowing proc
print to write to files
* added: proc print - now sets a variable called NSELECTED.
* added: proc legend - "reset" attribute.
* added: proc bars - "hidezerobars" attribute
* added: proc curvefit - "select" attribute
* added: proc curvefit - new curvetype - "avg"
* added: proc tabulate - "showrange" attribute supercedes
showrangelowonly. Range label can be the average of low and
high end of range.
* added: proc rangebar - "logmean" attribute, for computing means and
standard deviations in log space.
* added: proc rangebar - "statsonly" attribute, to compute stats and set
variables without drawing the bar.
added: proc rangebar - now sets the variables RANGEBARIQRMIN and
RANGEBARIQRMAX.
* changed: proc getdata - pl no longer quits when no data could be read.
Scripts can check @NRECORDS after getdata finishes and take
appropriate action.
* changed: default result size is now 8" x 8".
* changed: proc curvefit - data no longer need to be ordered on X for
curve computation
* changed: standalone $functions (those that are not part of an #if
construct) may contain embedded white space
* changed: color specifications - the separator character in rgb(r,g,b)
constructs may be any of comma, dash, colon, or pipe. Comma
was problematic if rgb constructs were put into a comma-
delimited list, as in students example.
* changed: .pls is now a "known extension" for script files.
* changed: improved the heuristic for automatic axis increment
determination
* fixed bug: proc scatterplot - if select condition used or if values are
out-of-range, labels from data and datapoint size from data
may be incorrect due to data alignment bug.
* fixed bug: proc lineplot - if select condition used or if values are
out-of-range, labels from data may be incorrect due to data
alignment bug.
* fixed bug: proc rangebar - file close problem causing core dump on
linux
* fixed bug: multipage plots & page breaks - if proc page was used to
break to page 2, and proc page wasn't used for page 1,
drawing continues on page 1.
* fixed bug: proc getdata - select was not working when field names used
(message: no such data field).
* fixed bug: date scaling - dates containing embedded dashes were not
converted properly when used. as locvalue e.g. proc
annotate location.
* fixed bug: $max() function was giving incorrect results
* fixed bug: proc page - on multipage landscape plots using PNG/GIF only
the last page was viewable.
* fixed bug: PNG/GIF driver memory leak when doing multipage plots.
fixed bug: incorrect fda() calls in tabulate.c and
processdata.c.
* fixed bug: proc getdata filters - potential instability if references
were made to data fields beyond NFIELDS.
* fixed bug: proc bars - tics produced through the use of leftticfield,
rightticfield, and midticfield were being drawn outside of
plotting area
using the newest PNG library won't work on system with an older one. To
prevent such problems with precompiled binary packages require at least
"png-1.0.9nb1" in all dependences.
Fixes PR 11168 by Alaric Snell <alaric@alaric-snell.com>
Changes:
Version 1.39: Sept 29 '00
*Changed - proc transform renamed as proc processdata ('transform' still
works)
*Changed - script syntax - references to undeclared @variables are now left
alone. Formerly they had resulted in syntax errors.
*Added - proc areadef - autorange - if nearest= is omitted a reasonable
default will be used for numeric data. Formerly it defaulted to exact min
and max, which was usually not desirable. It is now possible to say
nearest=exact to get exact min and max, should that be wanted.
*Added - proc areadef - categories - a new attribute called
'catcompmethod', to control the details of how category comparisons are
done.
*Added - proc areadef - now sets variables XMIN, XMAX, YMIN, and YMAX
*Fixed bug - proc areadef - autorange - problems with negative numbers;
*Added - proc axis - 'stubs increment' with no following value gives a
reasonable default increment. So does 'stubs inc 0'.
*Added - proc bars - barwidthfield and bwfscale for data-driven bar widths
*Added - proc datesettings - several new options for omitting weekends
*Fixed bug - proc getdata - choking on long path names. Increased sizes of
many buffers throughout.
*Fixed bug - proc getdata field names - a name beginning with a number such
as 16kHz was being interpreted as an integer field number.
*Added - proc processdata - new actions 'breaks' to do break processing on
data sets, and related action 'breakreset'.
*Added - proc rangebar - when using meanmode, plotfields may now be used
for getting a mean, standard deviation, and optionally an N value.
*Changed - proc rangebar - variable NVALUES is now always set, even if
nothing was plotted (it will be zero in this case).
*Added - proc rangebar - new attributes showbriefstats, showstatsfile,
briefstatstag to make a file holding computed statistical info that can be
used by other programs
*Added - proc rangebar - allow 'none' for outliernearsym and outlierfarsym,
for when displaying outliers using only labels or line segments.
*Added - proc rangebar - a new attribute called 'skipmed', to omit median
and percentiles calculation when only means and standard deviations are
needed (a performance consideration).
*Fixed bug - proc rangesweep - bug involving the use of 'select'
*Added - new function - $dataitem(), to access a single data item from the
current data set by row and field position.
*Added - command line / proc page - the options -croprel and -crop
*Changed - ploticus temp file naming now uses shorter names
*Added - user-contributed RPM spec file. See the Download page under
Accessories.
*Changed - makefile & build - copied gd_io.h to the gd16 subdirectory for
successful solaris 'make' build
*Added - MP/ix added to Makefile
*Changed - gallery example EPS or Postscript files will no longer be stored
on the web site, except for the pltab examples.
*Changed - ploticus manual in postscript form will no longer be maintained
or distributed.
Version 1.38: Jun 9 '00
*It is now possible to set the directory used for temp files, using a new
config attribute tmpdir.
*under cygwin, problems have been reported with pltab writing postscript to
standard output. Workaround is to use pltab -o
* Added new proc - proc datesettings
* Added - an option to omit weekends with date or datetime scaling,
via proc datesettings
* Improved - numeric data in scientific format e.g. 4.335e12 now
supported
* Improved - #declare and #musthave now can take comma-delimited lists
of variable names
* Fixed bug - proc bars, error bars not positioned correctly w/
clustering
* Fixed bug - proc rangebar, 1.5iqr mode, incorrect upper tail length
* Fixed bug - proc rangebar, zero length tail should not be drawn at all
* Fixed bug - proc tabulate, entries should not be sorted when valuelist
is used
Changes include:
* Fixed bug - categories scaling - handling of duplicate category tags
* New attribute - proc bars - numberformat attribute
* Improved - programs 8-bit clean and support locales - thanks to Oleg
Bartunov
* Fixed bug - removed a few x11 compile dependencies that were present
even with -DNOX11
* Improved - proc transform - numbernotation may be applied to TOTALS
* Fixed bug - proc rangebar - 1.5iqr tails/outliers were incorrect for
degenerate cases (small N)
* Added a new function called $fieldname()
* Improved - proc tabulate now allows NO ordering
* Withdrawn - proc pie - lower edge of pie boundary is "fuzzy". A gd
rounding error?
* Fixed bug - numbernotation - spacer chars being added within leading
blank zones in stubs
* Fixed bugs - proc lineplot - incorrect fill under stairstep curve and
lastseglen
* Fixed bug - proc getdata - program crashed when proc getdata filter
encounters blank lines in data file
* Fixed bug - proc rangebar - 1.5 x IRQ tails not computed correctly
(also affects outliers)
* Improved - postscript %%Creator and %%Title tags not used correctly
* Fixed bug - proc pie - line+label not working correctly on gallery
example pie4.htm
* Improved - proc line - first coordinate pair should implicitly do a
'moveto'
* Added pltab -landscape option
* Added new function $max()
* Fixed bug - pltab centering of column stubs (had been left-aligned)
* Fixed bug - multi-page landscape postscript - 2nd page orientation was
incorrect
* FAQ Mar 1 '00 (expanded and updated)
* Added transparent color; use as background color to create transparent
GIFs and PNGs.
* Added feature to display numbers in european or us notation with
separators for large numbers (settable in config file).
* Added proc tabulate accumfield option.
* Added feature to make proc bars stackfields easier to use.
* Fixed bug - proc tabulate not handling date (etc.) units correctly when
ranges not specified.
* Fixed bugs - proc areadef autorange - various problems involving large
data values, datetime data, and nearest=hours.
* Fixed bug - datetime scaletype - all values 'outside window' when
default date & time notations in use, even though no window was defined.
* Added areadef autorange sub-parameter format.
* Added areadef autorange nearest=day.
* Fixed bug - proc bars - default bar width sometimes much too wide;
added a sanity override.
* Added proc bars lablepos attribute
* Fixed bug - config file "units: cm" not working.
* Added -cm and -inches command line options.
* Added -o stdout to write GIF, PNG, or EPS result to standard output.
* Fixed bug - script files ending in .pl not handled properly.
* Fixed bug - proc rangebar plotfields not working properly.
* Fixed bug - proc bars taillen not being cloned properly for errorbars.
* Fixed bug - proc areadef box attribute not handling cm properly.
* Fixed bug - proc rangebar - 1.5*interquartile range tails were not
truncated at the min/max.
* Added proc bars colorlist attribute