news 2026/5/15 17:38:50

使用 Python 测试 Mermaid 与 Graphviz 图表生成(支持中文)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 Python 测试 Mermaid 与 Graphviz 图表生成(支持中文)

在数据分析、系统建模或关系可视化场景中,我们常常需要将实体关系以图表形式展示。Python 社区中有两种流行的方案:

  1. Mermaid:基于文本生成流程图、时序图、关系图,常用于文档和网页。
  2. Graphviz:功能强大的图形可视化工具,支持 PNG、SVG 等多种输出格式。

本文将演示如何用 Python 测试生成 Mermaid 和 Graphviz 图表,并兼容中文显示。


一、准备工作

1. 安装依赖

pipinstallpydantic graphviz

注意:Graphviz 生成图像需要系统安装 Graphviz 可执行文件。

  • Ubuntu/Debian:
sudoapt-getinstallgraphviz
  • macOS:
brewinstallgraphviz
  • Windows:请从 Graphviz 官网 下载并安装。

二、定义关系模型

我们使用pydantic定义实体关系模型,每条关系包含三个属性:subjectpredicateobject

frompydanticimportBaseModel,FieldclassRelationship(BaseModel):subject:str=Field(...)predicate:str=Field(...)object:str=Field(...)

三、生成 Mermaid 图表

Mermaid 图表是文本驱动的,我们可以根据关系列表自动生成 Mermaid 流程图代码。

fromgraphviz_renderimportrelationships_to_mermaid# 示例关系relationships=[Relationship(subject="用户",predicate="登录",object="系统"),Relationship(subject="系统",predicate="验证",object="身份"),Relationship(subject="数据库",predicate="存储",object="用户信息"),Relationship(subject="AI助手",predicate="处理",object="请求"),Relationship(subject="文档",predicate="描述",object="功能")]mermaid_code=relationships_to_mermaid(relationships)print("生成的Mermaid代码:\n")print(mermaid_code)

Mermaid 输出示例

登录

验证

存储

处理

描述

用户

系统

身份

数据库

用户信息

AI助手

请求

文档

功能

你可以将上面的代码复制到 Mermaid Live Editor 查看效果。


四、生成 Graphviz 图表

Graphviz 可以直接生成图片文件(PNG、SVG),适合嵌入文档或网页。

frompathlibimportPathfromgraphviz_renderimportrelationships_to_png output_path=Path("./test_relationships.png")try:relationships_to_png(relationships,output_path)print(f"Graphviz图表已保存到:{output_path.absolute()}")exceptExceptionase:print(f"生成Graphviz图表时出错:{e}")print("可能原因:未安装Graphviz或中文字体缺失")

运行后,你将得到如下关系图:

用户 --登录--> 系统 系统 --验证--> 身份 数据库 --存储--> 用户信息 AI助手 --处理--> 请求 文档 --描述--> 功能

如果中文显示异常,可以在 Graphviz 中设置字体,例如:

dot.attr(fontname="Microsoft YaHei")

五、完整测试脚本

#!/usr/bin/env python# -*- coding: utf-8 -*-frompydanticimportBaseModel,FieldfrompathlibimportPathfromgraphviz_renderimportrelationships_to_mermaid,relationships_to_pngclassRelationship(BaseModel):subject:str=Field(...)predicate:str=Field(...)object:str=Field(...)deftest_mermaid_generation():relationships=[Relationship(subject="用户",predicate="登录",object="系统"),Relationship(subject="系统",predicate="验证",object="身份"),Relationship(subject="数据库",predicate="存储",object="用户信息"),Relationship(subject="AI助手",predicate="处理",object="请求"),Relationship(subject="文档",predicate="描述",object="功能")]mermaid_code=relationships_to_mermaid(relationships)print("生成的Mermaid代码:\n",mermaid_code)returnrelationshipsdeftest_graphviz_generation(relationships):output_path=Path("./test_relationships.png")try:relationships_to_png(relationships,output_path)print(f"Graphviz图表已保存到:{output_path.absolute()}")exceptExceptionase:print(f"生成Graphviz图表时出错:{e}")if__name__=="__main__":rels=test_mermaid_generation()test_graphviz_generation(rels)

六、小结

  • Mermaid 适合快速生成文档内的关系图,依赖文本描述。
  • Graphviz 更专业,适合生成高质量图片,但需要安装系统依赖。
  • 中文显示需要注意字体配置,尤其是 Graphviz。

通过本文,你可以快速测试 Python 生成 Mermaid 和 Graphviz 图表,并进行中文支持处理。

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

企业内部模型上线前,必须补上的一项测试:执行态稳定性

一个现实问题很多企业在模型上线前,会测试:准确率延迟成本幻觉率但几乎不测试:执行态是否稳定为什么这是一个严重缺口因为事故往往不是:完全错误而是:执行态不一致上线前最小 Gate 清单(简化版)…

作者头像 李华
网站建设 2026/5/13 14:51:10

8B小模型后训练实战:企业私域语义空间稳定性与通用能力平衡指南

本文探讨8B小模型通过后训练在企业私域语义空间中的应用价值。实验表明,经过SFTDPO训练的模型能在不依赖system prompt/RAG的情况下稳定进入私域语义空间,同时保持通用知识与CoT能力。文章分享了三条实践经验:警惕"脑损伤"SFT、训练…

作者头像 李华
网站建设 2026/5/15 4:52:48

AI智能宠物管家系统:基于YOLOv5的宠物识别与行为分析解决方案

文章目录 毕设帮扶:从0到1搭建基于YOLOv5的宠物检测系统——助你搞定深度学习毕设 一、课题价值:宠物检测毕设为啥值得做? 二、核心技术:YOLOv5在宠物检测中的“硬实力” 三、任务拆解:你的系统要解决哪些宠物检测问题? (一)核心任务 (二)场景挑战与应对 四、数据集:…

作者头像 李华
网站建设 2026/5/10 15:20:34

Bug侦破大会:破解技术悬案的终极策略

技术悬案:Bug侦破大会的挑战与策略主题引入 从软件开发的日常中选取典型Bug案例,以悬疑叙事方式吸引读者,强调复杂Bug对项目的潜在影响。案例背景设定选择具有代表性的技术场景(如分布式系统、内存泄漏、并发问题)&…

作者头像 李华
网站建设 2026/5/12 2:34:30

LLM基因定制饮食健康效果翻倍

📝 博客主页:Jax的CSDN主页 基因导向的智能饮食规划:健康效果倍增的科学路径目录基因导向的智能饮食规划:健康效果倍增的科学路径 目录 引言:基因定制饮食的瓶颈与破局点 技术应用场景:从预防到健康管理的全…

作者头像 李华
网站建设 2026/5/13 2:28:55

亲测好用8个AI论文网站,专科生搞定毕业论文格式规范!

亲测好用8个AI论文网站,专科生搞定毕业论文格式规范! AI 工具如何让论文写作变得轻松高效 对于许多专科生来说,毕业论文的撰写不仅是学术能力的考验,更是一场对耐心与技巧的挑战。尤其是在格式规范、内容逻辑和语言表达等方面&…

作者头像 李华