Раскрасить края графика в igraph
Буду признателен за совет: я стремлюсь раскрасить края на графике с помощью пакета IGRAPH.
Это хорошо работает для большого графика, однако, когда я разбиваю график на 2 подграфа и кодирую их цветом, цвет ребер меняется (неожиданно).
точнее в качестве примера - у нас есть датафрейм:
el <- data.frame(Partner1=c(1, 3, 4, 5, 6), Partner2=c(2, 2, 5, 7, 7), TYPE=c("DEL", "DEL", "DUP", "TRA", "TRA"))
el$COLOR[el$TYPE=="DEL"] <- "red"
el$COLOR[el$TYPE=="DUP"] <- "green"
el$COLOR[el$TYPE=="INS"] <- "yellow"
el$COLOR[el$TYPE=="INV"] <- "brown"
el$COLOR[el$TYPE=="TRA"] <- "blue"
g <- graph_from_data_frame(d = el, directed = TRUE)
plot(g, edge.color=el$COLOR)
И вот разложение графа на 2 подграфа:
g_decompose <- decompose.graph(g)
plot(g_decompose[[1]], edge.color=el$COLOR) ## here the edges are red (that is fine)
plot(g_decompose[[2]], edge.color=el$COLOR) ## here the edges shall be blue and green, not red and green
1 ответ
Я решил это с помощью кода R:
plot(g_decompose[[1]], edge.color=edge_attr(g_decompose[[1]])$COLOR)
plot(g_decompose[[2]], edge.color=edge_attr(g_decompose[[2]])$COLOR)