- 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.
-
Add feature of transition animation, see details in
Mark.transition
. And thus the rendering engine is rewrited. The imperativeFigure
classes are changed to declarativeMarkElement
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
.
See in the documentation.
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 |
Example of charts can be seen in the Example App. Please clone this repository and run the example project in example directory.
The Versatility of the Grammar of Graphics
How to Build Interactive Charts in Flutter
Graphic is MIT License.