Cairo is a vector graphics rendering package that works on a large number of platforms and is accelerated where hardware backends exist. Using cairo to render the chart makes it integrate nicely with the core of Gtk and also allow the charts to be used outside of Gtk applications, simply linking against cairo.
The flexibility in charting comes from the overall design. Each chart can have zero or more axis. Each chart can have zero or more series, with a series being tied to the axis it is plotted against. All text labels can be controlled through specialization. With this design at the core, adding new functionality, such as a new series type, or an irregular axis is a simple task.
|A collage of some charting features|
- Series types :Lines, bars, points columns, areas, candle sticks, HLOCs, bounded regions, bubbles, pie
- Full control over text labels for axis, values, hover popups on points with the most common formatting built-in.
- Unlimited X and Y axis on an combination of sides/top and bottom of the chart
- Full Dynamic updates allowing changing points, adding and inserting, removing points. Changing or adding axis, series, etc
- Saving to PDF, PS, SVG, or any other format supported by cairo.
- User interaction so you can drag points, zoom in on regions, select points by region or clicking, hover popups showing details for the nearest point
- Support for Gtk versions 2.4.x to 3.x, and generic applications by including cairo.
Availability and Source Code
I designed and implemented this charting package in its entirety as well as many actual application uses for trading. The code is of commercial interest and thus not available for download.
Feel free to contact me to discuss the availability of this package.