graphviz - 如何反转 Graphviz(点语言)图中每条边的方向?

标签 graphviz dot

我在 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/

相关文章:

python-3.x - 如何使用 graphviz 通过 networkx 获取图形坐标(布局)?

graphviz - 在 Graphviz 中创建直边

graphviz - Graphviz 中的集群不会对称分布

python - 从 python 打开 .dot 格式的图形

generator - 脚本如何最佳地布局纯分层的graphviz/dot图?

html - 如何使用 Graphviz HTML 表格去除边框间距?

graphviz - 点中的星形图?

graphviz - 在graphviz中生成邻接矩阵

Ruby GraphViz 二叉树记录

graphviz - 等级属性让我感到困惑