我有一个由用户和存储库组成的数据集,我在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和指向它的用户列表之间。
我无法弄清楚如何重新构建数据以在图表中绘制它。
答案 0 :(得分:1)
我认为您希望使用返回边缘列表的Cypher查询,而不是拥有给予用户指向的所有用户的列表。像这样:
MATCH (u:User)-->(r:Repo)
RETURN u.name AS from, r.name AS to;
关于使用RNeo4j进行网络可视化的this blog post:
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)