如何获取Graphviz绘图中边的默认标签?
如何让Graphviz自动生成边的默认标签
当然可以实现!你不用再手动给每条边写label="a->b"这种重复内容,Graphviz本身提供了内置属性变量,能自动拼接边的起点和终点名称作为默认标签。
方法一:全局统一配置(推荐)
在图定义里先设置全局边属性,这样所有未单独指定标签的边都会自动生成起点->终点格式的标签:
digraph G { // 全局配置边的默认标签规则,\tail 代表起点节点名,\head 代表终点节点名 edge [label="\\tail->\\head"]; a -> b; // 自动生成标签 "a->b" b -> c; // 自动生成标签 "b->c" // 如果某条边需要自定义标签,直接单独设置就能覆盖全局规则 c -> d [label="自定义特殊标签"]; }
方法二:单个边单独设置
如果你不想全局生效,也可以给特定边单独配置自动标签:
digraph G { a -> b [label="\\tail->\\head"]; // 自动生成 "a->b" b -> c [label="手动设置的标签"]; // 保留自定义内容 }
原理说明
这里用到了Graphviz的内置属性变量:
\tail:指代当前边的起始节点名称\head:指代当前边的目标节点名称
通过把这两个变量用->连接,就能自动生成和你手动编写格式一致的标签,彻底省去重复输入的麻烦。
内容的提问来源于stack exchange,提问作者John




