2016-07-25 3 views
1

Ich versuche eine Igraph in R zu erzeugen. Jetzt möchte ich die Kantenfarbe abhängig von einem Kantenattribut - Abteilung. Ich kann keine ifelse-Anweisung verwenden, da Abteilungswerte dynamisch sein können. Ich kann die Anzahl der einzelnen Abteilungen finden, aber ich bin mir nicht sicher, wie ich bei der Erstellung verschiedener Randfarben für verschiedene Abteilungen weiter vorgehen soll.Igraph in R: Wie ändere ich die Kantenfarbe basierend auf Kantenattribut

department= unique(edges$department) 
    department.count=length(department) 

Beispielcode:

gg <- graph.atlas(711) 
    V(gg)$name=1:7 
    gg=set_edge_attr(gg,"Department",E(gg)1:10],c("A","B","C","A","E","C","G","B","C","A")) 
    E(gg)$label=E(gg)$Department 
    plot(gg) 

möchte ich für jede Kante unterschiedliche Farben aufweisen, abhängig von Werten der Abteilung in Rand. Alle 'A' Abteilungen in einer Farbe, alle B Abteilung Kanten in einer anderen Farbe, so weiter. Bitte helfen.

Antwort

1

Sie sollten beim Posten ein kleines reproduzierbares Beispiel angeben. Das heißt, Sie sollten dies tun, indem Sie das Farbattribut der Kanten setzen:

E(testgraph)$color <- as.factor(edges$department) 
+0

Ich habe den betreffenden Code hinzugefügt. Ich habe versucht, unter dem Code, ich konnte verschiedene Farben erzeugen, aber die Farben sind sehr hell und ich war NICHT in der Lage, die Kanten zu unterscheiden. F2 <- colorRampPalette (c ("rot", "schwarz", "orange"), bias = Länge (eindeutig (Kanten $ Abteilung)), Leerzeichen = "rgb", interpolieren = "linear") colCodes <- F2 (Länge (unique (edges $ Department))) edges_col <- sapply (Kanten $ Department, Funktion (x) colCodes [which (sort (unique (Kanten $ Abteilung)) == x)]) E (ig) $ color <-edges_col - – hr02

+1

Hinzufügen der Zeile 'E (gg) $ color <- as.factor (E (gg) $ Abteilung)' bevor Ihre Plot-Anweisung den Trick machen sollte. – jac

+0

Danke Jac. Es funktionierte für die Handlung – hr02

Verwandte Themen