| Contents > Getting Started with SharpPlot | Index |
New Features in SharpPlot
Deployment
The major benefit for existing GraPL customers is in ease of deployment and execution speed. SharpPlot is distributed as a single DLL (approximately 1Mb) which is fully-managed compiled C# code which communicates with your application entirely via data (passed as arguments) and explicit results. This should entirely eliminate the many security issues which bedevil COM servers when run with IIS web-servers.
SharpPlot has been tested with the latest build of the Mono platform, and all the vector output formats work completely correctly. There may be some restrictions on the capabilities of images (for example gradient fills and transparency on lines) but again it mostly works as you would expect.
Rendering improvements
The range of supported image formats has been greatly extended (see the .Net documentation on the Bitmap class) and the quality now matches the best of the Vector formats. Gradient fills, transparency and anti-aliasing are all fully supported. To go with the improved raster support, SharpPlot now offers the option to render to an image-map which allows raster charts to support hyperlinks, hints, tips and simple Javascript handlers in the same way as VML and SVG.
The metafile format supported by .Net is also much improved, and allows charts rendered as metafile objects to be saved to disk and imported into Word or PowerPoint without loss of quality.
New Capabilities
Relatively little has been added in this build. The only major new feature is detailed control over tick-mark length to allow complex time-series to define a hierarchy of time-periods (months, quarters etc). This goes along with the newly added ability to span X-axis labels to make for a much more flexible labelling scheme.

Note that the major tickmarks have been set to 150% or 50% of standard, and the default XTickThreshold has had the effect of eliminating the gridlines at the smaller ticks.
data = new int[] {1,3,7,6,9,8,9,7,9,10,7,5};
xticks = new int[] {150,50,50}; // X-ticks relative to standard (repeated as needed)
xlabs = new string[]{"Jan\nFirst quarter","Feb\nFirst quarter", ... ,"Dec\nFinal quarter"};
sp.LabelLineSpacing = 140;
By combining the varied tick lengths with spanned labels, it is possible to represent any reasonable combination of time periods.
Wrapping text
Y-axis Labels and the Y-axis Caption (Atend style) now wrap automatically into the available margin width if no formatter is given.The only other auto-wraps are headings, subheads, footnotes and the atend X-axis caption where the width is also known.
Formatters
Numeric and text pictures both now use the ~ to suppress the matching digit in the input. A handy use for this is to get months labelled as JFM...D by setting a date picture of MMM and a formatter X~~ to cut down to the first letter of the month.
Dates
The date formatter accepts newlines (dodges the limitation in the .Net ToString method) and also tolerates dates as vectors of 19530321 numbers as well as OLE dates. Many timeseries still use this style for the date column.
Duration formatting
X or Y style Duration will trigger base-60 formatting. No assumptions are made about the units, except that base 60 is used for magnitudes and : as the separator. Use ValueTagStyles.Duration to have the same formatting applied to the value labels.
Angled value tags
You may tag data points with angled values, controlling the angle with ValueTagAngle property, which defaults to 34 deg.
Altitude shading
Response plots and contour plots now have the option of color-coded altitude shading to represent the Z-value. A scale bar may be added to both contour plots and bubble charts to help the user interprtet the height data.
Vector Fields and Directed Graphs
This is a new chart type which can be used to plot current flows, PERT charts, or any kind of directed graph. The short tutorial has several examples.
