draw.io基础操作、大模型代码高效画图和批量操作图形

本文详细介绍了如何在draw.io中进行基础操作,如链接、变形、复制、插入表格,以及高级功能如在线打开、插入图片、使用Mermaid语言生成流程图、批量图形修改和图码转换。还涉及了Diagrams库、WPS/Office集成和数学公式输入等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基础操作

1、链接

两中链接的区别在于点绿色的点还是蓝色的箭头。

1.1、自动连接图形
鼠标放在图形上,点击出现的箭头,会自动出常用图形
1.2、两种连接类型
(1)、固定连接
如果拖动其中一个图形的话,固定链接的形状会是曲线连过去。
方法:不要点击左边图形+鼠标放在边框上面左边出现绿圆点+鼠标左键点击图形的绿圆点不放+拖动链接另外一个图形的绿圆点

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
(2)浮动连接
如果拖动其中一个图形的话,固定链接的形状会自动变为直线连接。
实现方法1:鼠标放在图形边缘等待出现蓝色箭头,鼠标左键点击图形上的箭头不放+拖动链接到另外一个图形+再往前靠一点另外一个图形会变成蓝框+松手。
实现方法2:将两个图形靠近,点箭头自动连过去。

在这里插入图片描述

在这里插入图片描述

2、等比例变形

shift+小蓝点

3、复制

ctrl+d 快速复制
ctrl+拖动鼠标 快速复制
ctrl+c/v 复制+粘贴

4、插入表格

点击表格图标选择插入图表形状。
点击第二张图中红圈的黄点,改变成图标的形状。
在右边的设置框里调整图表的大小
在这里插入图片描述

在这里插入图片描述

5、改变文字方向

方法1:插入文本框,然后缩小文本框的宽度,类似PPT。
在这里插入图片描述
拉圆点缩小文本,即可竖排。
在这里插入图片描述
方法2:直接插入文字,然后调整方向。缺点只能逆时针转90°,文字是倒的。
在这里插入图片描述
点击箭头
在这里插入图片描述

6、批量翻转箭头等图形的方向

全选要翻转的图形——点击邮件—在下拉列表靠近底部的位置找到“翻转”选项—点击

7、全选各种图像

全选连接线:Ctrl+Shift+E,全选后在右侧设置,例如可以把曲线改直线等。

8、替换形状

在这里插入图片描述

9、 翻转箭头

右侧设置框—调整图形——翻转(在第三行)

二、在线打开

https://app.diagrams.net/

三、插入—功能聚集地

1、插入图片

调整图形—插入—图片

在这里插入图片描述

2、插入画笔

插入—自由绘图

3、对齐/等距分布和对齐到网格

方法1:
先选中图形
调整图形——对齐/等距分布
方法2:
选中图形—右键

对齐到网格在最下面。
在这里插入图片描述

4、美化样式

不选中图形 —样式,注意:不能选中某个图形,选中图形右边的设置部分会针对某个具体的图形设置,无法对全面流程图美化样式。
在这里插入图片描述

5、修改画布大小

方法1:文件—页面设置
方法2:右边设置框——最下面页面尺寸

6、导出

使用draw.io导出的png或者svg等均含有xml信息,占用存储较大,但是可以再次导入draw.io进行编辑。

7、删除形状

保留连接线:直接选中形状,点击Delete或者Backspace
同时删除连接线:选中形状后,点击Ctrl + Delete/Backspace

四、图码转换——高效画图

可以和大模型结合,由大模型生成代码,人工修改代码或图形,高效画图。

draw.io支持mxGraph的标记语言(Markup Language),用于在draw.io中描述图形模型的结构和属性。mxGraphModel是draw.io内部使用的一种格式,用于保存和加载图形模型数据。

1、通用图码转换

功能启用

(1)、点击 其他—编辑绘图

在这里插入图片描述

(2)、弹出代码框
在这里插入图片描述

2、流程图生成:使用mermaid语言生成图:

插入 —> 高级:支持插入txt、mermaid、sql、csv等格式的内容

在这里插入图片描述

3、大模型生成流程图mermaid语言画图代码—高可用

流程图mermaid语言画图代码相对简单,大模型可以较好的生成。

4、大模型生成mxGraph 库画图代码—低可用

代码生成的mxGraphModel画图功能丰富但bug较多,可用性交底。

