1

我有一个包含 20 部电影、它们的类型和评分的数据集。我想绘制一个网络图,其中所有电影采用一种颜色,所有类型采用另一种颜色,边缘从流派到电影,宽度等于收视率值。

数据集示例:

From (genre)  to(movie)    weight
fantasy       ironman      6.3
4

1 回答 1

0

也许您可以尝试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)
)
于 2020-05-11T05:58:58.920 回答