ChartDirector 7.1 (C++ Edition)

ChartDirector Object Model Overview


This section will give a very brief high level overview of the ChartDirector object model, which may be helpful for understanding of subsequent ChartDirector tutorials. The full details object model and API are documented in the ChartDirector Reference section.

The Top Level

At the top level, all ChartDirector charts (including meters) are subclass of the BaseChart class. The following describes the top level class hierarchy.

BaseChart

The BaseChart class represents features common to all ChartDirector charts, such as the chart background, legend box (LegendBox), titles and custom text boxes (TextBox). It also contains a DrawArea tool, which allows you to add arbitrary custom drawings to the chart.

PieChart

The PieChart class, as it name implies, represents pie charts, including donut charts. PieChart objects contain Sector objects, which represent the sectors in the pie charts.

XYChart

The XYChart class represents all chart types that have x and y axes but are not true 3D chart types. Each XYChart object contains a PlotArea object, representing the rectangular region where the chart is actually drawn. A XYChart also contains Axis objects, representing the x and y axes.

The actual chart types in a XYChart are implemented as layers. The available layers are listed below. A XYChart can contain many layers, so combination and custom chart types can easily be created.

LayerDescription
BarLayerRepresent all style of bar layers, such as simple bar layers, multi-bar layers, stacked bar layers, and percentage bar layers.
LineLayerRepresent line layers.
SplineLayerRepresent spline line layers.
StepLineLayerRepresent step line layers.
TrendLayerRepresent trend layers. A trend line or curve is the best fit line or curve computed using the least square method.
InterLineLayerA layer used for filling regions between two lines. The lines can come from LineLayer, SplineLayer, StepLineLayer, TrendLayer, or from Mark.
ScatterLayerRepresents scatter and bubble layers.
AreaLayerRepresent area layers.
HLOCLayerRepresent high-low-open-close layers.
CandleStickLayerRepresent candlestick layers.
BoxWhiskerLayerRepresent box-whisker layers.
VectorLayerRepresents vector layers.
ContourLayerRepresents contour layers.
DiscreteHeatMapLayerRepresents discrete heat map layers

The above layers are derived from the Layer class, which represents features common to all layers.

Each chart layer contains one or more DataSet objects. A DataSet object represents a data series. Several chart types require multiple data series, such as high-low-open-close, candlestick and box-whisker charts. Other chart types support combining the data series in various ways. For example, in a bar chart, multiple data series can be combined to form a stacked bar chart, percentage bar chart, multi-bar chart, multi-stacked bar chart, etc.

ThreeDChart

The ThreeDChart class is the base class for true 3D chart types. It represents features common to all true 3D chart types, such as controlling the elevation, rotation and twist angles, 3D perspective, 3D plot region position, size and the style of the boundary walls.

SurfaceChart

The SurfaceChart class represents surface charts. A surface chart is a true 3D chart representing the value of a variable (the z coordinate) over the (x, y) plane.

ThreeDScatterChart

The ThreeDScatterChart class represents 3D scatter charts. A scatter chart is a true 3D chart representing (x, y, z) data points with symbols. A single chart can control multiple groups of symbols of different styles, represented using ThreeDScatterGroup objects.

PolarChart

The PolarChart class represents polar and radar charts. Each PolarChart object contains a RadialAxis and an AngularAxis. The actual chart types in a PolarChart are implemented as layers. A PolarChart can contain many layers, so combination and custom chart types can easily be created.

The available layers are listed below.

LayerDescription
PolarLineLayerRepresent line layers, as well as scatter and bubble layers. (A scatter layer is a line layer with line set to Transparent. A bubble layer is a scatter layer in which the data symbols are of variable sizes.)
PolarAreaLayerRepresent area layers.
PolarSplineLineLayerRepresent spline line layers.
PolarSplineAreaLayerRepresent spline area layers.
PolarVectorLayerRepresent vector layers.

The above layers are derived from the PolarLayer class, which represents features common to all layers.

TreeMapChart

The TreeMapChart class represents tree map charts. A tree map chart partitions a rectangle into smaller rectangles proportional to their data values. The smaller rectangles in turn can be partitioned to even smaller rectangles. It can be used to visualize data structure that have multiple levels of branching.

PyramidChart

The PyramidChart class represents pyramid, cone and funnel charts. PyramidChart objects contain PyramidLayer objects, which represent the layers in the pyramid, cone and funnel charts.

BaseMeter

The BaseMeter class is the base class for all meters. It represents features common to all meters. A BaseMeter object contains MeterPointer objects for representing meter pointers.

AngularMeter

The AngularMeter class represents angular meters, which are meters of which the meter pointers rotate to show the readings.

LinearMeter

The LinearMeter class represents horizontal and vertical linear meters, including bar meters. They are meters which show the readings with the linear movement of meter pointers or the lengths of bars.

MultiChart

A MultiChart object is a container for combining multiple BaseChart objects into a combined chart object.

FinanceChart

FinanceChart is a financial charting library built on top of the main ChartDirector library. It extends MultiChart by implementing many financial indicators, and allowing complex financial charts to be composed easily.