如何在Graphviz/DiagrammeR水平流程图中添加圆形反馈箭头
解决方案
要实现普通流程保持水平走向、反馈箭头为圆弧样式的效果,只需给反馈边新增端口控制和样式属性即可,修改后的代码如下:
R语言DiagrammeR实现
library("DiagrammeR") grViz("digraph feedback { graph [rankdir = 'LR'] node [shape = box] Growth Population Death node [shape = circle] Source Sink # 主流程,保持原有水平走向 Source -> Growth -> Population -> Death -> Sink # 向上弯曲的蓝色反馈箭头,从节点顶部进出 Population -> Growth [constraint = false, color = blue, tailport = n, headport = n, penwidth = 1.5] # 向下弯曲的蓝色反馈箭头,从节点底部进出,避免和上方箭头交叉 Death -> Population [constraint = false, color = blue, tailport = s, headport = s, penwidth = 1.5] }")
参数说明
tailport和headport分别指定边从起始节点、目标节点的哪个位置引出/射入:n代表顶部(北),搭配使用会生成向上凸起的圆弧;s代表底部(南),搭配使用会生成向下凹陷的圆弧constraint=false保留,确保反馈箭头不会影响主流程的水平排序color和penwidth可按需调整,用来匹配你想要的箭头样式
该写法原生Graphviz、Python的Graphviz库完全通用,直接复用dot语法部分即可。

内容的提问来源于stack exchange,提问作者tpetzoldt
相关产品推荐
相关产品推荐

