2017-04-10 12 views
0

Ich habe das folgende Diagramm mit NetworkX in Python erstellt. Ich habe zwei verwandte Fragen.Interpretieren von NetworkX kreisförmigen Graphen

NetworkX graph

  1. Was bestimmt die Längen Kanten und die Längen der dicken Teile der Kanten?

  2. Ich möchte entweder die Länge des dicken Teils der Kanten oder die Länge der Kanten die Gewichte darstellen, die ich jeder Kante zugewiesen habe. Dies ist in diesem Diagramm nicht der Fall, obwohl jede Kante das gewünschte Gewicht hat (wenn ich G.get_edge_data() überprüfe). Wie werden diese Gewichte in der Grafik dargestellt?

Jede Hilfe wird sehr geschätzt.

Antwort

0

Die Länge der "Pfeilspitzen" beträgt 25% der Linienbreite (von Knotenmitte zu Knotenmitte). Dies scheint hart codiert zu sein, so dass es nicht geändert werden kann.

Stattdessen können Sie das Schlüsselwort "width" (siehe documentation) in Kombination mit einer "Edgeliste" verwenden, damit es weiß, welche Kante welche Breite erhält.

Breite: float oder ein Array von Schwimmern Linienbreite von Kanten (default = 1,0)

+0

Vielen Dank, es sieht viel besser aus. Gibt es eine Möglichkeit, diese "Pfeilspitzen" eher wie Pfeile aussehen zu lassen? (Da es so aussieht, als ob sie nur dazu dienen, Anweisungen anzuzeigen.) Ich habe in der Dokumentation nichts gefunden. (Soll ich diese Follow-up-Frage in einem anderen separaten Post fragen?) – Ldeg5

+0

Nicht wirklich. Die Dokumentation sagt: "Für gerichtete Graphen," Pfeile "(eigentlich nur dickere Stummel) sind am Kopfende gezeichnet. Pfeile können mit Schlüsselpfeilen = False deaktiviert werden. Ja, es ist hässlich, aber richtige Pfeile mit Matplotlib auf diese Weise ist schwierig. " Ich denke, die Herausforderung besteht darin, dass der Pfeil vom Mittelpunkt des Knotens zum Mittelpunkt des Knotens geht. Wenn Sie eine Pfeilspitze erstellen, die nicht vom Knoten abgedeckt wird, müssen Sie den Durchmesser des Knotens anpassen. Das ist schwierig. – Joel

Verwandte Themen