You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为DOT生成的节点添加自定义属性?SVG未显示tag等属性

让Graphviz DOT自定义属性出现在SVG的标签中

Graphviz默认只会将内置属性(如label、shape等)渲染到SVG输出里,用户自定义的tag、ID、status、data这类属性不会自动添加到<g>标签中,需要显式配置让Graphviz保留这些属性,有两种可行方案:

方案1:命令行参数指定输出属性

调用dot命令时,使用--attr-output参数列出需要保留的自定义属性,多个属性用逗号分隔:

dot -Tsvg --attr-output=tag,ID,status,data input.dot -o output.svg

执行后生成的SVG文件中,每个节点对应的<g>标签就会带上你定义的自定义属性及对应值。

方案2:DOT文件内全局配置输出属性

如果想在DOT文件中直接定义输出规则,可在图级别添加outputattrs属性,指定要保留的自定义属性:

digraph example {
  // 全局声明要输出的自定义属性
  outputattrs = "tag,ID,status,data";

  // 定义带自定义属性的节点
  node [shape=rect, label="*Bold Text* _Italic Text_"];
  user_node [tag="user", ID="u_123", status="active", data="{'username':'juan'}"];
  post_node [tag="post", ID="p_456", status="draft", data="{'content':'Graphviz tips'}"];

  user_node -> post_node;
}

之后正常执行dot -Tsvg example.dot -o output.svg即可,生成的SVG会包含指定的自定义属性。

注意事项

  • 属性名称区分大小写,要和你在DOT节点中定义的完全一致(比如ID不能写成id)
  • 如果属性值包含引号、逗号等特殊字符,需要用双引号包裹并转义内部引号
  • 该方法仅适用于SVG输出格式,其他输出类型可能不支持自定义属性导出

内容的提问来源于stack exchange,提问作者Juan Carlos Oropeza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:38:10