ASE Home Page Product Download Purchase Support About ASE

ChartDirector Ver 3.0 Release Notes


Enhancements in Ver 3.0

ChartDirector Mark Up Language
Text labels in ChartDirector can now be encoded with the ChartDirector Mark Up Language (CDML). CDML is a simple language similar to HTML. It allows text to be marked up with special tags, so that it can contain multiple fonts of various sizes and colors, with images and icons embedded, etc.
Anti-Alias
All chart types now support anti-alias. The anti-alias mode for text and graphics can be independently configured.
Multi-Chart
A new chart type that acts as a container for other charts. Useful for combining several charts in a single chart image, such as when creating complex financial charts.
Polar/Radar Chart
A new chart type for supporting polar/radar charts. Supports line, spline, area, and spline area layers. Data points can be labeled with text and be represented with data symbols of variable sizes (polar scatter and bubble charts).
Variable Depth/Height Pie Chart
A pie chart in which the 3D depth or height of the sectors are variable and controlled by another data series. Each sector can have a different 3D depth or height.
Sector Explode Group
Multiple sectors in a pie chart can now explode as a group. In normal sector explosion, each exploded sector will become a separate piece. In a grouped sector explosion, the sectors in the group (the sectors must be adjacent to each others) will remain in one piece.
Spline Line Layer
A new XYChart layer which uses spline curves with configurable tension to join the data points.
Step Line Layer
A new XYChart layer which uses step lines to join the data points.
InterLine Layer
A new XYChart layer which can be used to fill the region between any two lines from line layers, spline line layers, step line layers, trend line layers, or axis marks. Different colors can be used depending on which line is on top.
Box-Whisker Layer
A new XYChart layer which represents data as box-whisker symbols or its subset (such as just a box or just a whisker line). For example, a simple gantt chart can be created by using just the box part of the symbol.
Variable Symbol Size (Bubble Chart)
The data symbol sizes can now be controlled by another data series. Each symbol can have a different size. The horizontal and vertical symbol sizes can be independently controllable. This feature can be used to create zones around data points. If circles are used as data symbols, the chart is becomes a bubble chart.
Percentage Bar Layer
A new data combine method in which the data sets are scaled so that each stacked position is sum to 100.
Percentage Area Layer
A new data combine method in which the data sets are scaled so that each stacked position is sum to 100.
Mutli-Stacked Bar Layer
A bar chart type combining the multi-bar style with the stacked bar style. It creates stacked bars that can be clustered into groups.
Touching Bars
A special constant to allow the bars to touch each others so that they shared a single border.
Auto Hide Data Labels
For stacked bar and area charts, if a stack segment is too small, there may be insufficient space for the data labels. In previous version of ChartDirector, the data labels will overflow to adjacent stack segments. Now it is possible to automatically hide the data labels if there is insufficient space.
Confidence and Prediction Band
The trend line layer now supports confidence and prediction bands around the trend. These bands represents the confidence interval of the trend line and the data points. For example, a 95% confidence band means there is 95% probability that the "real" trend line is in the band.
Trend Layer Parameters
The trend line layer now supports querying of linear regression parameters, including slope, intercept, correlation coefficient and standard error.
Plot Area Clipping
ChartDirector can now clip the plot area to avoid drawing outside the plot area even if the axis scale is insufficient to cover the data points. (This will not occur in auto-scaling but can occur if the axis scale is chosen manually.)
X and Y Zone Colors
In previous version of ChartDirector, zones of different colors can be defined on the plot area background to represent data ranges. It is now possible to define the zones as a dynamic color, and use this color to draw the chart. For example, if a zone color is used to draw a line or fill an area, the line or area will have different colors depending on the data values represented by the pixel coordinates.
XY Axis Swapping
All XY Chart layers now support XY axis swapping. For example, it is now possible to draw a stacked area chart in which the area stacked from left to right (instead of bottom to top).
Axis Reversal Support
Both X and Y axes can now reverse in direction. For example, instead of pointing from bottom to top, the vertical y-axis can now point from top to bottom.
Auto-Scaling Support for X-Axis
In previous versions of ChartDirector, only the y-axis has auto-scaling. Now both x and y axes supports auto-scaling.
True Date/Time Axis Scale
Both x and y axes can now support true date/time scale, in addition to linear, log and enumeration scales.
Major and Minor Ticks and Grid Lines
Both x and y axes can now support major and minor tick and grid lines, with independent style control.
Axis Querying
In previous version of ChartDirector, if auto-scaling is used, it is difficult to obtain the axis automatically determined axis range. Now special APIs are provided to obtain these information.
Extra Field Support
ChartDirector now supports user defined fields in labels, image maps, etc. For example, you may add icons as extra fields to labels, or add hidden id fields for the data points to be used in image maps.
Parameter Substitution
The parameter substituion mechanism has been expanded to include more variables. Examples include percentages and accumulated percentages for stacked charts, and user defined fields for labels and image maps.
Output to Session Varaibles
[ASP/COM/VB, .NET and PHP editions only] ChartDirector now has a special method to simply outputting chart images to session variables.
Output to Temporay Files with Garbage Collection
[ASP/COM/VB, .NET, Perl and Python editions only] ChartDirector now supports output to a temporary file in a given directory. ChartDirector will automatically create a unique temporary file name. It will also automatically remove temporary files older than a certain period to avoid accumulation of files.
Output to OLE IPicture Interface (VB Picture/Image Controls)
[ASP/COM/VB edition only] ChartDirector now supports output to an object with an OLE IPicture interface. The OLE IPicture interface is the interface used by Visual Basic Picture and Image Controls. The chart image can be displayed directly by these controls without going through intermediate files.
Output to .NET Image Objects
[.NET edition only] ChartDirector now supports output to a .NET Image object. This allows ChartDirector charts to be displayed in .NET Windows Forms easily using standard PictureBox controls.
Output to BMP
ChartDirector now supports outputting the BMP images in addition to PNG, alternative GIF, JPEG and WBMP.
Optimized Color Reduction Algorithm
ChartDirector now supports an optimized color reduction algorithm for reducing the number of colors in a chart to 256, with very little loss in chart quality that is hardly visible to the human eye. The charts, however, will be much smaller in file size because palette mode formats can be used instead of true color formats. This is most useful for Internet applications with bandwidth efficiency concerns.
Data Manipulation Utilities
Provides many data manipulation functions operating on arrays, such as array add, subtract, multiply, divide, computing moving averages, moving standard deviations, moving correlations, filtering, shifting, inserting, etc. Useful for creating financial indicators.
Random Table Utilities
A utility to generate a table with random numbers to simulate a database table. This is intended for demonstration and testing purposes.
Database Table Utility
[ASP/COM/VB and .NET editions only] ChartDirector now includes a utility class for reading data from a database table, and retrieve its rows and columns as arrays for use with ChartDirector.
Font Table
ChartDirector now supports specified fonts as an index to a font table. The default fonts are also specified in the font table. This feature allows all fonts in a chart to be configued in one place. This also facilitates internationalization by changing the default fonts to fonts that contain international characters.
Default Number Formatting and Date/Time Representation
By default, ChartDirector uses "dot" as the decimal point, and use English for dates that needs to be specified in textual form (eg. "Sun", "Mon", "Tue", ... and "Jan", "Feb", "Mar" ....). These default settings are configurable to facilitate internationalization.
Low Level Image Manipulation
The low level graphics API now supports many more graphics operation, such as resizing, rotating, and various transformations (affinity transform, wave transform, etc), with configurable resampling filters.

