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?
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.
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")
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.