Personal tools

Charting Components

From OpenLaszlo

Contents

High-level Goals/Requirements

Chart types

Support for standard 2D, rectilinear, cartesian charts

  • scatterplot
  • line charts
  • bar charts
  • area charts
  • bubble charts

We will also provide some support for

  • Pie charts

Can you also support?

  • Stacked Bar Charts
  • Groupable Stacked Bar Charts.

Data

  • Data access via LZX datasets

Series data

  • Types of series
    • linear (integer, float)
    • categorical series (string)
  • tip text
  • Support for multiple dataseries
    • enable/disable (bell&whistle: fade in/out)
  • Text label
  • Tip ?
  • callback/method to compute a series column (incloding tips)

Chart features

  • conversion between chart view coordinates and data/axes values
  • chart title (extensible rendering)
  • default width, height?

plot area

  • chart specific rendering
  • hit detection for data values
  • background resource
  • opacity

axes (for 2d charts)

  • extensible rendering
  • tic marks
    • enable/disable
    • apis for either # of tics or spacing between tics
    • major tics (extensible rendering)
    • minor tics (extensible rendering)
    • tic mark labels
      • enable/disable
  • axis label
    • enable/disable
  • auto min/max/zero-ing
  • extenisble rendering of axis

Legend

  • title (extensible rendering)
  • default internal layout (vertical)
  • positioning (left, right, top, bottom) - EDB: this can be implemented easily outside the api via a containing view and a relatively simple layout, or even just some contraints.
  • marker and series label layout (marker on left)
  • auto size to content
  • text style properties on title and series labels
  • Extensible rendering of all chart features

Text styles

  • font properties
  • rotation (only works with embedded fonts)
  • extends/uses exising <style> componentry

Line stroke and fill styles

  • line stroke
    • width
    • linestyle (future release)
    • color
    • opacity
  • fill
    • gradient properties
    • bgcolor
    • fgcolor
    • opacity
    • image
      • tile/stretch/crop
  • extends/uses existing <style> componentry as makes sense

Chart adornments

  • value lines
  • value regions
  • value points

Interactivity

  • display of tips for individual data items
  • zoom/pan/scroll for 2D chart plot areas
  • hit detection for individual char elements and legend
  • Drill down to other charts by clicking on chart reigons. Example clicking on a sector of a pie chart can open another pie chart, showing the details of that sector only.

Additional Goals

  • Reasonable interoperability with grid components
  • Performance goals
    • Max 1000 lines or points per chart.


Draft of Charting Components API

[_pw9_]

nvnv