2015-12-15 6 views
0

У меня есть набор данных, который состоит из пользователей и репозиториев, которые я запрашиваю против Neo4jСоздание графа из Neo4j данных в R

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

enter image description here

Отношение находится между repo.name и списком пользователей указывают на это.

У меня возникли проблемы с выяснением того, как реструктурировать данные, чтобы построить это на графике.

+0

Какой график? Граф с узлами и ребрами или что-то вроде гистограммы? –

ответ

1

Я думаю, вы хотите использовать запрос Cypher, который возвращает edgelist, вместо того, чтобы иметь список всех пользователей, которым были предоставлены точки пользователя. Что-то вроде этого:

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) 
Смежные вопросы