Ich bin daran interessiert, ein Liniendiagramm für ein Eingabediagramm zu berechnen, vorzugsweise in GRASS, da ich danach andere GRASS-Netzwerkanalysetools verwenden werde . Ich konnte in den GRASS-Dokumenten keinen Verweis auf Liniendiagramme finden. Gibt es einen anderen Begriff, den ich in meiner Suche verwenden sollte, oder eine versteckte Funktion, die ein solches Diagramm erstellen würde?
Zum Kontext:
Das Liniendiagramm eines ungerichteten Diagramms G ist ein weiteres Diagramm L (G), das die Nachbarschaften zwischen den Kanten von G darstellt.
Antworten:
Wenn Python in Ordnung ist, gibt es einige gute Python-Module, die sich mit Liniendiagrammen auskennen. Ein Beispiel ist NetworkX (das ich einfach installiert habe
sudo pip install networkx
).Dies ist keine perfekte Antwort, da Sie einen Klebercode schreiben müssen. Zuerst würden Sie Ihre Eingabe in NetworkX-Diagrammobjekte konvertieren :
Dann würden Sie die
line_graph
Funktion get NetworkX aufrufen, um das Liniendiagramm zu berechnen:Und schließlich würden Sie das Ergebnis durch Iterieren über
H.edges()
und wieder in etwas Nützliches konvertierenH.nodes()
.quelle