/graphic

A grammar of data visualization and Flutter charting library.

Primary LanguageDartOtherNOASSERTION

Graphic

Graphic is a grammar of data visualization and Flutter charting library.
  • Flexible declarative grammar: This visualization grammar derives from Leland Wilkinson's The Grammar of Graphics, and tries to balance between theoretical beauty and practicability. Data processing steps and mark shapes can be composed freely in a declarative specification, not limited to certain chart types. And shape draw methods are customizable.
  • Interaction: With the event and selection definition, the chart is highly interactive, such as highlighting selected items, popping a tooltip, or scaling the coordinate.
  • Animation: Mark transition animation can be set when a chart is built or changed. The entrance animation has various forms.

What's new in v2.0

  • Add feature of transition animation, see details in Mark.transition. And thus the rendering engine is rewrited. The imperative Figure classes are changed to declarative MarkElement classes. See details in this folder: https://github.com/entronad/graphic/tree/main/lib/src/graffiti/element

  • Update terminology to keep same with modern mainstream data visualization libraries. Some class names have changed:

    GeomElement -> Mark

    Attr -> Encode

    Signal -> Event

    Channel -> Stream

    Figure -> MarkElement

    And thus some properties related are also changed, like elements -> marks.

Documentation

See in the documentation.

Migration Guide to 2.0

Some of the terminalogy has been changed in v2.0. Please follow the below guide to migrate your code.

old code new code
GeomElement Mark
Attr Encode
Signal Event
Channel Stream
Figure MarkElement
element: marks:
ColorAttr ColorEncode
ShapeAttr ShapeEncode
element: marks:
IntervalElement IntervalMark
PointElement PointMark
LabelAttr LabelEncode
color fillColor
strokeStyle PaintStyle

Examples

Example of charts can be seen in the Example App. Please clone this repository and run the example project in example directory.

examples

Tutorials

The Versatility of the Grammar of Graphics

How to Build Interactive Charts in Flutter

Share this Lib

Twitter HackerNews Reddit

License

Graphic is MIT License.

Keep Informed

Twitter

Medium

Zhihu