我有一个包含 20 部电影、它们的类型和评分的数据集。我想绘制一个网络图,其中所有电影采用一种颜色,所有类型采用另一种颜色,边缘从流派到电影,宽度等于收视率值。
数据集示例:
From (genre) to(movie) weight
fantasy ironman 6.3
我有一个包含 20 部电影、它们的类型和评分的数据集。我想绘制一个网络图,其中所有电影采用一种颜色,所有类型采用另一种颜色,边缘从流派到电影,宽度等于收视率值。
数据集示例:
From (genre) to(movie) weight
fantasy ironman 6.3
也许您可以尝试igraph
绘制如下所示的二分图
library(igraph)
set.seed(1)
g <- graph_from_data_frame(df)
V(g)$type <- V(g)$name %in% df$genre
E(g)$weight <- df$weight
V(g)$color <- V(g)$type
V(g)$color=gsub("FALSE","red",V(g)$color)
V(g)$color=gsub("TRUE","green",V(g)$color)
plot(g, edge.color="gray30",edge.width=E(g)$weight, layout=layout_as_bipartite)
这使
虚拟数据
set.seed(1)
df <- data.frame(
genre = sample(paste0("g",1:5),10,replace = TRUE),
movie = sample(paste0("m",1:10),10),
weight = 10*runif(10)
)