Microsoft Research Blog

AI可生成图表,Flint助力生成更优图表

Flint是一种面向AI驱动图表创建的视觉化中间语言,能从简单、可编辑的规范中可靠生成表现力丰富、视觉精美的图表。它利用语义数据类型指导设计,自动管理布局,并可编译至Vega-Lite、ECharts、Chart.js等多种后端。作为开源项目,Flint提供MCP服务器,在LLM评估中优于直接生成Vega-Lite,并支撑微软研究项目Data Formulator。

状态已摘要
抓取快照1
AI 输出2
开放问题0

已验证摘要

英文摘要

AI can generate Charts. Flint helps generate better ones.

Flint is a visualization intermediate language for AI-driven chart creation, enabling reliable generation of expressive, visually polished charts from simple, human-editable specs. It leverages semantic data types to guide design, automatically manages layout, and compiles to multiple backends like Vega-Lite, ECharts, and Chart.js. Open-source with an MCP server, Flint outperforms direct Vega-Lite generation in LLM evaluations and powers Microsoft Research's Data Formulator.

  • Flint allows AI agents to generate polished charts from compact, human-editable specifications.
  • Semantic types in Flint guide the compiler to choose appropriate scales, baselines, formatting, and color schemes.
  • Layouts automatically adapt to data cardinality and density without explicit user configuration.
  • A single Flint spec can compile to Vega-Lite, Apache ECharts, and Chart.js.
  • The open-source project includes flint-chart and flint-chart-mcp for agent workflows.
  • In LLM evaluations, Flint achieved higher scores than direct Vega-Lite generation across multiple models.
  • Flint is used in Microsoft Research's Data Formulator for AI-assisted data analysis.

中文摘要

AI可生成图表,Flint助力生成更优图表

Flint是一种面向AI驱动图表创建的视觉化中间语言,能从简单、可编辑的规范中可靠生成表现力丰富、视觉精美的图表。它利用语义数据类型指导设计,自动管理布局,并可编译至Vega-Lite、ECharts、Chart.js等多种后端。作为开源项目,Flint提供MCP服务器,在LLM评估中优于直接生成Vega-Lite,并支撑微软研究项目Data Formulator。

  • Flint允许AI代理从紧凑、可编辑的规范中生成精美图表。
  • 语义类型指导编译器选择适当的比例、基线、格式和配色方案。
  • 布局自动适应数据基数和密度,无需用户显式配置。
  • 单个Flint规范可编译至Vega-Lite、Apache ECharts和Chart.js。
  • 开源项目包括flint-chart和flint-chart-mcp,支持代理工作流。
  • 在LLM评估中,Flint在多个模型上得分高于直接生成Vega-Lite。
  • Flint用于微软研究项目Data Formulator,辅助数据分析和可视化。

Flint / visualization language / AI / chart generation / semantic types / Vega-Lite / ECharts / Chart.js / open source / MCP / Data Formulator / Microsoft Research

完整文章

Skip to main content

Research

Publications

Code & data

People

Microsoft Research blog

Artificial intelligence

Audio & acoustics

Computer vision

Graphics & multimedia

Human-computer interaction

Human language technologies

Search & information retrieval

Data platforms and analytics

Hardware & devices

Programming languages & software engineering

Quantum computing

Security, privacy & cryptography

Systems & networking

Algorithms

Mathematics

Ecology & environment

Economics

Medical, health & genomics

Social sciences

Technology for emerging marketsAcademic programs

Events & academic conferences

Microsoft Research ForumBehind the Tech podcast

Microsoft Research blog

Microsoft Research Forum

Microsoft Research podcast

About Microsoft Research

Careers & internships

People

Emeritus program

News & awards

Microsoft Research newsletter

Africa

AI for Science

AI Frontiers

Asia-Pacific

Cambridge

Health Futures

India

Montreal

New England

New York City

Redmond

Applied Sciences

Mixed Reality & AI - Cambridge

Mixed Reality & AI - Zurich

Register: Research Forum

Microsoft Security

Azure

Dynamics 365

Microsoft 365

Microsoft Teams

Windows 365

Microsoft AI

Azure Space

Mixed reality

Microsoft HoloLens

Microsoft Viva

Quantum computing

Sustainability

Education

Automotive

Financial services

Government

Healthcare

Manufacturing

Retail

Find a partner

Become a partner

Partner Network

Microsoft Marketplace

Software companies

Blog

Microsoft Advertising

Developer Center

Documentation

Events

Licensing

Microsoft Learn

Microsoft Research

