我正在使用包含公司和项目的 .csv 数据库处理网络图。我可以制作网络图,显示所有这些公司是如何通过他们的项目联系起来的(一家公司从事多个项目)。我的 .csv 数据库如下所示:
项目名称 | 公司名称 | 年 |
---|---|---|
项目 1 | A 公司 | 2020 |
项目 1 | B公司 | 2020 |
项目 1 | 公司C | 2020 |
项目 2 | A 公司 | 2021 |
项目 2 | 公司C | 2021 |
项目 2 | 公司 D | 2021 |
我正在使用矩阵和矩阵乘法的转换来生成邻接图,但是使用这种转换,年份列丢失了(我在导入时将其切断)。如何制作连接公司合作的网络图,并用彩色边显示他们合作的项目年份(2 个 4 年块)?
我目前将此用于包含所有年份的“正常”网络图:
PrintSomething()
非常感谢您和我一起思考,我以前从未使用过 R,制作第一个图表花了我很多时间!
答案 0 :(得分:0)
默认情况下,邻接矩阵只允许您为每个单元格存储一个值。如果您想从整洁/长数据框中获得多个观察结果(即多个年边)图形是一个更简单的选择。
在这个例子中,我还使用了 {ggraph()}
,它是一个方便的包,通过图形方法的语法来绘制网络图。
library(tidyverse)
library(igraph)
library(ggraph)
df <- data.frame(project = c("p1", "p2", "p3", "p2", "p3", "p4"),
company = c("A", "B", "C", "A", "C", "D"),
year = c(2020, 2020, 2020, 2021, 2021, 2021))
igraph::graph_from_data_frame(df, directed = FALSE) %>%
ggraph() +
geom_edge_arc(aes(colour = as.factor(year))) +
geom_node_label(aes(label = name)) +
theme_graph()
答案 1 :(得分:0)