- Flint ist eine Visualisierungssprache, die anhand der Bedeutung von Datenfeldern automatisch Parsing, Achsen, Formatierung und Farben festlegt, sodass sich Diagramme ohne Low-Level-Konfiguration erstellen und anpassen lassen
- Aus semantischen Typen wie
Rank,YearMonth,DeltaundTemperatureleitet sie die für visuelles Encoding nötigen Detailkonfigurationen ab - Mit einem elastischen Layoutmodell und dem Banking-Prinzip passt sie Größe, Abstände und Anordnung an; wenn ein Diagramm wächst, erweitert sie die Canvas und verringert die Bandbreite, um dichte Layouts zu bewältigen
- Unterstützt 50 Diagrammtypen in Vega-Lite, ECharts, Chart.js und Plotly und erzeugt über Office.js auch editierbare native Excel-Diagramme
- Über eine einheitliche Schnittstelle lässt sich das Backend wechseln und so die Stärken der einzelnen Tools nutzen, etwa hierarchische Sunburst-Diagramme in ECharts, statistische und analytische Traces in Plotly oder die Bearbeitung innerhalb von Excel-Arbeitsmappen
Bedeutungsbasierte Spezifikation und automatische Optimierung
- Flint leitet anhand semantischer Typen, die die Bedeutung von Datenfeldern beschreiben, etwa
Rank,YearMonth,DeltaundTemperature, Parsing, Skalen, Achsen, Formatierung und Farbschemata ab- In einer Heatmap, die die Nettoveränderung neuer Nutzer nach Spiel und Monat zeigt, wird
gamealsCategory,periodalsYearMonthundnewUsersalsProfitfestgelegt - Entsprechend der angegebenen Semantik werden Parser für Zeitwerte, Achsenformatierung, ein divergierendes Farbschema und der Mittelpunkt automatisch bestimmt
- In einer Heatmap, die die Nettoveränderung neuer Nutzer nach Spiel und Monat zeigt, wird
- Für die automatische Layoutoptimierung nutzt Flint ein elastisches Layoutmodell und das Banking-Prinzip, um Größe, Abstände und Anordnung dynamisch an die Canvas anzupassen
- Wenn ein gruppiertes Balkendiagramm von einer spärlichen
5 × 3-Konfiguration auf eine dichte22 × 3-Konfiguration anwächst, wird die Canvas erweitert und die Bandbreite verringert - Das ähnelt der Art, wie Federn innerhalb eines erweiterbaren Containers ihre Position einnehmen
- Wenn ein gruppiertes Balkendiagramm von einer spärlichen
- Statt fragile Low-Level-Parameter direkt zu bearbeiten, kann das Design allein durch Wechsel des Diagrammtyps und erneutes Verbinden visueller Encodings geändert werden
- Ein facettiertes Balkendiagramm zur Geschlechts- und Altersverteilung der US-Volkszählung 2000 wird allein durch Ändern des Diagrammtyps in ein Pyramidendiagramm umgewandelt; die übrigen Low-Level-Einstellungen übernimmt der Compiler
Backend-Unterstützung und aktuelle Releases
- Unterstützt 50 Diagrammtypen über Vega-Lite, ECharts, Chart.js und Plotly hinweg; die Galerie enthält 121 Beispiele nach Backend
- Die einheitliche Schnittstelle verbirgt die unterschiedlichen APIs und Programmiermodelle der einzelnen Backends
- ECharts kann für hierarchische Sunburst-Diagramme genutzt werden, Plotly für statistische und analytische Traces
- Über Office.js gibt Flint native Excel-Diagramme aus, die in Arbeitsmappen eingefügt und dort bearbeitet werden können
- v0.4.0 fügte am 24. Juli 2026 38 Plotly-Diagrammtypen sowie 18 Vorlagen für editierbare native Excel-Diagramme hinzu
- v0.3.0 fügte am 19. Juli 2026 ein dynamisches Diagramm-Widget hinzu, mit dem sich Diagrammtypen wechseln und Eigenschaften direkt an Ort und Stelle bearbeiten lassen
- v0.2.2 fügte am 15. Juli 2026 den compact dodge mode und ein Layout für gruppierte Violinplots hinzu
1 Kommentare
Hacker-News-Kommentare
Selbst im AI-Zeitalter ist die ggplot-API meiner Meinung nach die beste Chart-API. „Grammar of Graphics“ war nicht bloß ein Marketing-Slogan, sondern der Versuch, tatsächlich eine Grammatik zu schaffen, mit der sich alle möglichen qualitativen Grafiken ausdrücken lassen.
Dieser Prozess ist in https://link.springer.com/book/10.1007/0-387-28695-0 dokumentiert. Ich habe das Buch entdeckt, als ich alte, mit Papier und Stift gezeichnete Diagramme untersucht habe; in den Jahresberichten der Reserve Bank of Australia aus den 1960er bis 1980er Jahren hatten die Charts noch Charakter, während sie Anfang der 2000er zu faden Excel-Diagrammen wurden.
ggplot reproduziert den Reiz alter Charts zwar nicht vollständig, scheint sich aber bei der Art der Informationsvermittlung stark daran orientiert zu haben. In Abschnitt 20.1 wird die Minard-Grafik zu Napoleons Russlandfeldzug nachgebaut; ein ähnliches Beispiel gibt es unter https://www.andrewheiss.com/blog/2017/08/10/exploring-minard....
Die Ergebnisse sehen besser aus als bei pyplot und den darauf aufbauenden APIs, und pyplot scheint bei rasterbasierter Darstellung und Textverarbeitung deutlich eingeschränkt zu sein. ggplot ist im R-Ökosystem angesiedelt und deshalb Software Engineers weniger bekannt, aber ich wünschte, die Node.js- und Python-Ökosysteme würden sich stärker an dieser API orientieren
Ich habe auch Algraf veröffentlicht, ein von derselben Philosophie inspiriertes DSL: https://williamcotton.github.io/algraf/demos. In den Demos ist auch die Minard-Grafik enthalten
Es wurde im Umfeld von RStudio entwickelt, wo ggplot-Erfinder Hadley Wickham gearbeitet hat, und wird derzeit von Posit unterstützt, wo er heute arbeitet
Ich habe sowohl Flint als auch den Ansatz ausprobiert, AI direkt Vega-Lite-Spezifikationen erzeugen zu lassen, und Flint war nicht die bessere Lösung.
Flint ist okay, wenn man vordefinierte Chart-Typen auf niedriger Ebene anpassen will, aber wenn Agenten oder Subagenten Vega-Spezifikationen direkt erstellen, sind viel flexiblere und qualitativ bessere Visualisierungen möglich, etwa Markierungen für Minimum und Maximum in Zeitreihen oder annotierte Marker für bestimmte Ereignisdaten.
Vega-Lite braucht allerdings Spezifikationsvalidierung und konkrete Anweisungen, und man muss ständig Bugs und merkwürdiges Verhalten abfangen. Wenn man schnell starten will, ohne die Diagrammerstellung als eigenen Stack aufzubauen, ist Flint stabiler
Es scheint darum zu gehen, mehrere Chart-Backends über eine einzige Schnittstelle zu bedienen. Wenn AI Flint schreiben kann, könnte man sie aber auch gleich den Backend-Code schreiben lassen. Warum Backends austauschbar sein müssen, ist unklar.
Wenn es aber um eine einfache API für LLMs geht, könnte das tokeneffizienter sein
Microsoft/Flint-Chart wurde auch schon am 2. Juli 2026 vorgestellt: https://github.com/microsoft/flint-chart, https://news.ycombinator.com/item?id=48756577
Am 8. Juli wurde es dann erneut als „Show HN: Microsoft releases Flint, a visualization language for AI agents“ gepostet: https://microsoft.github.io/flint-chart/#/, https://news.ycombinator.com/item?id=48834924
Was ist eigentlich das Problem damit, einfach zu sagen: „Erstelle mir mit plotly ein XYZ-Diagramm“?
Schon vor 22 Tagen gab es eine größere Diskussion dazu: https://news.ycombinator.com/item?id=48834924
Ein DSL für AI wirkt nicht besonders sinnvoll. Die Modelle wurden auf bestehenden Grafikbibliotheken trainiert und kommen damit bereits ziemlich gut zurecht.
Langfristig könnte man nach der Veröffentlichung von Flint zwar „Grafik-Benchmarks“ bauen, damit Forschungslabore auf dieses DSL überfitten, aber das erscheint mir als zu viel Arbeit
Ich weiß nicht, ab welchem Punkt Abstraktion zu viel wird. Reichen Plotly oder Plotly Express nicht aus, und wie soll noch eine weitere JSON-Spezifikation eine neue Ära einläuten?
Interessant, aber ich weiß nicht, ob es wirklich nötig ist. Es gibt bereits viele ausgereifte Chart-Bibliotheken, darunter Apache ECharts, und am Ende wirkt es wie ein weiteres Neuerfinden des Rads.
Immer wieder kommt ein neues Tool heraus, bekommt fortlaufend mehr Funktionen, und dann ersetzt ein anderes Tool mit leicht anderer Architektur und Syntax das ursprüngliche.
Man kann auch die backend-spezifischen Stärken nutzen, etwa ECharts für hierarchische Sunbursts, Plotly für Statistik- und Analyse-Trendlinien oder Excel für Diagramme, die direkt in Arbeitsmappen bearbeitet werden sollen. Oder man wählt einfach eine Chart-Bibliothek, die einem gefällt, und lernt ihre Funktionen richtig, statt nur Voreinstellungen verschiedener Bibliotheken zu mischen und die Feinabstimmung wegzulassen