Behaviour Changes in Ver 3.0

Anti-Alias
ChartDirector Ver 3.0 by default creates charts with anti-alias shapes and text. Previous versions of ChartDirector only uses anti-alias in text.

Anti-alias produces charts of much higher quality. For pie, line and area charts in PNG image formats, the image size in bytes may become larger. It is because anti-alias may increase the number of colors significantly for these types of charts. A chart that originally can be saved in palette mode may now need true color mode. This increases image size.

If larger image size is of a concern, it can be addressed by using the optimized color reduction algorithm (see below). Another option is to disable anti-alias for shapes by using the BaseChart.setAntiAlias method.
Optimized Color Reduction Algorithm
In previous version of ChartDirector, if an image is to be converted to 256 colors, a standard "web-safe palette" is used. The web-safe palette is designed to be optimal for very old browsers (eg. Netscape 1.x/2.x browsers) on 256 color computers. Dithering is then used to approximate a color by mixing pixels from the web-safe palette. Dithering may introduce "dot patterns" on the image.

In ChartDirector Ver 3.0, the default color reduction algorithm is enhanced to use an optimized color palette generated dynamically based on the image. Because the color palette is optimal, no dithering is needed. The image created will be very close to the original image, with disortions hardly visible to the human eye.

Unless you are using very old browsers on 256 color displays, the new algorithm should produce images with much higher quality.

