在 R 中从 Neo4j 数据创建图表

Creating a graph from Neo4j Data in R

我有一个由用户和存储库组成的数据集,我针对 Neo4j 进行查询

query = "
MATCH (user:User{name:'mattt'})-->(repo)
MATCH (repo)<--(allUsers:User)
RETURN repo.name, COLLECT(DISTINCT allUsers.name) AS users;
"
q = cypher(neo4j, query)

关系是 repo.name 和指向它的用户列表之间的关系。

我无法弄清楚如何重组数据以将其绘制成图表。

我认为您想使用 returns 边缘列表的 Cypher 查询,而不是拥有给定用户指向的所有用户的列表。像这样:

MATCH (u:User)-->(r:Repo)
RETURN u.name AS from, r.name AS to;

跟随 this blog post 关于使用 RNeo4j 的网络可视化:

query = "
MATCH (u:User)-->(r:Repo)
RETURN u.name AS from, r.name AS to;
"

edges = cypher(neo4j, query)

然后为节点定义一个DataFrame:

nodes = data.frame(id=unique(c(edges$from, edges$to)))
nodes$label = nodes$id

然后使用 visNetwork libary 可视化:

visNetwork(nodes, edges)