R:改变图中点的大小

R: change size of points in a graph

使用 R 和 igraph,我已经能够绘制图形,其中:

A)点(节点)的大小取决于点与点之间的连接数

B) 点(节点)的大小取决于一些预定义的大小向量

A) 的代码如下所示:

library(igraph)

my_data <- data.frame(

"Col_C" = c("AAA", "AAA", "AAB", "AAB", "AAB", "ABC", "CDE", "CDE", "CDE", "AAB", "AAB", "AAE"),
"Col_D" = c("AAB", "AAC", "AAC", "ABC", "CDE", "CDE", "AAB", "AAE", "ADF", "AAE", "ADF","ADF")
)

final <- data.frame(col = unique(unlist(my_data)))



graph <- graph.data.frame(my_data, directed=F)
graph <- simplify(graph)


V(graph)$vertex_degree <-  degree(graph)

plot(graph,
     vertex.label.cex = 0.8,
     edge.width = E(graph)$weight,
     vertex.size = V(graph)$vertex_degree 
     )

B) 的代码如下所示:

library(igraph)

my_data <- data.frame(

"Col_C" = c("AAA", "AAA", "AAB", "AAB", "AAB", "ABC", "CDE", "CDE", "CDE", "AAB", "AAB", "AAE"),
"Col_D" = c("AAB", "AAC", "AAC", "ABC", "CDE", "CDE", "AAB", "AAE", "ADF", "AAE", "ADF","ADF")
)

final <- data.frame(col = unique(unlist(my_data)))

final$size = c("6","10","1","20","50","1","5")

graph_B <- graph.data.frame(my_data, directed=F)
graph_B <- simplify(graph)

plot(graph_B, vertex.size = as.numeric(final$size))

但是,当我尝试使这些图形“交互”(使用 visNetwork 库)时,节点大小恢复为相等大小:

library(visNetwork)
visIgraph(graph)
visIgraph(graph_B)

有人可以告诉我我做错了什么吗?

谢谢

也许这就是您要找的东西?

 library("igraph")

 library("visNetwork")

 my_data <- data.frame( "Col_C" = c("AAA", "AAA", "AAB", "AAB", "AAB", "ABC", "CDE", "CDE", "CDE", "AAB", "AAB", "AAE"), "Col_D" = c("AAB", "AAC", "AAC", "ABC", "CDE", "CDE", "AAB", "AAE", "ADF", "AAE", "ADF","ADF") )

 final <- data.frame(col = unique(unlist(my_data)))

 final$size = c(6,10,1,20,50,1,5) 

 graph_B <- graph_from_data_frame(my_data, directed = FALSE, vertices = final)

 visIgraph(graph_B)