Ich benutze networkx, um mehrere Figuren des gleichen Graphen zu zeichnen, da ich dem Graphen immer mehr Kanten hinzufüge. Die Abbildungen sind in aufeinanderfolgenden Dias in einer Diashow enthalten.networkx: multiple figure mit konsistenter Knotenplatzierung
Ich möchte die Knoten in jeder Figur in genau jeder Position in jeder Figur angezeigt werden. Obwohl ich für jedes Diagramm die gleichen Positionsdaten verwende, wird die Zahl leider jedes Mal ein wenig verkleinert, wenn ich eine Kante an die Seite der Figur anschließe.
Dies ist der Code, den ich im Moment bin mit:
import networkx as nx
import matplotlib.pyplot as plt
from networkx.drawing.nx_agraph import graphviz_layout
num_nodes = 100
num_edges = range(10, 80, 5)
file_name = "evolution1"
G = nx.gnm_random_graph(num_nodes, num_edges[-1])
pos = graphviz_layout(G, prog="neato")
for (i, ne) in enumerate(num_edges):
plt.figure(figsize=(4,3))
nx.draw(G,
pos,
with_labels=False,
node_size=15,
node_color="black",
edgelist=G.edges()[:ne])
plt.axis('off')
plt.savefig(file_name + "-%s.pdf" %i, format="pdf",
transparent=True)
Was ich will, ist, dass die Knoten in der gleichen Station auf jedem Aufenthalt aufeinanderfolgende Folie, die optisch viel angenehmer wäre. Kann mir jemand helfen?
P.S. falls dies relevant ist, die Art und Weise, dass ich die Zahlen in der Diashow setzen (die mit LaTeX/Beamer hergestellt wird), ist mit
\begin{center}
\multiinclude[<+>][start=0,format=pdf]{pics/evolution1}
\end{center}
Vielen Dank im Voraus für die Hilfe!