The GtkStripChart Widget Collection

SourceForge Logo Strip Charts for GtkPlot provides a set of GTK widgets for automating the creation and management of strip chart plots. A 'chart' consists of at least one (and typically several) 'strips' of data plotted horizontally. Its assumed that all strips have a common x-axis (typically time), and are to be scrolled and zoomed as a unit. Strips may contain multi-colored 'limit lines' (typically used to highlight plotted data that is out-of-band) and draggable cursors (typically used to examine the plotted data more closely).

screenshot

Technology; License

The GtkStripChart Widget Collection is built on top of the GtkPlot widget set (normally distributed as part of the "gtketxtra" widget collection, http://gtkextra.sourceforge.net/) It currently compiles & works under gnome-1.4. It has not yet been ported to gnome-2.0, although that is planned ...

This code is released under the GNU LGPL, making it suitable for general application development.

Overview

Each strip may have several 'limit lines': a y-value, below which the data is graphed in a different color. A 'limit line' is typically used to make it visually clear when the data has gone out of bounds (too low a pressure, too high a humidity, etc.) Because multiple limits are supported, hi-lo limits, or warning/alarm type limits can be set. Each individual strip can have its own unique limits, although these can also be set as one from the chart class.

Each strip can have one or more 'cursors': a vertical line that intersects the data, and can be scrolled left or right by dragging with the mouse. The cursor is handy as an input element, as a marker to indicate a specific time, a range of values, etc. Although each strip can have any number of independent cursors, they can also be ganged together by the chart, and dragged as a unit.

In the current implementation, in order to set a limit line or a cursor that applies to all of the strips, one must add all of the strips to the chart first, and then set the limits/cursors through the chart methods. (This limitation should be removed).

Each of the GtkStripChart widgets inherits from one of the GtkPlot widgets, and most of the secondary attributes (such as line widths, styles, etc) should be set through the GtkPlot interfaces.

Each individual strip chart has a copy of the line style, width, and symbol to use when plotting the data. These can be over-ridden on a strip-by strip basis as desired, or they can be set en-mass by setting the corresponding attributes in the StripChartChart.

Attributes and the like should be set *before* adding strips to the chart; otherwise they will probably not take effect. It would be a good idea to add setters for attributes so that they could be set after strips have been added.

The strips are centered in the middle of the chart canvas based on the left/right/bottom/top margin settings. The margin settings are in pixels. (Ideally, the margin settings would be automatically generated based on the size of the label font ???)

The labels on the bottom of the graph are date/time labels. They can be disabled with the 'use_date_labels' flag. These labels are *not* currently fully i18n'ed. The number of labels used on the bottom of the chart is automatically determined from the inter- label spacing, (set in pixels)

Download

Bugs reports, file downloads, and the latest CVS is now available at the GtkStripChart SourceForge Project Site.

The current version is Version 0.1.3, July 2002