Ziehen Sie das Punktdiagramm, um es symmetrischer zu machen

8

Ich kompiliere den folgenden Graphen mit: dot graph.dot -Tpdf -ograph.pdf , produziert:

Das Ergebnis ist in Ordnung, aber der Zustandsübergang sieht sehr nach einem Spagetthi-Monster aus und ich habe keine Ahnung, was ich tun könnte, um dieses Problem anzugehen. Ich habe andere Layouts ausprobiert: twopi, neato, etc. Gibt es Parameter, die es dem Graphen erlauben, etwas symmetrischer auszusehen? Weil das Gesamtbild in Ordnung ist.

Für mich scheint es, als ob die Kanten den minimalen verfügbaren Platz verwenden, um die Kantenbeschreibungen zu umrahmen, vielleicht ist das das Problem?

Ist mein Grafikdesign fehlerhaft? Sollte ich die verschiedenen Zustandsübergänge an einer Kante schreiben, \ n, um die verschiedenen Übergänge zu trennen?

%Vor%     
Konrad Reiche 15.07.2011, 23:05
quelle

1 Antwort

6

Ich glaube nicht, dass Ihr Design fehlerhaft ist, ich denke, es ist in Ordnung. Die Punktsyntax ist lesbar und daher wartbar, und das Ergebnis ist, was ein automatisch generierter Graph typischerweise ähnlich sieht.

Natürlich können Sie kleine Korrekturen hinzufügen, um diesen bestimmten Graphen besser (oder zumindest anders) zu machen. Einige von ihnen können sich als schwierig erweisen, wenn beispielsweise die Quelle für Ihr Diagramm von einer Anwendung generiert wird. Hier sind einige Ideen:

Damit das Layout symmetrischer ist, können Sie versuchen, die Knoten Waiting und Terminated sowie Timed auszurichten Warten und blockiert durch Festlegen ihrer group Attribut auf den gleichen Wert ( group=a und group=b ).

Es funktionierte gut für Waiting und Teminated , aber nicht so gut für Timed Waiting und Blocked - wahrscheinlich weil zwischen diesen Knoten zwei Kanten liegen.

Sie können versuchen, sie zu begradigen, indem Sie einen der Kanten auswählen, der sie verbindet und die festlegen weight Attribut auf einen hohen Wert.

Abgesehen davon, finde ich, dass der Graph besser aussieht, weil die Kanten glatter sind und weniger unnötige Kurven haben, besonders - aber nicht nur - zwischen Runnable und Waiting .

Der Spaghetti-Effekt liegt an den Splines - vielleicht sieht es weniger Spaghetti ohne Splines aus? Ich habe versucht, indem Sie splines=compound oder splines=ortho (dasselbe Ergebnis) hinzufügen:

Die Grafik verwendet etwas weniger vertikalen Platz. Es ist nicht Spaghetti, aber es ist meiner Meinung nach nicht besser ...

Sie können splines=compound auch ohne die Gruppenattribute versuchen, dies sollte das Diagramm etwas kompakter machen (Fehler nicht unbedingt hübscher). Oder spielen Sie einfach mit dem Gewicht der Kanten herum, um besonders unangenehme Kanten zu glätten.

In einigen Fällen kann concentrate Graphen mit vielen Parallelen auflösen Kanten - in diesem Fall hilft es nicht wirklich.

    
marapet 16.07.2011, 00:33
quelle

Tags und Links