Einfachste Möglichkeit, Änderungen in der Reihenfolge zwischen zwei geordneten Listen in R zu plotten?

7

Ich frage mich, ob es eine einfache Möglichkeit gibt, die Änderungen der Position von Elementen zwischen zwei Listen in Form eines gerichteten zweiteiligen Graphen in R darzustellen. Zum Beispiel sind die Listen 1 und 2 Vektoren von Zeichenketten, nicht unbedingt enthält die gleichen Elemente:

%Vor%

Ich möchte etwas ähnliches erzeugen:

Ich hatte einen leichten Schlag bei der Verwendung des igraph-Pakets, konnte aber nicht so einfach konstruieren, was ich mir vorstellen möchte, was ich mir vorstelle und hoffe, dass es nicht zu schwer sein sollte.

Prost.

    
dcl 11.09.2014, 07:11
quelle

4 Antworten

6

Hier ist eine einfache Funktion, um zu tun, was Sie wollen. Im Wesentlichen verwendet es match , um Elemente von einem Vektor zum anderen und arrows zum Zeichnen von Pfeilen zu finden.

%Vor%

Einige Beispielplots

%Vor%

    
nico 11.09.2014, 07:56
quelle
6

Hier ist eine Lösung mit igraph Funktionen.

%Vor%

Dies erstellt und zeichnet dann den Graphen aus Ihren Vektoren:

%Vor%

Passen Sie das Farbschema und die Symbolik an die Optionen an, die in den igraph-Dokumenten beschrieben sind.

Beachten Sie, dass dies nicht gründlich getestet wird (nur an Ihren Beispieldaten), aber Sie können sehen, wie es aus dem Code ein zweiteiliges Diagramm erstellt.

    
Spacedman 11.09.2014 08:01
quelle
4

Mit ggplot2:

%Vor%

Dies kann natürlich in einer Funktion leicht verpackt werden.

    
Roland 11.09.2014 08:08
quelle
3

Hier ist eine Verallgemeinerung von nicos Ergebnis zur Verwendung mit Datenrahmen:

%Vor%

Hier ist ein Beispiel mit einer zufälligen Umformung des presidents -Datensatzes:

%Vor%

Dies erzeugt ein Zeitreihen-Ranking-Diagramm und es führt Farbe ein, wenn das Verfolgen einer bestimmten Beobachtung gewünscht wird:

    
Alex Thompson 29.06.2016 17:56
quelle

Tags und Links