AI生成图表化:深入探索Mermaid

引言
在使用生成式AI时,只要你提出让AI帮你生成mermaid图,AI的生成就会出现丰富的图形!
在现代文档编写中,图表的使用不仅能增强文档的可读性,还能更直观地表达复杂的概念和流程。Mermaid 作为一款开源的图表绘制工具,凭借其简洁的语法和强大的功能,逐渐成为技术文档、博客、项目管理等领域的宠儿。本文将详细介绍 Mermaid 的使用方法,并推荐一些相关的资源和工具。
Mermaid 是什么?
Mermaid 是一个基于 JavaScript 的图表绘制工具,它允许用户通过简单的文本语法来创建流程图、序列图、甘特图、类图等多种类型的图表。它的设计理念是让图表的创建变得像编写代码一样简单和直观。
Mermaid 的优势
- 简洁的语法:Mermaid 使用类似 Markdown 的语法,易于学习和使用。
- 跨平台兼容:可以在任何支持 JavaScript 的环境中运行,包括网页、Markdown 编辑器、笔记应用等。
- 多种图表支持:支持多种图表类型,满足不同场景的需求。
- 开源与社区支持:作为开源项目,Mermaid 拥有活跃的社区,持续更新和改进。
图表类型
Mermaid 支持的图表类型包括但不限于:
- 流程图 (Flowchart):用于展示流程和决策逻辑。
- 序列图 (Sequence Diagram):用于描述对象之间的交互。
- 甘特图 (Gantt Chart):用于项目管理和时间线规划。
- 类图 (Class Diagram):用于展示类之间的关系和结构。
- 状态图 (State Diagram):用于描述系统或对象的状态变化。
- 实体关系图 (ER Diagram):用于数据库设计和数据模型。
- 饼图 (Pie Chart):用于展示数据的比例分布。
集成到 Markdown
Mermaid 可以很容易地集成到 Markdown 中,很多 Markdown 编辑器和平台都支持 Mermaid 语法。例如,在 StackEdit 中,你可以直接使用 Mermaid 语法来绘制图表。
深入使用 Mermaid
流程图
流程图是 Mermaid 中最常用的图表类型之一。下面是一个更复杂的流程图示例:
graph TDA[开始] --> B{判断}B -->|是| C[操作1]B -->|否| D[操作2]C --> E[判断2]D --> EE -->|是| F[操作3]E -->|否| G[操作4]F --> H[结束]G --> H
这个流程图展示了如何处理多个决策点和分支。
序列图
序列图用于展示对象之间的交互。以下是一个简单的序列图示例:
sequenceDiagramparticipant Aliceparticipant BobAlice->>Bob: Hello Bob, how are you?alt is sickBob->>Alice: Not so good :(else is wellBob->>Alice: Feeling fresh like a daisyend
这个序列图展示了 Alice 和 Bob 之间的对话,包含了条件分支。
甘特图
甘特图在项目管理中非常有用。下面是一个项目时间线的甘特图示例:
gantttitle 项目时间线dateFormat YYYY-MM-DDsection 项目阶段需求分析 :done, des1, 2024-12-01, 2024-12-07设计阶段 :active, des2, after des1, 7d开发阶段 : des3, after des2, 14d测试阶段 : des4, after des3, 7d上线准备 : des5, after des4, 3d
这个甘特图展示了一个项目的时间线,帮助团队成员了解项目进度。
类图
类图用于展示类之间的关系和结构。以下是一个简单的类图示例:
classDiagramclass Animal {+String name+int age+eat()+sleep()}class Dog {+String breed+bark()}Animal <|-- Dog
这个类图展示了 Animal 和 Dog 之间的继承关系。
饼图
饼图用于展示数据的比例分布。以下是一个简单的饼图示例:
pietitle 市场份额"Chrome" : 60"Firefox" : 20"Safari" : 10"Edge" : 5"Others" : 5
这个饼图展示了不同浏览器的市场份额。
推荐资源
支持 Mermaid 的笔记本
强烈推荐阅读 oioihoii 的博文,其中详细介绍了如何在 StackEdit 中使用 Mermaid。StackEdit 是一个基于浏览器的 Markdown 编辑器,支持 Mermaid 语法,并且可以将笔记内容存储在 Gitee 或 GitHub 上,实现多平台同步和在线共享。
Mermaid 图转 PNG 工具
如果你需要将 Mermaid 图表转换为 PNG 格式,可以使用 Min2k 的 Mermaid 图转 PNG 工具。这个工具支持中文输入,非常方便。
实践应用
示例:项目管理甘特图
gantttitle 项目时间线dateFormat YYYY-MM-DDsection 项目阶段需求分析 :done, des1, 2024-12-01, 2024-12-07设计阶段 :active, des2, after des1, 7d开发阶段 : des3, after des2, 14d测试阶段 : des4, after des3, 7d上线准备 : des5, after des4, 3d
这个甘特图展示了一个项目的时间线,帮助团队成员了解项目进度。
示例:系统状态图
stateDiagram-v2[*] --> 启动启动 --> 运行中运行中 --> 暂停 : 暂停按钮运行中 --> 停止 : 停止按钮暂停 --> 运行中 : 恢复按钮停止 --> [*]
这个状态图展示了一个系统的基本状态转换。
结论
Mermaid 不仅简化了图表的创建过程,还增强了文档的表达能力。无论你是技术文档作者、项目经理还是博主,Mermaid 都能为你的工作带来便利和效率。通过本文推荐的资源和工具,你可以更深入地探索和应用 Mermaid,提升文档的专业性和可读性。
参考文献:
- Mermaid 官方文档
- StackEdit 官方网站
- Min2k 的 Mermaid 图转 PNG 工具
希望这篇博客能为你提供有价值的信息,欢迎在评论区分享你的使用心得或问题。
相关文章:
AI生成图表化:深入探索Mermaid
引言 在使用生成式AI时,只要你提出让AI帮你生成mermaid图,AI的生成就会出现丰富的图形! 在现代文档编写中,图表的使用不仅能增强文档的可读性,还能更直观地表达复杂的概念和流程。Mermaid 作为一款开源的图表绘制工具…...
25.DDD数量关系
学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 关系型数据库的数量关系领域模型的数量关系实现聚合数量关系聚合内聚合间具体说明代码 数量关系是本质吗?领域对象之…...
Linux应用开发————线程池
线程池 定义:简单来说,就是存放多个线程的池子。当创建线程池时,就给池中存放一些线程,如果有任务要执行,就从池中取出一个线程执行任务,依次类推;当所有线程都在执行任务时,其他任务…...
Spring Boot 集成阿里云OSS 完成文件上传下载
前言: 文件上传下载在项目开发中是一个非常常见的业务场景,在云服务上还没有兴起的时候,一般来说都会把文件单独存放到文件服务器上,随着云服务的兴起,各类云服务厂商都提供了 OSS 服务,本篇我们分享 Spri…...
使用ERA5数据绘制风向玫瑰图的简易流程
使用ERA5数据绘制风向玫瑰图的简易流程 今天需要做一个2017年-2023年的平均风向的统计,做一个风向玫瑰图,想到的还是高分辨率的ERA5land的数据(0.1分辨率,逐小时分辨率,1950年至今)。 风向,我分为了16个&…...
测试脚本并发多进程:pytest-xdist用法
参考:https://www.cnblogs.com/poloyy/p/12694861.html pytest-xdist详解: https://www.cnblogs.com/poloyy/p/14708825.html 总 https://www.cnblogs.com/poloyy/category/1690628.html...
数据可视化的Python实现
一、GDELT介绍 GDELT ( www.gdeltproject.org ) 每时每刻监控着每个国家的几乎每个角落的 100 多种语言的新闻媒体 -- 印刷的、广播的和web 形式的,识别人员、位置、组织、数量、主题、数据源、情绪、报价、图片和每秒都在推动全球社会的事件,GDELT 为全…...
【Linux系列】Linux 系统配置文件详解:`/etc/profile`、`~/.bashrc` 和 `~/.bash_profile`
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
uni-app实现小程序、H5图片轮播预览、双指缩放、双击放大、单击还原、滑动切换功能
前言 这次的标题有点长,主要是想要表述的功能点有点多; 简单做一下需求描述 产品要求在商品详情页的头部轮播图部分,可以单击预览大图,同时在预览界面可以双指放大缩小图片并且可以移动查看图片,双击放大࿰…...
游戏引擎学习第45天
仓库: https://gitee.com/mrxiao_com/2d_game 回顾 我们刚刚开始研究运动方程,展示了如何处理当人物遇到障碍物时的情况。有一种版本是角色会从障碍物上反弹,而另一版本是角色会完全停下来。这种方式感觉不太自然,因为在游戏中,…...
electron常用方法
一,,electron设置去除顶部导航栏和menu 1,electron项目 在创建BrowserWindow实例的main.js页面添加frame:false属性 2,electron-vue项目 在src/main/index.js文件下找到创建窗口的方法(createWindow)&…...
【Spark】Spark Join类型及Join实现方式
如果觉得这篇文章对您有帮助,别忘了点赞、分享或关注哦!您的一点小小支持,不仅能帮助更多人找到有价值的内容,还能鼓励我持续分享更多精彩的技术文章。感谢您的支持,让我们一起在技术的世界中不断进步! Sp…...
meta llama 大模型一个基础语言模型的集合
LLaMA 是一个基础语言模型的集合,参数范围从 7B 到 65B。我们在数万亿个 Token 上训练我们的模型,并表明可以专门使用公开可用的数据集来训练最先进的模型,而无需诉诸专有的和无法访问的数据集。特别是,LLaMA-13B 在大多数基准测试…...
JAVA爬虫获取1688关键词接口
以下是使用Java爬虫获取1688关键词接口的详细步骤和示例代码: 一、获取API接口访问权限 要使用1688关键词接口,首先需要获取API的使用权限,并了解接口规范。以下是获取API接口的详细步骤: 注册账号:在1688平台注册一…...
操作系统——内存管理
1、什么是虚拟内存?它是如何实现的?虚拟内存与物理内存之间有什么关系? 虚拟内存是操作系统提供的一种内存管理机制,它使程序认为自己拥有连续的内存空间,但实际上内存可能被分散存储在物理内存和磁盘交换空间中。 虚…...
android studio 模拟器不能联网?
模拟器路径: C:\Users\Administrator\AppData\Local\Android\Sdk\emulator\emulator.exe.关闭所有AVD设备实例 导航至: C:\Users\userName\AppData\Local\Android\Sdk\emulator查看模拟器名称 AdministratorDESKTOP-6JB1OGC MINGW64 ~/AppData/Local/…...
CTF-WEB: 目录穿越与模板注入 [第一届国城杯 Ez_Gallery ] 赛后学习笔记
step1 验证码处存在逻辑漏洞,只要不申请刷新验证码就一直有效 字典爆破得到 admin:123456 step2 /info?file../../../proc/self/cmdline获得 python/app/app.py经尝试,读取存在的目录时会返回 A server error occurred. Please contact the administrator./info?file.…...
数据结构6.4——归并排序
基本思想: 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个…...
【html 常用MIME类型列表】
本表仅列出了常用的MIME类型,完整列表参考文档。 浏览器通常使用 MIME 类型(而不是文件扩展名)来确定如何处理 URL,因此 Web 服务器在响应头中添加正确的 MIME 类型非常重要。 如果配置不正确,浏览器可能会曲解文件内容…...
Linux之vim编辑器
vi编辑器是所有Unix及linux系统下标准的编辑器,类似于Windows系统下的记事本。很多软件默认使用vi作为他们编辑的接口。vim是进阶版的vi,vim可以视为一种程序编辑器。 前言: 1.文件准备 复制 /etc/passwd文件到自己的目录下(不…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
