使用 igraph 的有向网络中的颜色边缘
Color edges in a directed network with igraph
我有一个网络,我想在其中突出显示节点的某些边缘 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,
)
到目前为止,我可以突出显示 A
.
之外的边
plot(my_network_graph,
edge.curved= 0.2,
edge.color = c(NA, "red")[1+ (my_network$from == "A")]
)
我希望在与边缘 A -> B
和 A -> C
(红色)相同的图中,蓝色的边缘 D -> A
和 C -> 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)))
)
我有一个网络,我想在其中突出显示节点的某些边缘 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,
)
到目前为止,我可以突出显示 A
.
plot(my_network_graph,
edge.curved= 0.2,
edge.color = c(NA, "red")[1+ (my_network$from == "A")]
)
我希望在与边缘 A -> B
和 A -> C
(红色)相同的图中,蓝色的边缘 D -> A
和 C -> 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)))
)