Prompt :

使用mxGraphModel的标记语言在draw.io画一个网络图,其中包含3个思科交换机和一个网关,交换机都连接到网关上。请生成代码,其中交换机对象使用为xx

这个对象ID可以选一个交换机到画布,然后查看代码获取。一般在这一句style="shape=mxgraph.cisco.directors.content_engine_(cache_director)

四、大模型生成mxGraph 画图—重要

技术进步真快,在我24年写这篇文章的时候,大模型生成的mxGraphModel的xml代码bug非常多,可用性很低,但是在25年,随着技术的进步,使用大模型生成代码自动生成流程图已经是draw.io的重要功能。
第一步:使用deepseek、文心等大模型生成流程图的描述。直接上传流程图模板+语言描述想要的流程图,生成较为规范的图表描述或创建需求。​​​​​​​​​​​​​​​​
第二步:生成代码。将下面的prompt模板+画图规范+第一步生成的图表描述或创建需求,一起提交给大模型生成代码。

prompt模板

# 角色
你是一个 DrawIO 代码生成器。可以将我的需求或者图片转化为对应的xml代码。
语言:中文
## 核心能力
1. 根据视觉描述/需求直接生成可运行的draw.io代码
2. 校验机制保证代码准确性
3. 输出标准化代码块
4. 生成过程中要遵守规则 「DrawIO 图形规范指南(完整版)」

## 处理流程
① 接收输入 → ② 要素解析 → ③ 结构建模 → ④ 语法生成 → ⑤ 完整性校验 → ⑥ 输出结果(用artifacts 输出)

## 输出规范
<!-- 经过校验的draw.io代码 -->
<mxfile>
    [生成的核心代码]
</mxfile>

## 交互规则
- 收到图片描述时:"正在解析结构关系(进行描述图片细节)...(校验通过)"
- 收到创建需求时:"建议采用[布局类型],包含[元素数量]个节点,是否确认?"
- 异常处理:"第X层节点存在连接缺失,已自动补全"

## 优势特性
- 元素定位精度:±5px等效坐标
- 支持自动布局优化(可禁用)
- 内置语法修正器(容错率<0.3%)

DrawIO 图形规范指南(完整版)

# DrawIO 图形规范指南(完整版)

drawio文件是基于mxGraph的XML结构

## 基础要求
- 展示在A4纸上,选择合适的字体大小
- 字体必须全部加粗,标题等关键元素字号加大处理
- 线段统一使用3pt宽度,保证在论文打印后依然清晰可见
- 所有文本格式(加粗、下标上标、公式代码)必须正确实现
- 使用标准drawio文件格式,保证兼容性
- 组件必须完全容纳文字,避免文字溢出
- 所有线条必须设置jumpstyle=arc和jumpsize=6,确保交叉处清晰可辨
- 所有连接线拐点必须设置rounded=1保证美观

## 布局规范
- 组件间垂直和水平间距保持统一(30-50px为宜)
- 将相关的组件放入容器或组中,以提高图表的可读性和组织性
- 对齐方式使用center,保持一致性
- 使用网格对齐(gridSize=10)辅助布局
- 避免组件和连接线重叠,特别是避免线条穿过文字

## 连接线规范
- 所有箭头样式必须统一(endArrow=classic)
- 多条连接线汇入同一组件时,应从不同方向进入(如左、中、右)
- 同一起点的多条连接线应适当分散起点位置
- 为所有交叉的连接线添加跳跃样式(jumpStyle=arc)
- 长距离连接线应适当设置航点(waypoints)引导路径
- 绝对禁止连接线遮挡文字和组件标签

## 组件连接设计
- 组件使用浮动连接点,而非固定连接点
- 相关组件应放置在合理的相对位置,减少连线复杂度
- 复杂流程应分层次展示,避免连线交叉过多

## 文本与组件规范
- 所有组件内文本必须加粗(fontstyle=1)
- 数学公式使用HTML格式:h<sup>v</sup>和h<sub>inter</sub> 不要使用latex格式
- 公式可以根据条件更换字体
- 数学符号如点乘必须使用正确格式:◎应写为&odot;
- 合理使用waypoints:在需要精确控制连接路径时,可以使用固定的waypoints来避免线条交叉和文字遮挡
- 组件大小应根据内容自适应,保持适当留白

