我在 Graphviz 的 dot
中指定了一个有向图语言,例如
digraph G { A -> B [label="foo"]; A -> B [label="bar"]; B -> A; C; }
我想自动将其处理成一个边缘反转的图形,即
digraph G { B -> A [label="foo"]; B -> A [label="bar"]; A -> B; C; }
我想使用一个健壮的解决方案(即理解图形的解决方案,因此可能不使用
sed
)来保留任何现有的边缘标签和其他属性。请注意,我不仅仅是在谈论获取 dot
用箭头向后渲染我的图形;我真的需要一个边缘反转的图。 (在这种情况下,我打算反转边缘,应用 prune
,然后再次反转边缘。)如何反转 Graphviz (
dot
-language) 图中每条边的方向?
最佳答案
最简单的方法是包含图形级 dir
反转箭头方向的语句。默认方向为forward
.如果您在图表顶部反转它,那么无需更改任何其他线条,图表就会以您想要的方式显示。
你现在拥有的是:
digraph G
{
edge [dir="forward"]; /* implied */
A -> B [label="foo"];
A -> B [label="bar"];
B -> A;
C;
}
你想要的是这个:digraph G
{
edge [dir="back"]; /* note the change to this line */
A -> B [label="foo"];
A -> B [label="bar"];
B -> A;
C;
}
关于graphviz - 如何反转 Graphviz(点语言)图中每条边的方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10147619/