控制graphviz点中的边缘顺序

时间:2017-05-12 01:21:07

标签: graphviz dot

我无法弄清楚如何用点控制边缘放置。我创建了一个小例子来展示我的问题。这可能是也可能不是MCVE;在使其最小化和可验证的过程中,我可能已经删除了完整版。无论如何:

digraph stuff {
    rankdir=LR;
    a->b->c->b->a
}

$ dot -V
dot - graphviz version 2.38.0 (20140413.2041)
dot barfu.dot -Tpng > barfu.png

给了我这个:

enter image description here

但我想让左右箭头始终位于顶部,以反映正常的状态转换。 (实际上,最好让它们在中间是直线,并且从右到左的曲线总是在下面弯曲。)

我尝试更改线宽,长度,添加组,设置连接器方向等。似乎没有任何帮助,至少在较大的图表中是这样的。

1 个答案:

答案 0 :(得分:1)

这在我的较大图表中不起作用,因此其他答案仍然是最受欢迎的,但似乎是因为graphviz以默认的自上而下的图形开始,最重要的是(向下)在左侧指向边缘,当您使图形从左向右移动时,它们会进行简单的旋转,从而使图形的顶部向左旋转,从而从左到右旋转最重要的边缘。所以,当然,这个非常简单的测试用例可以通过使图表从右到左而不是从左到右来修复。

from django.utils.html import format_html
from django.conf import settings

from wagtail.wagtailcore import hooks

@hooks.register('insert_editor_css')
def editor_css():
    return format_html('<link rel="stylesheet" href="' +
                       settings.STATIC_URL +
                       'demo/css/admin-streamfield-styles.css">')

enter image description here