Ich benutze Python, um einen Prozess zu simulieren, der auf gerichteten Graphen stattfindet. Ich möchte eine Animation dieses Prozesses erstellen.Plotten von gerichteten Graphen in Python in einer Weise, die alle Kanten getrennt zeigt
Das Problem, das ich habe, ist, dass die meisten Python Graph Visualisierungsbibliotheken Paare von gerichteten Kanten zu einer einzigen Kante kombinieren. Zum Beispiel zieht NetworkX nur zwei Kanten, wenn die folgende Grafik anzeigt, während ich jeden der vier Kanten möchte separat angezeigt werden:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.MultiDiGraph()
G.add_edges_from([
(1, 2),
(2, 3),
(3, 2),
(2, 1),
])
plt.figure(figsize=(8,8))
nx.draw(G)
Ich mag so etwas zeigen, mit jedem parallele Kante separat gezeichnet:
die Frage R reciprocal edges in igraph in R scheint mit dem gleichen Thema zu befassen, aber die Lösung gibt ist für die Bibliothek, nicht die Python-Bibliothek.
Gibt es eine einfache Möglichkeit, diesen Plotstil mit einer vorhandenen Python-Graph-Visualisierungsbibliothek zu erstellen? Es wäre ein Bonus, wenn Multigraphen unterstützt werden könnten.
Ich bin offen für Lösungen, die ein externes Programm zur Erstellung der Bilder aufrufen. Ich möchte eine ganze Reihe von Animationsframes generieren, daher muss die Lösung automatisiert werden.
Verwandte http://stackoverflow.com/questions/15053686/networkx-overlappin g-edges-wenn-Visualisierung-Multigraph –