Ich bin nicht sicher, ob das Thema in das CrossValidated-Interesse eintritt. Du wirst es mir sagen.
Ich muss einen Graphen studieren (aus der Graphentheorie ) dh. Ich habe eine bestimmte Anzahl von Punkten, die verbunden sind. Ich habe eine Tabelle mit allen Punkten und den Punkten, von denen jeder abhängig ist. (Ich habe auch eine andere Tabelle mit den Auswirkungen)
Meine Fragen sind:
Gibt es eine gute Software (oder ein R-Paket), um das leicht zu studieren?
Gibt es eine einfache Möglichkeit, das Diagramm anzuzeigen?
r
data-visualization
graph-theory
RockScience
quelle
quelle
Antworten:
iGraph ist eine sehr interessante sprachübergreifende Bibliothek (R, Python, Ruby, C). Es ermöglicht das Arbeiten mit unidirektionalen und gerichteten Diagrammen und verfügt bereits über einige implementierte Analysealgorithmen.
quelle
Es gibt verschiedene Pakete zur Darstellung gerichteter und ungerichteter Graphen, Inzidenz- / Adjazenzmatrix usw. zusätzlich zum Graphen ; Schauen Sie sich zum Beispiel die gR- Aufgabenansicht an.
Für die Visualisierung und grundlegende Berechnung halte ich das igraph- Paket zusätzlich zu Rgraphviz (auf BioC, wie von @Rob hervorgehoben) für das zuverlässigste . Beachten Sie , dass graphviz ebenfalls installiert sein muss, damit letzteres ordnungsgemäß funktioniert . Das igraph- Paket enthält nette Algorithmen zum Erstellen guter Layouts, ähnlich wie graphviz .
Hier ist ein Anwendungsbeispiel ausgehend von einer gefälschten Adjazenzmatrix:
quelle
Abgesehen von dem, was gesagt wurde, könnten Sie allein für die Vusualisierungsaufgabe (und außerhalb von R) daran interessiert sein, Gephi zu überprüfen .
quelle
Eine weitere Option ist das statnet-Paket. Statnet verfügt über Funktionen für alle in SNA häufig verwendeten Kennzahlen und kann auch ERG-Modelle schätzen. Wenn Sie Ihre Daten in einer Kantenliste haben, lesen Sie die Daten wie folgt ein (vorausgesetzt, Ihr Datenrahmen trägt die Bezeichnung "Kantenliste"):
Befinden sich Ihre Daten in einer Adjazenzmatrix, ersetzen Sie das Argument matrix.type durch "Adjazenz":
Das statnet-Paket verfügt über einige sehr schöne Plotfunktionen. Um ein einfaches Diagramm zu erstellen, geben Sie einfach Folgendes ein:
Gehen Sie wie folgt vor, um die Knoten entsprechend ihrer Interferenzzentralität zu skalieren:
Standardmäßig verwendet die gplot-Funktion den Fruchterman-Reingold-Algorithmus zum Platzieren der Knoten. Dies kann jedoch über die Option mode gesteuert werden, um beispielsweise MDS für die Platzierung des Knotentyps zu verwenden:
oder um ein Kreislayout zu verwenden:
Es gibt viele weitere Möglichkeiten, und dieser Leitfaden behandelt die meisten grundlegenden Optionen. Für ein eigenständiges Beispiel:
quelle
Eine ähnliche Frage wurde zu cstheory gestellt, auch wenn Sie sich speziell für ebene Graphen oder bibliografische Visualisierungen interessieren .
Gephi wurde hier bereits erwähnt, aber es wurde auch von einigen auf cstheory empfohlen, also denke ich, dass das eine gute Wahl ist.
Andere coole Optionen sind:
quelle
Ich fand NodeXL sehr hilfreich und einfach zu bedienen. Es ist eine MS Excel-Vorlage, die den einfachen Import / Export eines Diagramms, die Formatierung von Kanten / Scheitelpunkten, die Berechnung einiger Metriken und einige Cluster-Algorithmen ermöglicht. Sie können problemlos benutzerdefinierte Bilder als Scheitelpunkte verwenden.
Ein weiteres hilfreiches Tool für mich war Microsoft Automatic Graph Layout, das ein gutes Layout bietet und online ausprobiert werden kann (mit einem Browser, der SVG unterstützt).
quelle