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)
使用 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)