View Sitemap

Return to Blog HomeMicrosoft Research BlogAt a glancePolished charts from simple specs . Flint allows AI agents to reliably generate expressive, visually polished charts from simple, human-editable specifications.Semantic types guide design . Flint leverages semantic data types to express meanings of data. They help the compiler choose appropriate scales, baselines, formatting, and color schemes.Layouts adapt to the data . Flint automatically manages sizing, spacing, labels, and layout so charts remain readable as cardinality and density change, without explicit user configurations.One spec can target multiple backends . A single Flint specification can compile to Vega-Lite, Apache ECharts, or Chart.js without rewriting the chart from scratch.Built for agent workflows . The open-source project includes the flint-chart library and the flint-chart-mcp server , so agents can create, validate, and render charts directly in chat or coding environments.Figure 1. Flint supports a diverse collection of visualizations with its simple spec, which can be rendered with visualization libraries like Vega-Lite, Echarts, and Chart.js.Creating a good chart requires many design decisions: how dates should be parsed, whether a scale should start at zero, how values should be formatted, how much room labels need, and which colors make the data easier to read. Modern visualization libraries such as Vega-Lite, Apache ECharts, and Chart.js expose these controls, but there is a trade-off: Short specifications that rely on system defaults often produce uninspiring charts, while polished visualizations require detailed specifications with purposely chosen parameters that are often verbose, fragile, and error-prone.This trade-off becomes sharper as large language models (LLMs) and AI agents take on more visualization work. Agents are especially prone to errors when they must manage complex, low-level specification details, and the resulting fragile code can be difficult for people to inspect, repair, or reuse. Ideally, we need something in between: a compact specification that agents can produce reliably, people can edit directly, and a system can compile into a well-designed chart.To address this challenge, we introduce Flint (opens in new tab) , a visualization intermediate language for AI-driven chart creation. Flint helps AI agents create expressive, attractive charts from simple, human-editable chart specs. Instead of requiring verbose low-level parameters for scales, axes, spacing, and layout, the Flint compiler derives optimized chart settings from the data, semantic types, chart type, and encodings. The same Flint spec can render through multiple backends, including Vega-Lite, Apache ECharts, and Chart.js.Figure 2. Flint compiles a compact, human-editable chart specification into a complete backend-native specification and rendered visualization. In this heatmap example, the Flint spec names semantic types (period as YearMonth, newUsers as Profit) and maps fields to visual channels. The compiler derives the Vega-Lite details, including temporal parsing, axis formatting, color scale, cell sizing, legend configuration, and layout.How Flint worksFigure 2 illustrates the how the Flint compiler turns a compact chart specification into a refined heatmap.To produce a high-quality heatmap, traditionally, we need to explicitly tell the system with low-level chart properties about how to process the period field, how to properly label MonthYear values, size individual heatmap cells, and choose a color scale that appropriately represents positive and negative newUsers values. Without these configurations, visualization libraries must guess from field names and raw values, which can lead to charts that are technically valid but potentially misleading. While they are important, hard-coding these details can be difficult and error-prone, and they make specification fragile and hard for users to understand or adapt.In Flint, these low-level details are systematically managed, where the compiler infers them from high-level data and chart specifications. Here, the  data specification captures semantic types and optional metadata, and the chart specification defines the chart type and maps fields to visual channels such as x, y, color, size, or facet. From this information, the compiler derives the parsing rules, scales, axes, aggregations, formatting, color schemes, layout, and generates the backend-native specification, which is used to render the final polished visualization. This frees users from explicitly setting fragile and error-prone low-level details.Furthermore, because the intermediate representation is separate from any single rendering library, Flint can target backends with very different APIs and programming models. Users can keep the same compact chart intent while compiling to Vega-Lite, ECharts, or Chart.js, and choose the backend whose capabilities best fit the visualization.Azure AI Foundry LabsGet a glimpse of potential future directions for AI, with these experimental technologies from Microsoft Research.

Azure AI Foundry

