Python graphviz-artist 包完全使用指南graphviz-artist是基于 Graphviz 引擎的轻量级 Python 绘图库主打极简语法、快速绘制专业流程图/结构图/决策树/网络图无需编写复杂的 DOT 语言面向开发者、数据分析师、学生是绘制结构化图形的高效工具。它的核心优势一行代码创建节点、一行代码连接关系自动排版支持导出 PNG/PDF/SVG 等格式完美兼容 Python 3.6。一、核心功能快速绘制结构化图形流程图、组织结构图、决策树、神经网络图、依赖图、状态机、ER图、有向无环图极简语法类「绘画」风格 API无需学习 DOT 原生语法自定义样式节点形状、颜色、字体、边框、线条样式、箭头样式多格式导出PNG、PDF、SVG、DOT 源码自动布局支持水平/垂直布局自动优化节点位置子图/集群支持分组绘制实现模块化图形无缝兼容可直接生成原生 graphviz 代码二次编辑二、安装方法1. 安装 Python 包pipinstallgraphviz-artist2. 安装底层依赖必须graphviz-artist依赖Graphviz 系统软件无此软件无法渲染图片Windows官网下载安装包安装时勾选「Add to PATH」下载地址https://graphviz.org/download/macOSbrewinstallgraphvizLinuxUbuntu/Debiansudoapt-getinstallgraphviz3. 验证安装importgraphviz_artistasga gga.Graph()# 创建画布print(安装成功)三、基础语法与核心参数1. 核心对象对象作用ga.Graph()创建无向图线条无箭头ga.Digraph()创建有向图流程/箭头图最常用g.node()创建节点g.edge()创建连接边g.subgraph()创建子图分组g.render()导出图片g.view()直接打开预览图片2. 核心参数详解1画布初始化参数gga.Digraph(namedemo,# 图名称directionTB,# 布局方向TB(上→下)、LR(左→右)、BT、RLfontnameMicrosoft YaHei,# 中文字体解决乱码node_attr{# 全局节点样式shape:box,# 形状box/ellipse/circle/diamond/recordfontsize:12,color:black},edge_attr{# 全局边样式color:gray,arrowhead:normal# 箭头样式})2节点 node() 参数nodeg.node(label节点内容,# 显示文字shapebox,# 形状stylefilled,# 填充样式fillcolorlightblue,# 填充色colorred,# 边框色fontcolorblack,# 字体色fontsize14,# 字体大小width1,height0.5# 尺寸)3边 edge() 参数g.edge(node1,node2,# 连接两个节点label关系,# 边标签colorblue,# 线条颜色penwidth2,# 线条粗细arrowheadvee,# 箭头头部样式arrowtailnormal,# 箭头尾部样式styledashed# 线条solid/dashed/dotted)4导出参数g.render(filenameoutput,# 文件名formatpng,# 格式png/pdf/svgdirectory./,# 保存路径viewTrue# 导出后自动打开)四、8 个实际应用案例可直接运行案例 1基础流程图最常用场景业务流程、工作流、步骤图importgraphviz_artistasga# 创建有向图左→右布局gga.Digraph(directionLR,fontnameMicrosoft YaHei)# 创建节点startg.node(开始,shapeellipse,fillcolorlightgreen)step1g.node(需求分析,shapebox)step2g.node(开发实现,shapebox)step3g.node(测试验收,shapebox)endg.node(上线,shapeellipse,fillcolorlightcoral)# 连接关系g.edge(start,step1)g.edge(step1,step2)g.edge(step2,step3)g.edge(step3,end)# 导出g.render(flowchart,formatpng,viewTrue)案例 2组织结构图场景公司组织架构、层级关系importgraphviz_artistasga gga.Digraph(directionTB,fontnameMicrosoft YaHei)ceog.node(CEO,shapebox,fillcolorgold)ctog.node(技术总监,shapebox)cfog.node(财务总监,shapebox)devg.node(开发部,shapebox)testg.node(测试部,shapebox)financeg.node(财务部,shapebox)g.edge(ceo,cto)g.edge(ceo,cfo)g.edge(cto,dev)g.edge(cto,test)g.edge(cfo,finance)g.render(org_chart,viewTrue)案例 3决策树机器学习可视化场景分类决策树、规则判断importgraphviz_artistasga gga.Digraph(fontnameMicrosoft YaHei)# 根节点rootg.node(年龄30,shapediamond,fillcolorlightyellow)# 分支yesg.node(已婚,shapebox)nog.node(单身/未婚,shapebox)# 子判断subg.node(有房,shapediamond)res1g.node(稳定)res2g.node(待观察)g.edge(root,yes,label是)g.edge(root,sub,label否)g.edge(sub,res1,label有)g.edge(sub,res2,label无)g.render(decision_tree,viewTrue)案例 4神经网络简易图场景深度学习模型结构可视化importgraphviz_artistasga gga.Digraph(directionLR,fontnameMicrosoft YaHei)# 输入层in1g.node(输入1,fillcolorlightblue)in2g.node(输入2,fillcolorlightblue)# 隐藏层h1g.node(隐藏层1,fillcolorlightgreen)h2g.node(隐藏层2,fillcolorlightgreen)# 输出层outg.node(输出,fillcolororange)# 全连接g.edge(in1,h1)g.edge(in1,h2)g.edge(in2,h1)g.edge(in2,h2)g.edge(h1,out)g.edge(h2,out)g.render(nn_demo,viewTrue)案例 5状态机图场景程序状态流转、设备状态importgraphviz_artistasga gga.Digraph(fontnameMicrosoft YaHei)idleg.node(空闲,shapecircle)rung.node(运行,shapecircle)pauseg.node(暂停,shapecircle)stopg.node(停止,shapecircle)g.edge(idle,run,label启动)g.edge(run,pause,label暂停)g.edge(pause,run,label继续)g.edge(run,stop,label关闭)g.edge(stop,idle,label重置)g.render(state_machine,viewTrue)案例 6子图分组模块化绘图场景大型系统拆分、模块划分importgraphviz_artistasga gga.Digraph(fontnameMicrosoft YaHei)# 子图1前端模块withg.subgraph(namecluster_frontend)asc:c.attr(label前端模块)htmlc.node(HTML)cssc.node(CSS)# 子图2后端模块withg.subgraph(namecluster_backend)asc:c.attr(label后端模块)apic.node(API)dbc.node(数据库)# 跨模块连接g.edge(html,api)g.edge(api,db)g.render(subgraph_demo,viewTrue)案例 7依赖关系图场景Python 包依赖、任务依赖、文件依赖importgraphviz_artistasga gga.Digraph(directionLR,fontnameMicrosoft YaHei)# 节点baseg.node(基础库)reqg.node(请求库)datag.node(数据处理)mlg.node(机器学习库)appg.node(主应用)# 依赖关系g.edge(base,req)g.edge(base,data)g.edge(data,ml)g.edge(req,app)g.edge(ml,app)g.render(dependency_graph,viewTrue)案例 8ER 图数据库实体关系场景数据库表关系设计importgraphviz_artistasga gga.Digraph(fontnameMicrosoft YaHei)userg.node(用户表\nid: 主键\nname,shaperecord)orderg.node(订单表\norder_id\nuser_id,shaperecord)goodsg.node(商品表\ngoods_id\nname,shaperecord)g.edge(user,order,label1:N)g.edge(order,goods,labelN:M)g.render(er_diagram,viewTrue)五、常见错误与解决方案1. 错误ExecutableNotFound: failed to execute dot原因未安装系统级 Graphviz 或未配置环境变量解决Windows重新安装勾选 Add to PATH重启 Python 环境/终端2. 错误中文显示为方框□□□原因字体不支持中文解决初始化时指定中文字体gga.Digraph(fontnameMicrosoft YaHei)# 微软雅黑3. 错误导出无图片只生成 DOT 文件原因未安装 Graphviz 或格式错误解决指定格式formatpng确保系统依赖安装完成4. 错误节点/边样式不生效原因参数名错误区分大小写正确写法shape,fillcolor,style,penwidth5. 错误子图不显示分组框原因子图名称必须以cluster_开头withg.subgraph(namecluster_xxx)asc:# 正确六、使用注意事项必须安装系统依赖graphviz-artist只是包装器核心渲染依赖 Graphviz 软件中文必设字体否则乱码优先使用Microsoft YaHei/SimHei布局方向选择层级图用TB上到下流程/网络用LR左到右节点名称唯一相同名称会被识别为同一个节点导出格式建议展示用PNG打印用PDF编辑用SVG复杂图形优化节点过多时简化标签使用子图分组兼容性仅支持 Python 3.6不支持 Python 2总结graphviz-artist 极简语法 专业图形无需 DOT 语言快速绘制流程图/决策树/架构图安装分两步pip install 系统 Graphviz 软件核心 APIDigraph()创建画布 →node()节点 →edge()连接 →render()导出8 大案例覆盖工作/学习全场景可直接复制运行常见问题依赖缺失、中文乱码、子图命名按方案即可解决《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章前6章涵盖深度学习基础包括张量运算、神经网络原理、数据预处理及卷积神经网络等后5章进阶探讨图像、文本、音频建模技术并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法每章附有动手练习题帮助读者巩固实战能力。内容兼顾数学原理与工程实现适配PyTorch框架最新技术发展趋势。