## 命名与结构规范
- diagram name必须命名为有意义的名称(如"多模态特征融合流程")
- 组件ID必须反映其功能(如query-network)
- 连接线ID应反映实际连接关系(如edge-visual-query)
- 相关元素应放在一起,提高代码可读性

## 实践检查清单
- 连接线交叉检查:所有交叉处是否设置了jumpstyle=arc
- 文本遮挡检查:是否有连接线穿过文本或遮挡组件
- 格式一致性检查:字体、线条宽度、箭头样式是否统一
- 连接美观性检查:连接线是否从合适的方向进入组件
- 留白空间检查:组件之间是否有足够间距(30-50px)
- 代码健壮性检查:代码是否符合drawio开发规范,是否可以运行

## 特殊场景处理
- 复杂图表应考虑分层或分区域展示
- 多条平行连接线应保持一致的间距和样式
- 长路径连接应使用中间节点或分段处理
- 双向连接使用两条独立的连接线而非双向箭头

## 参考资源
- DrawIO官方文档:https://www.drawio.com/
- DrawIO学习教程:https://www.drawzh.com/
- 在线编辑器:https://app.diagrams.net/
- MxGraph语法:https://jgraph.github.io/mxgraph/docs/tutorial.html​​​​​​​​​​​​​​​​

五、批量操作图形

这是个代码框用于调用mxGraphModel的标记语言(Markup Language),在draw.io中描述图形模型的结构和属性。mxGraphModel是draw.io内部使用的一种格式,用于保存和加载图形模型数据。

1、批量修改所有的字体/线条/颜色—常用功能

draw.io并没有提供全部选择一类对象,如线条、字体然后修改的功能。可以通过图形生成代码,然后修改对应的代码来快速完成。

其中代码修改可以由大模型修改代码,然后再讲代码粘贴回draw.io中修改。

案例1、批量将矩形的高度改为50

方法一:如果矩形能全部选择到,则全选修改右边的配置框的调整图形。
方法二:如果矩阵不能全部选择到。
1、提取代码
2、粘贴到txt
3、ctrl+h 替换为 height=“50”

2、批量插入图形
这是drawio的绘图语言,请在其中插入一个菱形,

注意:插入的图像代码要放在倒数第二行 前。

<mxGraphModel dx="977" dy="588" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
  <root>
    <mxCell id="0" />
    <mxCell id="1" parent="0" />
    <mxCell id="5TlSNR0lOvDpRwltdClC-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
      <mxGeometry x="200" y="280" width="120" height="60" as="geometry" />
    </mxCell>
  </root>
</mxGraphModel>
案例2、批量将线条的宽度改为2

1、语法:edge=“1” 表示这是一条线,因此通过<mxCell id=开头,edge=“1”>来搜索线, strokeWidth=2表示线的宽度,要想改线条的形状要改style=中的内容。这里我们在html=1的分号和双引号之间插入strokeWidth=2,来修改格式。

<mxCell id="GWXnRPhZYhOlK_d6dPAx-4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="GWXnRPhZYhOlK_d6dPAx-2" target="GWXnRPhZYhOlK_d6dPAx-3" edge="1">
  <mxGeometry relative="1" as="geometry" />

2、用python的re模块来完成。

import re
def replace_html_attribute(content):
    # 查找所有匹配的元素
    pattern = r'<mxCell id=.*?edge="1">'
    matches = re.findall(pattern, content)
    # 对每个匹配的元素进行修改
    for match in matches:
        # 将修改后的内容替换原始匹配项
        content = content.replace('html=1;', 'html=1;strokeWidth=2;')

    return content



content = '''  

在这里写入mxgraph语言

'''

# 执行插入操作
result = replace_html_attribute(content)
print(result)
案例3、批量将所有图形的边框改为填充色

1、语法:
fillColor属性是填错的图像颜色,borderColor和strokeColor在不同的情况下指边框的颜色,一般是strokeColor起作用。通过正则表达式在fillColor后增加borderColor和strokeColor,他们的值和fillColor一致来实现边框和填充色一样。
注:纯白色填充色无法修改边框为白色,因为白色填充时mxGraphModel代码中没有fillColor字段。

2、代码
将输出的代码粘贴到draw.io中编辑语言部分

import re

