如何让GraphViz消除完全重复的边?
解决GraphViz完全重复边的渲染问题
我太懂你的痛点了——自动生成的.dot文件里堆了一堆完全重复的边,要是改生成程序的逻辑又麻烦,能靠GraphViz本身的参数搞定就省心多了!
其实你已经找对方向啦:strict关键字就是专门干这个的。只需要把你的有向图声明从digraph改成strict digraph,GraphViz就会自动忽略所有完全重复的边,只保留一条进行渲染。
举个实际的例子:
你的原始代码是:
digraph { graph [ dpi = 300 ]; Hello -> World Hello -> World Hello -> World }
修改后变成:
strict digraph { graph [ dpi = 300 ]; Hello -> World Hello -> World Hello -> World }
渲染这个修改后的.dot文件时,就只会显示Hello到World的一条边,完全符合你的需求。
另外得说一句,之前你被标记为重复的问题确实和你的场景不一样——那个问题是两个节点间有带不同标签的多条边,而你是完全一模一样的重复边。虽然最终都能用strict解决,但本质问题是有区别的,你的重开申请完全合理。
内容的提问来源于stack exchange,提问作者Steve Ives
相关产品推荐
相关产品推荐

