
我先坦白一个转变以前我做图表流程是“打开工具→翻文档→查配置→调样式”一张图少说折腾半小时。现在我的流程变成了“用大白话描述需求→交给 DeepSeek →拿到可直接运行的代码或脚本→微调发布”全程基本三分钟。这个改变不是因为我学会了更多图表技巧而是因为我换了一套生产工具——用自然语言驱动 ECharts、Mermaid 和 Python 这三条完全不同的图表生产链路。这篇文章没有复杂的理论全部是我这大半年实际跑通的方案、踩过的坑以及我对“自然语言生成图表”这件事的完整判断。如果你经常要做数据可视化、写技术文档配图、或者定期产出数据分析图表这篇内容应该能让你少走不少弯路。1. 先说结论三条图表路线到底怎么选很多人第一次接触“用 AI 生成图表”时都会下意识问一个问题到底该学 ECharts、Mermaid 还是 Python我的回答是别问哪个最好要问你的图表最终出现在哪里。1.1 我为什么从“手写图表代码”转向“自然语言生成”做技术博客和数据分析的那几年我写过的图表代码不算少。ECharts 的 option 配置项我背过一大半Matplotlib 的坐标轴、图例、字体设置我调过无数遍。但说实话真正让我生产效率翻倍的不是把 API 背得更熟而是把“描述需求”这件事做到位了然后让 AI 来写那 80% 的样板代码。举个最典型的场景领导临时要一份各季度销售额对比图。以前我需要回忆 ECharts 柱状图的数据格式、tooltip 触发方式、legend 位置再手动渲染成 HTML 调试。现在我把原始数据直接粘给 DeepSeek说一句“用 ECharts 画一张季度销售额柱状图要带数据标签、渐变配色、响应式”它返回的就是一份能直接双击打开的 HTML 文件。这个转变的本质是我把“实现层”的负担外包给了大模型自己只保留“描述层”的判断力。描述越清晰生成结果越接近成品。这也是为什么我把这篇文章的定位放在“自然语言驱动生产力”——真正提效的不是模型有多聪明而是你的需求表达能力有没有跟上。1.2 三条路线解决的是三类完全不同的场景先说清楚定位后面才不会选错方向ECharts 路线最终产物是网页里的交互图表。适合数据可视化大屏、内部数据看板、需要鼠标悬停看明细、缩放、联动等交互效果的场景。产物是 HTML 文件可以直接扔给浏览器打开。Mermaid 路线最终产物是嵌在 Markdown / Notion / 文档站里的静态图。适合画流程图、时序图、甘特图、状态图、类图本质是“用文本描述结构再渲染成图形”。无需前端知识文档改起来极其方便。Python 路线最终产物是图片文件或自动化报表。适合批量处理数据、做科研统计图、周期性生成报表、需要把图表直接写进 PDF/Word 的场景。配合 Pandas 读取数据AI 生成的是完整可复跑的脚本。一句话概括要交互选 ECharts要文档配图选 Mermaid要数据分析选 Python。1.3 三种方案的能力边界对比我整理了一张表基本覆盖了大多数人关心的维度对比项DeepSeek EChartsDeepSeek MermaidDeepSeek Python最终产物HTML 网页、可交互图表文本渲染图SVG/PNGPNG/PDF 图片、完整报表上手门槛需要一点 HTML 基础几乎零门槛需要会跑 Python 脚本交互能力强支持缩放、悬浮、动态弱基本静态弱静态为主典型场景数据大屏、看板、汇报网页技术文档、需求说明、流程图数据分析、科研绘图、批量报表修改成本改 prompt 重新生成即可改文本即可改脚本重新运行数据量规模中等前端渲染小结构描述大Pandas 处理这张表不是绝对的但它能帮你避免最常见的尴尬明明只需要在 README 里画个流程图却非要用 Python 折腾半天明明要做一个带联动的大屏却指望 Mermaid 能搞定交互。先选路线再写提示词三分钟出图才成立。2. DeepSeek ECharts交付可交互图表的最快路径我经常对同事说如果你团队里需要一个能看数据的网页但又不想专门养一个前端DeepSeek ECharts 是最划算的组合。因为它能直接把“数据需求”翻译成一个完整的 HTML 文件你甚至不需要理解内部实现原理。2.1 环境准备连工程化都不用碰这可能是所有方案里环境准备最简单的一个。ECharts 是纯前端库你只需要一个能打开本地 HTML 的浏览器。不需要 Node.js不需要装脚手架不需要配置打包工具。我的标准做法是让 DeepSeek 生成一个单文件 HTML直接在script标签里通过 CDN 引入 ECharts数据放在页面内双击即可打开看效果。用到内网环境时再把 ECharts 的 JS 文件下载到本地引用即可。这里有一个实操细节如果你面向的是内网部署一定要在提示词里写明“ECharts 使用本地文件引用不要使用 CDN”否则生成的 HTML 在内网环境会白屏。我在某公司的数据看板项目上踩过一次整个页面只缺一个 JS 文件排查了半天才发现是 CDN 无法访问。2.2 一个案例走完从需求描述到可视化大屏我带你看一个真实的生成过程。假设我现在手头有一个销售团队的季度数据——四个区域、三个季度的销售额和毛利我需要一个能展示趋势的交互图。原始数据放进来后我的提示词大概是这样的请用 ECharts 生成一个 HTML 页面 1. 数据如下区域、季度、销售额、毛利 华东 Q1 820 210华东 Q2 950 260华东 Q3 1130 310 华北 Q1 610 150华北 Q2 720 180华北 Q3 890 230 华南 Q1 730 190华南 Q2 860 220华南 Q3 1010 275 西南 Q1 420 105西南 Q2 510 130西南 Q3 650 165。 2. 用折线图展示各区域销售趋势X 轴为季度Y 轴为销售额。 3. 配色用蓝色渐变图例放右上角数据标签可见。 4. 外加一个柱状图展示各地区毛利合计。 5. 两个图表上下排列页面自适应宽度。DeepSeek 返回的就是一个完整的 HTML 文件里面有两个图表上半部分是多折线趋势图下半部分是毛利柱状图。实测下来这个页面在浏览器里打开能直接交互鼠标悬停能看到每个点的具体数值。这个案例说明了一个关键点你不需要告诉 AI 怎么配置 ECharts 的 option 对象你只需要告诉它要展示什么、数据是什么、长什么样。剩下的事情它在后台替你完成了。2.3 让 AI 按你的审美改图数据配置项的正确问法生成第一版往往只能算“能看”离“好看”还有距离。这时候很多人会陷入一个误区直接让 AI“改好看一点”结果它返回的仍然是一版平庸的设计。因为“好看”这个词太主观了模型没有你的审美偏好。我的经验是把审美要求拆成可以执行的视觉规则颜色指定主题色和辅助色例如“主色使用 #3B82F6辅助色使用 #F59E0B背景为浅灰色 #F8FAFC”。布局明确图例位置、图表间距、标题位置。字体指定是否需要加粗、字号、字体族。数据点是否显示数值标签、是否开启平滑曲线、是否加阴影。额外组件是否需要 dataZoom 缩放条、tooltip 触发方式、grid 边距。这些规则不需要你懂 ECharts 配置项只需要你能用自然语言描述出来。比如我常用的句式是“把折线改成平滑曲线数据标签字号 12tooltip 用十字准线模式底部加 dataZoom 缩放条Y 轴数值单位显示为‘万元’。”DeepSeek 把这些话翻译成配置项的能力远比你想象中强。3. DeepSeek Mermaid把图表装进 Markdown 的轻量方案如果说 ECharts 是“重武器”那么 Mermaid 就是“轻骑兵”。它不追求炫酷追求的是文本即图表的低维护成本。凡是需要频繁改动的流程文档、架构说明、需求文档我都推荐用 Mermaid。3.1 为什么 Markdown 写文档的人需要 Mermaid写技术方案的人都有这种体验文档里嵌一张流程图一旦业务逻辑变了一点就得重新打开画图工具拖半天框、连线云端保存又是一层层目录。而 Mermaid 的核心是图形由文本生成改文本就等于改图。DeepSeek 在 Mermaid 这条链路上解决的最大问题是帮你把“脑子里乱糟糟的流程”直接变成合法的 Mermaid 语法。你不需要背 flowchart、sequenceDiagram、gantt 的语法细节只需要说清楚几个人、几个环节、什么顺序。举例来说我在写一篇关于订单系统的文档时需要一张“下单到支付”的时序图。我的提示词是请用 Mermaid 的 sequenceDiagram 画出 用户、客户端、订单服务、支付服务四个角色 流程用户提交订单 - 客户端创建订单 - 订单服务检查库存 - 返回创建结果 - 用户发起支付 - 客户端请求支付 - 支付服务扣款 - 通知订单服务 - 返回支付结果。它生成的代码直接粘进支持 Mermaid 的 Markdown 编辑器马上渲染成一张合格的时序图。整个过程中我没碰过一条 Mermaid 语法规则但图的质量对文档来说完全够用。3.2 Timeline/流程图/甘特图AI 一次性生成的正确姿势Mermaid 有很多图类型我日常用得最多的三类是 flowchart流程图、sequenceDiagram时序图、gantt甘特图。DeepSeek 在这里的“正确姿势”是给结构别给语法。所谓“给结构”是指你把参与者、节点、先后关系、分支条件描述清楚。例如画一个用户登录流程图我通常会这样说请用 Mermaid flowchart 画登录逻辑 开始 - 用户输入账号密码 - 校验账号是否存在 - 不存在则提示“账号不存在”并回到输入 - 存在则校验密码 - 密码错误则提示“密码错误”并回到输入 - 密码正确则进入首页 - 结束。 另外加一个分支如果连续失败 5 次则锁定账号 30 分钟。模型会帮你处理分支和节点命名生成结果基本能直接用。我特别推荐把一段复杂的业务说明直接扔给它然后只要一句“把上面的逻辑画成 Mermaid 流程图”它完成的结构转换通常比人手动整理更快。3.3 Mermaid 最容易翻车的地方与修复套路用 Mermaid 这几个月我总结出三个高频翻车点每个都有对应的修复套路。第一节点文字里的特殊符号导致渲染失败。比如括号、引号、中英文混排里的特殊字符会让 Mermaid 语法直接报错。修复方式很简单让 DeepSeek 把节点文字用引号包起来或者在提示词里明确“节点文字不要包含括号改用括号外描述”。如果已经生成出错把报错信息原样复制给 DeepSeek让它自查修复大部分情况下它能自己解决。第二中文换行和宽度问题。Mermaid 节点里的中文比较长时渲染出来的框可能过宽。修复方法是让 AI 在节点文字中加br/换行例如把“用户点击提交订单按钮后进入支付环节”拆成两行显示。第三流程图逻辑分支中有环回。Mermaid 画循环回边时新手容易把连线方向搞反。这时候与其自己改语法不如把目标逻辑再说一遍强调“失败分支回到上一步”让 AI 重新生成。4. DeepSeek Python批量图表与数据分析的终极形态ECharts 和 Mermaid 解决的是“单张图”和“文档图”的问题但如果你面对的是一份几千行的 CSV需要产出趋势图、相关性热力图、分布直方图那真正的生产力工具是 Python。4.1 Matplotlib/Seaborn/PandasAI 帮你写样板代码以前画一张 Matplotlib 图光是调字体、调坐标轴、调图例就能耗掉小半天。现在我的标准流程是先用 Pandas 读数据再让 DeepSeek 按我的需求写绘图代码最后运行脚本输出成图。举一个我做过很多次的场景某教育机构给我一份学员成绩数据包含姓名、班级、各科成绩、总出勤率。我需要各科成绩的箱线图看分布总成绩与出勤率的散点图看相关性各班平均成绩的柱状图带误差条。我的提示词模板是请写一段 Python 代码使用 pandas 读取“score.csv” 该文件包含姓名、班级、语文、数学、英语、出勤率、总分。 要求 1. 用 seaborn 画三个子图分别是各科成绩箱线图、总分与出勤率散点图、各班平均分柱状图带标准差误差条。 2. 图表风格使用 seaborn 默认 whitegrid。 3. 中文标签正常显示不要出现方框乱码。 4. 图片保存为 result.pngDPI 300。它返回的代码可以直接放进 Jupyter Notebook 跑。我第一次用这个流程处理某课程数据的时候从读数据到出图总共花了不到十分钟——其中大部分时间还是在等脚本运行。4.2 从 CSV 到 PDF 报告一整套可复制的自动出图链路如果你需要每周/每月产出固定格式的数据报告我强烈建议不要每次手动重新生成而是把整个链路沉淀成一个脚本。DeepSeek 在搭建这条链路上的作用非常明显。我搭建的一个典型链路是这样的用 pandas 读取最新导出的数据文件用 matplotlib / seaborn 生成 4~6 张固定图表用 reportlab 或 jinja2 weasyprint 把图表和图文字说明拼装成 PDF 报告自动在本地生成带日期的报告文件夹。这个过程里我只需要在最开始把全链路的需求描述给 DeepSeek让它生成初始脚本之后每周只需要替换数据文件跑一次脚本报告自动产出。某团队用这个方案把周报制作时间从两小时压缩到了十五分钟主要时间还是在核对数据。4.3 中文乱码与字体问题不得不说的头号坑用 Python 画图最经典也最折磨人的就是中文乱码。Matplotlib 默认字体不支持中文生成的图里全是方框。更麻烦的是不同操作系统、不同字体环境下解决方案完全不一样。我的处理方式是在提示词里直接要求 AI 加入字体设置代码。比如import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [Microsoft YaHei] plt.rcParams[axes.unicode_minus] False生成代码后如果发现还是乱码就把截图或报错信息丢给 DeepSeek让它判断是字体没找到还是配置没生效。在我经历过的案例里90% 的情况是系统里没有对应字体文件需要先安装字体再重新运行脚本。这里有个技巧让 AI 写一段自动检测可用字体并设置默认字体的代码可以省掉后续很多麻烦。5. 让 AI “画对”而非“画出来”提示词工程的核心技巧三分钟出图的前提不是 DeepSeek 有多聪明而是你的提示词能不能在一轮对话里把需求说清楚。我把这套方法总结成“五要素”和“一示例”。5.1 需求描述五要素模板我每次让 AI 画图都会在提示词里覆盖这五个要素你可以直接抄走图类型柱状图、折线图、散点图、流程图、时序图……一句话说死。数据来源直接把数据粘贴进来或者明确告诉它 CSV 文件路径。视觉要求颜色、字体、图例位置、数据标签、主题风格。最终产物HTML 文件、Mermaid 代码、Python 脚本、PNG 图片。约束条件中文显示、内网环境、DPI、文件宽度、不要 CDN 等。套用格式就是“请用 [图类型] 展示 [数据/场景]。数据是 [数据]。要求 [视觉风格]。产物是 [文件类型]。注意 [约束]。”5.2 给出示例是消歧义的最强武器大模型最怕的不是你要求多而是你的描述有多义。尤其是“好看一点”“浓一点”“紧凑一点”这类模糊词每个人理解都不一样。如果要求特别明确还有一种更高效的方式给示例图描述。比如我上次需要一张仿某个大屏视觉风格的折线图我直接在提示词里写“参考这张图的风格深色背景 #1E293B主色是紫蓝渐变折线下方有区域渐变填充数据标签白色标题左上角。”这个参考描述比“做一个科技感的大屏图表”有效十倍。如果条件允许最高级的做法是把目标图的截图一并发给 DeepSeek。多模态输入下理解精度会大幅提升。没有截图时就尽量把视觉特征拆成可执行的形容词组合。5.3 迭代式修正我的一段真实对话记录很少有一次性到位的生成。合理的预期是第一版 70 分然后通过两三轮迭代把分数拉到 90 以上。我分享一段真实的修正过程给你参考。第一轮我说“画一张折线图展示某产品半年流量趋势数据是 1 月 12 万、2 月 15 万、3 月 14 万、4 月 21 万、5 月 25 万、6 月 30 万。”生成的图基本能看但有两个问题折线没有平滑处理X 轴月份显示拥挤。第二轮我追加“把折线改成平滑曲线X 轴标签加粗并旋转 30 度Y 轴单位显示‘万’数据点加圆形标记数值标签显示两位小数。”第三轮我继续提“背景改成浅灰折线颜色换成蓝色图例放在左下角去掉网格线。”三轮以后图表已经非常接近我脑海里的预期。你要记住修改意见一定要具体一轮只讲几个关键点不要一次给十多个互斥的修改指令。6. 从零散的图到工作流我的最终落地经验文章写到这核心方法已经全部交代了。最后分享一些我在实际工作中总结的落地经验这些经验是我踩了不少坑之后才沉淀下来的。6.1 常用模板沉淀把提示词存成可复用资产我在本地维护了一个“图表提示词模板”文档按场景分成了十几个条目比如“周报趋势折线图”“双轴对比图”“系统流程时序图”“项目排期甘特图”“数据分布箱线图”。每次验证有效的提示词我就把它固化进模板下次遇到类似需求直接复制改写变量即可。这一步的投资回报率非常高。三个月前我生成一张双轴图表还要反复澄清坐标轴关系现在只需要从模板里复制一段已经验证过的提示词把数据和标题替换掉生成结果基本是稳定的。生产力不是你每次都从零想怎么问而是你积累了多少可直接调用的高质量 prompt。6.2 人机协作分工AI 负责效率人负责审美与逻辑用 AI 生成图表久了你会形成一种感觉AI 擅长的是把需求变成实现但需求里那些真正重要的判断仍然需要人来把关。数据关系是否正确、颜色选择是否考虑到色弱用户、图表类型是否准确反映数据含义、坐标轴是否从 0 开始避免误导——这些“领域审美”和“数据伦理”问题AI 不会主动替你考虑。我在某次做数据汇报时AI 生成的柱状图把 Y 轴默认从 9500 开始视觉上把细微差距放大得很夸张如果不是人工复查这个图就会误导整个汇报方向。所以我的分工原则是AI 负责把想法变成草稿人负责把关数据逻辑和呈现合理性。6.3 最后的本分生成结果一定要人工复核无论 DeepSeek 生成的图表看起来多专业我在交付前都会做三件事对照原始数据抽查几个数据点的数值检查坐标轴刻度是否合理把图发给另一个不熟悉项目的人看一眼确认信息没有误导。这套复核流程三分钟以内就能完成但能避免的麻烦无穷大。自然语言生成图表的本质是提升效率而不是替代判断。工具越好用你的判断责任越重大。从手写配置到自然语言生成这套工作流已经彻底改变了我处理图表的方式。我不再需要为“某功能怎么实现”操心而把注意力放回“这张图到底想表达什么”这个真正有价值的问题上。如果你也经常被图表困住不妨从今天开始把你最常画的那种图用自然语言描述给 DeepSeek 试试。