Graphic is a grammar of data visualization and Flutter charting library, with there features:
- A Grammar of Graphics: Graphic derives from Leland Wilkinson's book The Grammar of Graphics, and tries to balance between theoretical beauty and practicability. It inherits most concepts, like the graphic algebra.
- Declarative and Reactive: As is encouraged in Flutter, the chart widget of Graphic is declarative and reactive. The grammar of data visualization is implemented by a declarative specification and the chart will reevaluate automatically on widget update.
- Interactive: With the signal and selection mechanism, the chart is highly interactive. It is easy to pop a tooltip or scale the coordinate.
- Customizable: With the shape and figure classes, it's easy to custom your own element, tooltip, annotation, etc.
- Dataflow Graph and Operators: Graphic has a internal structure of a dataflow graph and operators. That is how the reactive reevaluation and interaction is implemented.
It might be interesting to compare how to do things in each library. It’s not clear if Graphic supports map-drawing yet?
Also, I wonder if you can do animations in Graphic? I’ve done it with Observable Plot, but it’s not designed for it (no incremental updates) and the frame rate can bog down.
[1] https://observablehq.com/@observablehq/plot