news 2026/9/10 11:05:49

Mermaid.js 饼图与柱状图教程:3 行文本画出可维护的图表,附选型对比表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mermaid.js 饼图与柱状图教程:3 行文本画出可维护的图表,附选型对比表

Mermaid.js 饼图与柱状图教程:3 行文本画出可维护的图表,附选型对比表

【免费下载链接】mermaidGeneration of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown项目地址: https://gitcode.com/GitHub_Trending/me/mermaid

周报里要插一张占比图,你从 Excel 导出 PNG、传到图床、再处理一次链接 404,而数字下周就变了。这篇文章带你用 Mermaid.js 饼图与柱状图的能力,在 Markdown 里直接写 3 行文本就渲染出图,数据更新只需改几处数字。

Mermaid.js 是什么:写在文档里的图表

Mermaid.js 是一个开源的图表库,把纯文本解析成 SVG 图形。你写下piebar这类关键字,它替你算好扇形角度、柱高和坐标轴。它适合嵌进文档的理由有 4 条:

  • 📝 图表即文本:改数据就是改几行字,可直接进版本控制
  • 🔗 GitHub、GitLab 等平台的 Markdown 原生支持,不依赖额外服务
  • 🧩 覆盖流程图、时序图、甘特图等 20 多种图表类型,饼图与柱状图只是其中 2 种
  • 📜 基于 MIT 许可证,可免费用于商业项目

三步画出第一张饼图

第 1 步,在 Markdown 文件里写入:

第 2 步,用官方 Live Editor 实时预览,饼图示例页在 demos/pie.html,改一处数字即可看到扇形同步变化。

第 3 步,满意后在编辑页 Actions 区导出 PNG 或 SVG 使用。完整语法见 docs/syntax/pie.md。

下图是官方 Live Editor 的界面,左侧写文本,右侧出图:

场景一:解释"占比构成"

预算、资源、时间分配,只要回答"整体里各占多少",用饼图最直白。语法就 3 个元素:pie关键字开头、"标签" : 数值定义扇区、可选title写标题。加上showData后,图例会直接带出具体数值,不再只是颜色块。

类别建议控制在 6 个以内,扇区太多会互相挤压。想改变标签位置或挖出环形,在文件头部加一段 frontmatter 配置,textPosition取值 0.0(圆心)到 1.0(外缘),donutHole是 0 到 0.9 的挖孔比例:

渲染后扇区按书写顺序顺时针排列,环形中央还能放总标题,视觉上更接近仪表盘。

场景二:比较"谁多谁少"

跨类别比数值大小,用柱状图(xychart模块中的bar图)。最小结构是x-axis给类别、y-axis给数值范围、bar给数据数组:

几个省事的细节:

  • 多条barline会按声明顺序读取x-axis的每个类别,自动分组并列
  • y-axis的范围可省略,只写y-axis "标题"也能自动按数据生成
  • 标签较长时换成xychart horizontal,柱子横排更可读
  • 折线与柱形可叠加,适合"量与比率"同屏对比,官方语法全文见 docs/syntax/xyChart.md

饼图 vs 柱状图:一张表做判断

你的数据在回答什么建议
整体中各占多少比例,且类别 ≤ 6 个饼图
比较 2 个以上类别的具体数值大小柱状图
数值随时间变化折线图(line
两组数值叠加对比(如本期 vs 上期)多系列柱状图或柱 + 线组合
需要展示负值柱状图,坐标轴范围可从负数开始

5 个容易踩的坑

  • ⚠️ 饼图数值必须是大于 0 的数,最多保留 2 位小数,负数会直接报错
  • ⚠️ 含空格的标题、坐标轴名、类别名要用引号包住,单单词可以省略
  • ⚠️ 老教程里的xychart-beta关键字现在仍可用,新代码建议直接写xychart
  • ⚠️ 折线可给数据点单独加文字标签,但柱形上加了会被忽略
  • ✅ 改完数据觉得图不合适,直接在 Live Editor 导出 PNG/SVG,比手工修图快得多

动手试一下

饼图和柱状图合起来,刚好覆盖"占比"与"对比"两类最常用的数据展示。把这份文档丢给你的同事,让他照着"三步画出第一张饼图"改一组自己的数字,5 分钟后你大概率会收到一张新图。

【免费下载链接】mermaidGeneration of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown项目地址: https://gitcode.com/GitHub_Trending/me/mermaid

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 14:02:33

前端面试题追根溯源:从Vue3原理到微前端实战,告别背题陷阱

在面试候场区等我前面几个人出来的时候,我其实挺有把握的。简历上的项目经验写得满满当当,Vue3、React、微前端、组件库开发全都有。结果一面第一个问题就把我砸懵了:“你说你做过组件库,那你知道el-table的虚拟滚动为什么在大数据…

作者头像 李华
网站建设 2026/9/3 17:23:04

一条命令跑通自然语言编程:Open Interpreter 上手指南

一条命令跑通自然语言编程:Open Interpreter 上手指南 【免费下载链接】openinterpreter A coding agent for open models like Kimi K3 项目地址: https://gitcode.com/GitHub_Trending/op/openinterpreter Open Interpreter 是一个面向 Kimi K3 这类低成本…

作者头像 李华
网站建设 2026/9/2 20:44:01

腾讯后端面试复盘:TCP、Redis与算法题全解析

腾讯面经,有点难度~ 我自己复盘了下,发现这些题值得好好说前阵子面了腾讯,岗位是后端开发。说实话,去之前我对大厂面试的难度是有心理准备的,但真正走完流程之后才发现,网上那些“腾讯面试有点难度”的说法…

作者头像 李华
网站建设 2026/9/4 18:12:15

技术博客停更背后:用工程化思维重构写作系统与反馈机制

如果一个开发者告诉你“我的博客有 11000 个关注者,但我停更了”,你大概会本能地冒出两个念头:一是觉得可惜,二是好奇为什么。这个真实问题最近在 Hacker News 上引发了讨论。提问的人没有说自己厌倦了写作,也没有抱怨…

作者头像 李华