2017-07-25 4 views
1

Ich benutze networkx in Python und verwende die Funktion nx.draw, die einen Pfeil = True-Parameter übernimmt, aber die Pfeile scheinen nicht zu erscheinen. Wenn ich dies tue, verwende ich G = nx.Graph(), aber wenn ich G = nx.DiGraph() verwende, erscheinen die Pfeile, aber die Standard-Netzwerkform ist verloren. Gibt es eine Möglichkeit, das Standard-Netzwerklayout von nx.draw zu erhalten und auch Pfeile zu haben?Gibt es eine Möglichkeit, Pfeile für nx hinzuzufügen. Zeichne netzwerkx?

+0

Es würde helfen, die Befehle zu sehen, Sie verwenden diese zu zeichnen. Ich denke, das hat mehr damit zu tun, dass networkx die Positionen der Knoten mit einem Algorithmus setzt, der zufällige Eingaben hat, so dass jedes Mal, wenn Sie es plotten, die Positionen unterschiedlich sind, wenn Sie sie nicht angeben. – Joel

Antwort

0

Ja, Sie müssen die Positionen selbst korrigieren, siehe unten für ein Beispiel mit circular_layout.

import networkx as nx 
import matplotlib.pyplot as plt 
G = nx.erdos_renyi_graph(20, 0.2) 
pos = nx.circular_layout(G) 
nx.draw_networkx(G, pos=pos) 
plt.show() 

plot of simple graph Jetzt ist pos ein Wörterbuch mit Knoten als Schlüssel und koordiniert als Werte. Zum Zeichnen der Digraph (mit dem gleichen Knotensatz):

G1 = nx.Digraph(G) 
nx.draw_networkx(G1, pos=pos) 
plt.show() 

plot digraph

Verwandte Themen