在 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)
我有一个由用户和存储库组成的数据集,我针对 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)