2017-05-12 3 views
0

Mon programme génère un graphique basé sur un fichier .txt. Par exemple, s'il est écrit 1,5 et 2,3 dans le fichier, le programme crée un graphe connectant les 1er et 5ème et 2ème et 3ème nœuds. Voici le code:Coloriage de bord du graphique dans R

library(igraph) 
dat<-read.table("file.txt", header = F, sep = ",") 
dat[,c(1,2)] 
vertices<-as.vector(t(dat[,1:2])) 
g<-graph(vertices,directed = F) 
plot(g,layout=layout.circle) 

Ma question est: Comment puis-je faire la coloration des bords en fonction de certaines conditions? Par exemple, si le programme lit 3,5 dans le fichier pour la première fois, je veux que le bord soit rouge, puis s'il se lit à nouveau 3,5 Je veux que le deuxième bord soit bleu, et s'il y a une troisième paire de 3,5 Je veux que ce soit jaune. Est-ce possible? Merci.

+0

Il serait plus facile d'aider si vous avez fourni un [exemple reproductible] (http://stackoverflow.com/questions/5963269/how- to-make-a-great-r-reproducible-exemple) avec entrée d'échantillon. – MrFlick

Répondre

0

Une façon de le faire:

library(igraph) 
df <- read.csv(text="from,to 
1,2 
1,2 
1,3 
1,2 
1,3 
1,2 
1,2") 
df$color <- with(df, ave(1:nrow(df), list(from, to), FUN=seq_along)) 
g <- graph_from_data_frame(df) 
E(g)$color <- c("red", "blue", "yellow")[E(g)$color] 
E(g)$color[is.na(E(g)$color)] <- "#CCCCCC" 
plot(g) 

enter image description here