Korrekte Farbscheitelpunkte in R igraph

8

Ich verwende igraph um Eckpunkte zu färben

Ich habe zwei CSV-Dateien Antworten und Topologie des Graphen.

Antworten: (das sagt, dass Spieler K und N richtig geantwortet haben)

%Vor%

Topologie: (Darstellung dessen, wer mit wem verbunden ist)

%Vor%

Ich wollte ein Diagramm mit dem Paket IGraph erstellen und die Scheitelpunkte je nach ihrer Richtigkeit in verschiedenen Farben färben.

Das konnte ich erreichen:

%Vor%

Das Problem ist, dass in meiner Ausgabe die Farben falsch sind:

Hier sind M und K als richtig markiert, während es N und K sein sollte. Ich denke, das Problem liegt daran, dass ich nicht festlege, dass der Knoten mit dem Player in Beziehung stehen sollte, und ich habe versucht, dies zu erreichen, aber ohne Erfolg.

Gibt es irgendwelche Ideen, wie man das erreicht?

    
Salvador Dali 14.04.2013, 13:58
quelle

2 Antworten

13

Am einfachsten ist es, das Diagramm mit allen enthaltenen Metadaten zu erstellen und dann kümmert sich igraph um den Rest. ZB

%Vor%

Aber, wenn Sie nicht jede Kante in beide Richtungen in Ihrer Datentabelle einschließen, müssen Sie nicht einmal vereinfachen aufrufen.

    
Gabor Csardi 14.04.2013, 21:17
quelle
4

Das Problem ist, dass der Graph nach simplify sortiert ist und der Antwortvektor nicht. Es könnte einen einfacheren Weg geben, aber ich würde einfach Ihre Antworten-Tabelle sortieren: answers <-answers[order(answers[,1]),] , bevor V(g)$color <- ifelse(answers[V(g), 2] == 1, "blue", "red") gesetzt wird.

Sie können sehen, dass Ihr Diagramm nach get.data.frame(g, what="vertices")

sortiert ist

Alternativ könntest du match die get.data.frame Namen (beachte, dass ich g zweimal erstellt habe. Aus irgendeinem Grund spielt get.data.frame nicht gut mit simplify zusammen.

%Vor%

    
Pierre Lapointe 14.04.2013 14:35
quelle

Tags und Links