layoutgraphviz

Is there a modifiable layout option for Graphviz? To make the output readable


Using Graphviz, I have run (again) into the problem that the edges overlap so much that they look like a wide line.

So my idea was to generate a svg image, import the image in Inkscape and then just rearrange things a bit - as would do in Visio or LibreOffice Draw.

However, that is not possible, because the objects (lines, shapes...) are not "dynamic". If I pull a shape, only the shape moves. If I pull an edge, only the edge moves. I expect the things to remain connected somehow, and when I pull a shape with N edges, all edges will be redrawn by Inkscape, while remaining connected to their shapes.

Additionally, I already tried the other layout engines (neato, fdp etc.), but the result was underwhelming.

The purpose is to make the diagram readable, not to make it perfect (even though perfection would be nice too).

So, is there a way to achieve my purpose? To make a more complex diagram readable? Which options should I use? Is there a better format than SVG for this purpose? I could not find one.

NOTE: I mention Inkscape because this is what I have at hand, that is better than MS Paint.

NOTE: A similar behavior (as I need) is also implemented in electronic design software, like Proteus or Orcad.


Solution

  • svg is probably as good as it gets for an output format. Bitmapped formats seem out of the question.

    This question is better suited for the Graphviz forum (forum.graphviz.org). There is an outstanding Graphviz issue about this need, see https://gitlab.com/graphviz/graphviz/-/issues/2310 and https://forum.graphviz.org/t/svg-file-editing-tool/1332

    Note that there are some Graphviz attributes (such as ranksep, nodesep, minlen, and group) that should allow you to reduce the problem of overlapping edges.
    If you post an example here or on the Graphviz forum, you might be pleasantly surprised with the result.