# 输入的代码
code = '''  
<mxGraphModel dx="1050" dy="629" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="1654" math="0" shadow="0">
  <root>
    <mxCell id="0" />
    <mxCell id="1" parent="0" />
xxxxx
  </root>
</mxGraphModel>


'''

# 使用正则表达式找到所有包含fillColor的行,并在其后面添加borderColor和strokeColor
pattern = r'(?<=fillColor=)([^;]+)(?=;)'
new_code = re.sub(pattern,
                  lambda match: match.group() + ';borderColor=' + match.group() + ';strokeColor=' + match.group(), code)

# 输出新的代码
print(new_code)

六、Diagrams 库

diagrams 库可以用来画架构图。画好的图片可以插入draw.io或者生成xml导入draw.io。

安装:
Diagrams库依赖于开源的图可视化工具Graphviz,安装Graphviz后,通过pip 安装diagrams。

pip install diagrams

安装 graphviz2drawio库 ,将保存的graph转为xml,然后在drawio中导入。

from graphviz2drawio import graphviz2drawio

xml = graphviz2drawio.convert(graph_to_convert)
print(xml)

七、嵌入WPS/office

1、复制为图像

选中需要复制的部分,然后鼠标右键-复制为图像,然后到Office中进行Ctrl + V粘贴即可,粘贴后的图依旧是可以变换大小,且清晰度比直接导出的要好。
注意:不可直接ctrl+c/v
在这里插入图片描述

八、分页

在页面的左下角有分页功能,类似excel点击可以加页。
在这里插入图片描述

九、流程图自动布局

在高级选型中的下半部分
在这里插入图片描述

其他

1、将内容在html打开

注意:实际内容和菜单是反的,嵌入图片是网页,嵌入网页是图片。
1、文件—嵌入——图片/SVG。 会生成代码,将代码复制到txt,该后缀为html则会在页面打开,点击打开的页面上的图形则会在网页中呈现。
2、1、文件—嵌入——图片。 会生成代码,将代码复制到txt,该后缀为html则会在页面打开,页面上会有一个图形。
在这里插入图片描述

2、输入数学公式

1、打开 其他—数学排版
2、点击插入文本框
3、在文本框中输入公式 a^2+b^2=c^2 注意单引号要用键盘Tab 上面的键输入(即ESC键下面TAB键上面的~和单引号键)。
4、点击空白,文本框自动渲染为数学公式。

3、插件

draw如何对图中的形状进行编号
https://www.drawzh.com/2663.html

Draw软件所达到的功能 开发绘制直线(Line)功能:两点画线(1)、角度画线(2)、XY画线(3)、画垂线(4)、点距画线(5)、相切圆(弧)画线(6) 开发绘制圆(Cercle)功能:半径圆心画圆(1)、三点画圆(2)、点距画圆(3)、半径圆心值画圆(4)、相切直线/圆(弧)画圆(5)、相切两线画圆(6) 开发绘制多边形(Polygon)功能:画正多边形(1)、画矩形(2),正多边形包括三角形、正方形、五边形、六边形、七边形、八边形 开发绘制弧(Arc)功能:弧心半径值起始角度弧度画弧线(1)、弧心半径弧度值画弧线(2)、相切图形(直线,圆,弧)画弧线(3) 开发绘制文本(Text)功能:绘制文本(1)、字体大小(2) 界面及文本字体风格设置:普通(1),粗体(2),斜体(3),斜体加粗(4),一共四种样式。 保存及打开状态菜单:保存当前绘制环境或打开已存在的绘制环境。 保存制图:根据当前水平垂直滚动条动态生成所绘制图形,保存成图片格式(bmp,jpg(默认),png,tiff,gif,pcx,tga,exif,svg,psd,cdr,pcd,ufo,eps,ai,raw,WFM) 清除全部:清除屏幕中全部图形,不包括集合中内容。 颜色选择器/背景颜色选择器:调出Java中已封装的颜色选择器(JColorChooser类的createDialog(略)方法,用于设置线条颜色/背景颜色)。 线条宽度:弹出输入对话框,用于设置线条宽度。 灵敏度调节:弹出输入对话框,用于设置采集点图形的灵敏程度。 撤销上一步/前进下一步:用于当操作错误,撤销此步操作/当撤销错误,回到撤销之前操作。 刷新:用于刷新当前绘图。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风暴之零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值