The old algorithm is still available by using the DrawArea.setPaletteMode method.
Auto-scaling Margins
In previous versions of ChartDirector, auto-scaling will try to use the maximum possible region in the plot area to plot charts. As a result, the data representation may touch the top or bottom edges of the plot area.

In ChartDirector Ver 3.0, by default there will be a 10% margin. As a result, the axis scale chosen by ChartDirector Ver 3.0 may be slightly different from the scale chosen by previous versions of ChartDirector.

The auto-scaling margins can be configured with the Axis.setAutoScale method.
X-Axis setLinearScale
In previous version of ChartDirector, if the "setLinearScale" method of the XAxis object is used without specifying any tick increment, the x-axis will have no tick.

In ChartDirector Ver 3.0, if you use "setLinearScale" without specifying any tick increment, the ticks will be automatically determined. This is to make the "setLinearScale" methods of the x-axis and y-axis behave in a consistent manner. (In ChartDirector Ver 3.0, the x and y axes are symmetrical and unified into a single Axis object.)

Upgrade Considerations

Code Compatibility
ChartDirector Ver 3.0 is designed to be code compatible with all previous versions of ChartDirector. That means all source code should run without modification.
Link Compatibility
For compiled programming languages that needs to link to ChartDirector at compile time, it may be necessary to recompile and/or relink the programs.

For C++, the programs need to recompile using the updated headers and relink to "chartdir30.dll" (instead of "chartdir25.dll" or other earlier versions of ChartDirector DLL).

For ASP.NET programs in code-behind style or for .NET Windows Forms programs, the programs need to recompile with the updated ChartDirector assemblies.

For Visual Basic programs, if they access ChartDirector.API using late binding (that is, using CreateObject), there is no need to recompile the programs. Note that all sample codes and documentation that come with ChartDirector use late binding. If your code uses the same method as the examples, there should be no need to recompile your programs.

On the other hand, if a Visual Basic program access ChartDirector using early binding (that is, using "New ChartDirector.API"), it is necessary to recompile the program with the updated ChartDirector component.
Behavioural Compatibility
The charts produced by ChartDirector Ver 3.0 could be slightly different from the charts produced by earlier versions of ChartDirector using the same source code. Please refer to Behaviour Changes in Ver 3.0 for details.
License Compatibility
Advanced Software Engineering's licensing policy is that all commercial software licenses will be entitled to free upgrade for the next version of the software, and thereafter, free upgrade for another 12 months.

Therefore, all existing ChartDirector Ver 1.x and Ver 2.x licenses are still valid for ChartDirector Ver 3.0. The license code is compatible and does not need to change.
Upgrade Procedure
If you are using ChartDirector with Microsoft IIS, before the upgrade, you would need to stop the "IIS Admin" service first using the Service Control Panel. It is because IIS may lock up several ChartDirector files, preventing the upgrade. Stopping IIS using the "Internet Services Manager" or stopping the "World Wide Web Publishing" service is not sufficient, as it does not actually stop IIS.

To upgrade ChartDirector, simply install the new version on top of the old version.

For the ASP/COM/VB and .NET editions of ChartDirector, the setup program will uninstall the existing ChartDirector before installing the new version.

For the PHP/Perl/Python editions of ChartDirector, please remember to update the files "phpchartdir.php", "perlchartdir.pm" and "pychartdir.py". These files may have been copied to the various scripting directories in your computer. It is impossible to use the old versions of these files with the new version of ChartDirector.

For PHP running on Apache servers, you may need to restart the Apache servers for the updated ChartDirector to take effect.