Opens in a new tabFlint for AI-assisted visualizationFlint is well suited to LLM-based chart generation because semantic types are often easier for models to infer than the full set of low-level visualization parameters. Field names, value patterns, and common data knowledge can help an agent recognize whether a column represents a date, price, percentage, country, ranking, or correlation. Once those meanings are explicit, the compiler can handle many design decisions that would otherwise appear as brittle, library-specific code.In our research study, we compared Flint with DirectVL, a baseline that asks the model to directly generate full (more complex) Vega-Lite specifications in a LLM self-evaluation pipeline. Across three tested models based on testing data from Tidy Tuesdays, Flint received higher overall LLM-judge scores: 16.27 vs. 15.91 with GPT-5.1, 16.16 vs. 15.60 with GPT-5-mini, and 15.91 vs. 15.34 with GPT-4.1. In fact, Flint has been so powerful and reliable that it is now used to power Data Formulator (opens in new tab) , a Microsoft Research project for AI-assisted data analysis and visualization.To make Flint easy for your agents to access, we also release flint-chart-mcp , a Model Context Protocol (MCP) server that allows agents to create, validate, and render charts inside a chat or coding environment. MCP calls can embed data inline or read configured local files, and the server can open an interactive chart view so users can inspect and refine the results.Figure 3. Once you set up the flint-chart-mcp with your favorite AI client, the agent can generate interactive visualizations powered by Flint to answer your data exploration questions.Try FlintFlint is open source and ready to use:Project site:  https://microsoft.github.io/flint-chart/ (opens in new tab)GitHub:  https://github.com/microsoft/flint-chart (opens in new tab)Flint MCP server instruction: https://microsoft.github.io/flint-chart/#/mcp (opens in new tab)Flint points toward a shared semantic layer for visualization, where people and AI agents can work with compact chart intent while a compiler handles the careful low-level details. We invite the community to explore the project and build on it.Opens in a new tabMeet the authorsChenglong WangSenior ResearcherLearn moreAlper SarikayaSenior Data Visualization EngineerPower BILearn moreScott TsukamakiSr. Technical Program ManagerLearn moreMichel GalleySenior Principal Research ManagerLearn moreJianfeng GaoTechnical Fellow & Corporate Vice PresidentLearn moreResearch Areas

Artificial intelligence

Programming languages and software engineeringResearch Groups

Deep Learning GroupRelated labs

Microsoft Research Lab - RedmondFollow us:

Follow on X

Like on Facebook

Follow on LinkedIn

Subscribe on Youtube

Follow on Instagram

Subscribe to our RSS feedShare this page:

Share on X

Share on Facebook

Share on LinkedIn

Share on Reddit

Surface Pro

Surface Laptop

Surface Laptop Ultra

Surface RTX Spark Dev Box

Copilot for organizations

Copilot for personal use

Explore Microsoft products

Windows 11 apps

Account profile

Download Center

Microsoft Store support

Returns

Order tracking

Certified Refurbished

Microsoft Store Promise

Flexible Payments

Microsoft in education

Devices for education

Microsoft Teams for Education

Microsoft 365 Education

How to buy for your school

Educator training and development

Deals for students and parents

AI for education

Microsoft AI

Microsoft Security

Dynamics 365

Microsoft 365

Microsoft Power Platform

Microsoft Teams

Microsoft 365 Copilot

Small Business

Azure

Microsoft Developer

Microsoft Learn

Support for AI marketplace apps

Microsoft Tech Community

Microsoft Marketplace

Software companies

Visual Studio

Careers

About Microsoft

Company news

Privacy at Microsoft

Investors

Diversity and inclusion

Accessibility

Sustainability

Your Privacy ChoicesConsumer Health Privacy

Sitemap

Contact Microsoft

Privacy

Manage cookies

Terms of use

Trademarks

Safety & eco

Recycling

About our ads

抓取快照

用于解析和审计的抓取证据。

200 · text/html; charset=UTF-8

2026/07/09 08:01

9725af5e5055c24b4555ccd50b4efe867f271ed1e584db8f0b2c3c62914f887d

AI 输出

带验证状态的结构化模型输出。

article.summarize

deepseek-v4-flash · 有效

{"tags":["Flint","visualization language","AI","chart generation","semantic types","Vega-Lite","ECharts","Chart.js","open source","MCP","Data Formulator","Microsoft Research"],"titleEn":"AI can generate Charts. Flint helps generate better ones.","titleZh":"AI可生成图表,Flint助力生成更优图表",...
article.classify

deepseek-v4-flash · 有效

{"relevant":true,"confidence":0.95,"primaryTopic":"ai-research","secondaryTopics":["agent-engineering","software-engineering","ai-engineering","product-updates"]}

质量问题与日报引用

开放或已解决的问题,以及文章出现在每日日报中的记录。

日报

Signal Hub 2026-07-09

Flint是AI驱动图表生成领域的重要开源贡献,提供了一种新的中间语言,提高了可靠性和表现力。它在数据可视化中有实际应用,并支持多种后端。 (score: 0.88)

排序 22026/07/09 00:00草稿