带有 igraph 的有向网络中的颜色边缘

时间:2021-02-01 23:03:43

标签: r igraph edges

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

  • 离开A的方向应该是例如红色
  • 前往 A 的路线应该是绿色的。
  • 根本不应该打印所有其他未与节点 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,
)

enter image description here

到目前为止,我可以突出显示 A 之外的边缘。

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

enter image description here

我希望边缘 D -> AC -> A 与边缘 A -> BA -> C(红色)位于同一图中。

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

1 个答案:

答案 0 :(得分:1)

你可以试试下面的代码

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

enter image description here

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

enter image description here

相关问题