1. 为什么我最终把绘图工具换成了drawio第一次接触drawio是在做一个微服务架构梳理的项目。当时团队里有人用Visio有人用ProcessOn还有人直接拿PPT画框图交付出去的文档格式五花八门改一版就要重新对齐一遍线条。最头疼的是产品经理发来的需求文档里嵌了一堆Mermaid代码块我那时候还得手动把它们一个个画成图纯属重复劳动。后来一个做后端的同事跟我说drawio可以直接吃Mermaid和PlantUML代码粘贴进去就出图还能反向导出。我半信半疑试了一下发现确实省事——原本要花半小时对齐的流程图粘贴代码三秒钟就出来了剩下的时间全用来调业务逻辑。这篇内容就是把我这两年在drawio上踩过的坑、攒下的技巧一次性讲清楚。不管你是刚听说drawio的新手还是已经用了一阵但只会拖拽画框的老用户下面这些内容应该都能帮你把绘图效率再提一个档次。核心围绕三件事drawio怎么装怎么开、代码导入一键生图怎么玩、Mermaid和PlantUML这两套代码体系在drawio里怎么配合使用。顺带把VSCode、Typora、Obsidian这些编辑器里的Mermaid预览配置也一并说了毕竟很多人是在写文档的过程中顺手要出图。先给一个结论如果你日常要画流程图、时序图、ER图、思维导图、拓扑图又不想在多个工具之间来回切换drawio加代码导入这套组合是目前性价比最高的方案。它免费、跨平台、支持桌面端和网页端还能跟主流的代码编辑器打通。下面按实际使用顺序展开。2. drawio的安装下载与打开方式选择2.1 桌面版和网页版到底选哪个drawio目前主要有三种使用形态网页版、桌面客户端、以及VSCode等编辑器里的插件形态。很多人第一次搜drawio安装下载的时候会懵不知道下哪个。我直接给结论日常重度使用装桌面版。桌面版基于Electron打包功能跟网页版一致但不受浏览器标签页影响本地文件管理更方便断网也能用。偶尔画一张图直接用网页版打开浏览器就能画不用装任何东西。写代码时顺手画图用VSCode插件版或者用支持Mermaid预览的Markdown编辑器。桌面版的下载渠道官网直接提供各平台的安装包Windows是exemacOS是dmgLinux有deb和AppImage。安装过程没什么好说的一路下一步。需要注意的是桌面版首次启动会问你要不要关联文件类型建议勾上这样双击.drawio文件就能直接打开。网页版的话直接访问官网的在线编辑器即可不需要注册账号也能用文件存在浏览器本地。如果要多人协作才需要登录。提示桌面版和网页版的文件格式完全兼容都是.drawio后缀的XML文件。你在网页版画的图下载下来用桌面版打开没有任何问题反过来也一样。2.2 文件格式与Visio互转的坑热词里有个drawio怎么转visio这个问题我被问过很多次。drawio支持导出为Visio的.vsdx格式路径是文件→导出为→VSDX。但这里有几个实际使用中才会发现的坑第一导出后的Visio文件在复杂图形上会有偏差。简单的矩形、箭头、文字基本没问题但如果你用了drawio特有的形状库比如某些云服务图标导出到Visio后可能变成空白或者错位。我的经验是如果最终交付必须用Visio那从一开始就尽量用基础形状别用花哨的图标库。第二反向导入Visio文件到drawio同样支持但Visio里的一些高级样式比如渐变填充、阴影效果会丢失。所以跨工具协作时最好约定一个统一的形状规范。第三字体问题。Visio默认用Calibridrawio默认用Helvetica互转之后字体可能对不上导致文字换行位置变化。建议在drawio里就把字体设成Arial或者微软雅黑这类两边都有的字体。2.3 用什么打开drawio文件drawio用什么打开这个问题看似简单但实际场景里挺多。.drawio文件本质是XML理论上文本编辑器也能打开但看到的就是一堆标签没法直接编辑图形。正确的打开方式有三种桌面版直接双击、网页版通过文件→打开导入、VSCode装了drawio插件后直接点开。如果你收到别人发的.drawio文件但没装软件最快的办法是打开网页版把文件拖进去。另外提一句drawio还能导出为PNG、SVG、PDF、HTML等格式。SVG特别适合嵌到文档里因为它是矢量图放大不糊。PNG适合发聊天工具PDF适合打印。3. 代码导入一键生图的核心机制3.1 从菜单到粘贴完整操作链路drawio的代码导入功能藏得不算深但第一次用的人容易找不到。完整路径是菜单栏 → 调整图形Arrange→ 插入Insert→ 高级Advanced→ 从文本导入From Text。或者更快的办法是直接按快捷键不同版本可能略有差异我习惯用菜单点。点开之后会弹出一个对话框里面让你选代码类型。drawio支持好几种Mermaid、PlantUML、CSV、SQL等。选好类型把代码粘贴进去点插入图就出来了。这里有个细节很多人不知道插入的时候可以选择插入到当前图还是新建图。如果你只是想往现有画布上加几个节点选插入到当前图如果是独立的一张新图选新建。我一般建议新建因为代码生成的图和手动画的图混在一起后期调整布局会很麻烦。3.2 为什么代码生图比手拖效率高手拖画图的本质问题是你在用鼠标表达逻辑关系但逻辑关系本身是文本性的。比如用户下单→库存扣减→支付→发货这条链路用文字描述就是一行用鼠标画要拖四个框、连三根线、调两次对齐。代码生图的逻辑反过来你先用文本把逻辑写清楚工具负责把它渲染成图形。这样有几个直接好处修改成本极低。要加一个环节就在代码里加一行重新导入即可不用手动挪动其他框。版本管理友好。代码可以进Git每次改动都有记录。手拖的图只能存二进制或者XMLdiff起来很痛苦。批量生成。如果你有十张结构类似的图改改代码就能批量出手拖的话得画十遍。我实际项目里架构图、流程图、时序图这三类基本都用代码生成只有那种需要精细排版的宣传图才手动拖。3.3 导入后的图形还能不能改这是新手最关心的问题代码生成的图导入drawio之后还能不能手动调整答案是能但有限制。导入后的图形会变成drawio的原生形状你可以拖动位置、改颜色、改文字、加边框。但如果你重新导入一次代码之前的手动调整会被覆盖。所以我的做法是代码生成作为初稿手动微调作为终稿微调完就不再重新导入了。如果逻辑有变就在代码里改完重新生成一张然后把之前的手动调整重新做一遍——这也是为什么我尽量把样式也写进代码里减少手动调整的量。4. Mermaid代码在drawio里的实战用法4.1 Mermaid基础语法速通Mermaid是一套用文本描述图表的语法最初是为Markdown文档设计的。它的核心优势是语法接近自然语言学起来快。下面按常用图类型分别说。流程图flowchart是最常用的。基本写法flowchart TD A[开始] -- B{判断条件} B --|是| C[执行操作] B --|否| D[结束] C -- DTD表示从上到下Top-Down还有LR从左到右、RL从右到左、BT从下到上。方括号[]是矩形花括号{}是菱形判断框圆括号()是圆角矩形。时序图sequenceDiagram用来描述交互过程sequenceDiagram participant U as 用户 participant S as 服务端 U-S: 发送请求 S--U: 返回响应-是实线箭头--是虚线箭头participant用来定义参与方并起别名。ER图mermaid er图用来描述数据库表关系erDiagram USER ||--o{ ORDER : places ORDER ||--|{ ITEM : contains||--o{表示一对多||--|{表示一对多且至少一个。思维导图mermaid 思维导图的语法更简单mindmap root((核心主题)) 分支一 子节点 分支二4.2 在drawio里导入Mermaid的完整步骤打开drawio按前面说的路径打开从文本导入对话框类型选Mermaid把上面任意一段代码粘进去点插入。几秒钟后图就出现在画布上了。这里有几个实操细节值得说第一节点文字里的特殊字符要转义。比如你想在节点里写A[用户]方括号会被当成语法符号。解决办法是用引号包起来A[用户[已登录]]。第二换行用br/。Mermaid里直接敲回车会断掉语法要在节点文字里换行得写br/。第三样式可以在代码里指定。比如设置所有节点白底黑字可以在代码开头加一行%%{init: {theme:base, themeVariables: {primaryColor:#ffffff, primaryTextColor:#000000, primaryBorderColor:#000000}}}%% flowchart TD A[节点一] -- B[节点二]这行%%{init: ...}%%就是Mermaid的配置指令themeVariables里可以改各种颜色。热词里有人问mermaid编辑器中设置所有节点为白底黑字的语句答案就是这个。第四节点大小调整。Mermaid本身不直接支持指定节点宽高但可以通过在文字里加空格或者br/来间接撑大节点。热词里mermaid增加框的大小说的就是这个需求。更彻底的办法是导入drawio之后手动拖拽调整。4.3 Mermaid格式拓扑图生成技巧拓扑图用Mermaid画核心是把节点分层。比如一个典型的三层架构flowchart TB subgraph 接入层 A[负载均衡] end subgraph 应用层 B[服务A] C[服务B] end subgraph 数据层 D[(数据库)] E[(缓存)] end A -- B A -- C B -- D C -- Esubgraph用来分组[(...)]表示圆柱形的数据库节点。导入drawio后分组会变成带边框的容器视觉效果比手拖整齐得多。我实际画拓扑图的经验是先用Mermaid把逻辑关系写对导入drawio后再调整布局。因为Mermaid的自动布局有时候会把节点排得比较挤导入后手动拉开间距、调整连线走向最终效果会好很多。5. PlantUML代码导入与VSCode插件配置5.1 PlantUML和Mermaid的分工PlantUML比Mermaid出现更早语法更严谨支持的图类型也更多尤其是类图、组件图、状态图这几类PlantUML的表达能力明显更强。但它的语法相对啰嗦学习曲线比Mermaid陡一些。我的实际分工是流程图、时序图、思维导图用Mermaid类图、组件图、复杂状态机用PlantUML。两者在drawio里都能导入切换成本很低。PlantUML的一个典型类图startuml class User { String name login() } class Order { int id create() } User 1 -- * Order : places endumlstartuml和enduml是必须的包裹标签表示public方法1 -- *表示一对多关系。5.2 PlantUML本地环境与VSCode插件配置PlantUML的渲染需要Java环境因为它底层依赖Graphviz和Java。所以第一步是确认本机装了JDK。命令行敲java -version有输出就行。然后装VSCode插件。在扩展市场搜PlantUML装那个下载量最高的。装完之后还需要配置一下因为插件默认可能找不到Java路径。配置路径VSCode设置里搜plantuml.java把Java的可执行文件路径填进去。Windows一般是C:\Program Files\Java\jdk-xx\bin\java.exemacOS用which java查一下。配置好之后新建一个.puml文件写上面的类图代码按AltD就能预览。这个预览是实时的改代码图就跟着变。热词里plantuml vscode插件配置和plantuml下载说的就是这个流程。PlantUML本身不需要单独下载安装包它是通过插件调用的核心依赖就是Java和Graphviz。Graphviz在Windows上需要单独装macOS用brew装Linux用apt装。5.3 在drawio里导入PlantUML的注意事项drawio导入PlantUML的路径和Mermaid一样只是在对话框里类型选PlantUML。有几个坑要注意第一PlantUML的版本兼容性。drawio内置的PlantUML渲染引擎版本可能比你本地VSCode插件用的版本旧某些新语法可能不支持。如果导入报错先把代码里比较新的语法换成老写法试试。第二中文支持。PlantUML对中文的支持总体没问题但如果你的代码里中文和特殊符号混用偶尔会出现渲染异常。建议中文节点名用引号包起来。第三导入后的图形是静态的。跟Mermaid一样导入后就是drawio的原生形状不再跟PlantUML代码关联。改逻辑要重新导入。6. 编辑器里的Mermaid预览配置6.1 VSCode安装Mermaid插件很多人是在VSCode里写Markdown的时候要预览Mermaid。VSCode本身不直接支持Mermaid渲染需要装插件。搜Markdown Preview Mermaid Support热词里的markdown preview mermaid support就是这个装上之后Markdown预览窗口里就能直接看到Mermaid图。装完插件后新建一个.md文件写mermaid flowchart LR A -- B 然后按CtrlShiftV打开预览图就渲染出来了。这个插件的好处是跟VSCode原生预览集成不用额外开窗口。6.2 Typora更新Mermaid版本Typora内置了Mermaid支持但内置版本可能比较旧。热词里typora如何更新mermaid版本是个常见问题。Typora的Mermaid版本是跟着Typora本体走的不能单独更新。要更新Mermaid只能升级Typora到最新版。所以如果你发现某个新语法在Typora里渲染不出来先检查Typora是不是最新版。6.3 Obsidian查看Mermaid的插件方案Obsidian原生就支持Mermaid渲染不需要装插件。直接在笔记里写Mermaid代码块阅读视图下就能看到图。热词里obsidian 查看mermaid 插件可能是因为有人想找增强功能比如导出、缩放之类的。Obsidian社区里有几个Mermaid相关的增强插件但基础渲染用原生功能就够了。7. 那些文档里不会写的实操经验7.1 代码生图的布局调整心得代码生成的图布局是自动算的有时候不尽如人意。我的经验是不要跟自动布局较劲导入后手动微调。具体做法是先框选所有节点用布局→垂直/水平分布让间距均匀。连线如果交叉太多手动拖几个节点换个位置交叉自然就少了。分组容器subgraph生成的可以整体拖动里面的节点跟着走。另外drawio有个自动布局功能菜单里的Layout可以对选中的图形重新排列。但实测下来对代码生成的复杂图效果一般还是手动调更可控。7.2 公式和特殊符号的处理热词里drawio加入公式是个实际需求。drawio支持在图形里插入数学公式路径是菜单→插入→数学排版。它用的是LaTeX语法比如\frac{a}{b}会渲染成分数。但要注意公式是作为图片嵌入的不是文本。所以如果你要改公式得双击重新编辑。另外公式在导出SVG时能保留导出PNG时如果分辨率不够会糊。7.3 数字电路等专业符号库热词里drawio 数字电路符号说明有人用drawio画电路图。drawio的形状库里确实有电子元件分类包含与门、或门、非门、触发器这些基本符号。路径是左侧形状面板→更多形状→电子。勾选之后面板里就会出现电路符号。不过说实话drawio画复杂电路图不如专业的EDA工具但画个逻辑框图、简单的门电路演示足够了。7.4 版本管理与团队协作最后说一个团队协作的经验。如果多人一起维护同一套图建议把drawio文件拆成多个小文件而不是一张大图塞所有内容。因为drawio文件是XML多人同时改一张图容易冲突。拆成小文件后每个人负责自己的模块Git合并冲突的概率大大降低。另外代码生成的图建议把源代码也存一份在仓库里跟.drawio文件放一起。这样别人想改逻辑直接改代码重新生成比在图形界面上拖拽高效得多。我在实际项目里就是这么干的/docs/diagrams/目录下每个图一个.drawio文件加一个.mmd或.puml源文件README里写清楚每个图的用途和生成方式。新同事接手的时候看代码就懂逻辑不用去猜图形是怎么画的。这套做法用了两年团队里没人再抱怨画图麻烦了。
企业数字化 ERP 产品动态
相关推荐
搞懂做网站后台指的那5个核心坑,避开性能优化陷阱 搞懂做网站后台指的那5个核心坑,避开性能优化陷阱 找建站公司最怕被坑高价,尤其是当对方信誓旦旦说“后台很强大”时,你往往看不懂门道,只能掏钱。其实,“做网站后台指的那”些东西,核心就两点:能不能让你自己改内容,以及服务器跑得快不快。很多低价… · 2026/9/27 1:51:01
笔记本CPU更换实战指南:BGA返修与BIOS微码缝合 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 1:51:01
FPGA Bank与GT Bank:IO设计核心原理与工程实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 1:50:54
六因子选股与双指标择时:量化策略回测实战拆解 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 2:33:26
福田网站设计公司实战:3个步骤搞定性能优化 福田网站设计公司实战:3个步骤搞定性能优化 改个按钮颜色,建站公司让你等一周?这种体验太常见了。很多福田的企业老板都遇到过,明明只是微调需求,反馈却慢得像蜗牛。更让人头疼的是,网站上线后打开速度慢,客户等不及就走了。这时候你才意识到,找福田… · 2026/9/27 2:33:08
网站建设的需求分析报告速查手册:搞定域名服务器不踩坑 网站建设的需求分析报告速查手册:搞定域名服务器不踩坑 域名服务器搞不懂,是90%甲方在建站初期最大的拦路虎。很多浙江的老板找我们做网站,第一句话不是问功能,而是问“我的域名怎么解析到服务器?SSL证书要不要钱?”这种基础概念一旦模糊,后续的… · 2026/9/27 2:33:08
北京,这座物以稀为贵的城市,真的适合我吗? 一个从沧州小县城来北京实习的普通人,写下的一些心里话。来北京之前,我对这座城市是有滤镜的。首都、中关村、北大、互联网大厂、无数人的梦想……作为一个从小县城出来的人,我一直觉得,北京这种地方,是"闯一闯&q… · 2026/9/27 2:32:56
珠海网站建设的公司哪家好新手入门 珠海网站建设公司哪家好?避开被黑挂马坑的实战复盘 昨晚11点,客户电话打爆了我的手机,声音都在抖。 网站首页突然弹出一堆博彩广告,后台登录不了,百度一搜全是黑链。 那一刻你才明白, 网站被黑挂马不知道怎么办 ,才是建站最恐怖的噩梦。… · 2026/9/27 2:32:49
YOLOv8植物叶片检测实战:从LabelMe数据转换到边缘部署避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 2:32:37
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01