使用 igraph 的有向网络中的颜色边缘

Color edges in a directed network with igraph

我有一个网络,我想在其中突出显示节点的某些边缘 A:

library('igraph')

my_network <- read.table(
  header=TRUE,
  sep=",",
  text="
from,to
A,B
A,C
C,D
D,A
C,A")

set.seed(1234)
my_network_graph <- graph_from_data_frame(my_network)
plot(my_network_graph,
     edge.curved= 0.2,
)

到目前为止,我可以突出显示 A.

之外的边
plot(my_network_graph,
     edge.curved= 0.2,
     edge.color = c(NA, "red")[1+ (my_network$from == "A")]
      )

我希望在与边缘 A -> BA -> C(红色)相同的图中,蓝色的边缘 D -> AC -> A

边列表不应该是硬编码的。只给A,其他自动计算

您可以试试下面的代码

plot(my_network_graph,
  edge.curved = 0.2,
  edge.color =with(my_network,ifelse(from %in% "A","red",ifelse(from %in% c("C","D") & to == "A","blue","grey")))
)

plot(my_network_graph,
  edge.curved = 0.2,
  edge.color =with(my_network,ifelse(from %in% "A","red",ifelse(to == "A","green",NA)))
)