可视化Neo4j中的连接组件

时间:2019-01-31 04:15:19

标签: neo4j neo4j-apoc

我可以使用以下代码在图中找到最紧密连接的组件:

import sys 

import pygame 

def run_game():
    #initialize game and create a screen object 
    pygame.init()
    screen = pygame.display.set_mode((1200, 800))
    pygame.display.set_caption("Alien Invasion")


    # Start the mai loop for the game. 
    while True:

        # Watch for keyboard and mouse events
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()


        # Make the most recently drawn screen visible.
        pygame.display.flip()

run_game()

但是它不能帮助我可视化最密集连接的组件(子图),因为它发出的输出图是不相交的节点。是否可以可视化密集连接的组件。如果是,那么如何

enter image description here

3 个答案:

答案 0 :(得分:0)

我尝试了此查询,但结果却有所不同。

我还没有使用这些算法,对此我也不了解,但是我认为您在查询中添加了一个额外的字符(冒号)。

您可以使用 pnHours 代替:pnHours 进行检查。

我从查询中删除了冒号(:),并且得到了正确的结果(我也能获得关系,因为Neo4j浏览器会获取它,尽管查询中未指定)。

如果仍然找不到,请检查以下查询:

CALL algo.unionFind.stream('', 'pnHours', {})
YIELD nodeId,setId
// groupBy setId, storing all node ids of the same set id into a list
MATCH (node) where id(node) = nodeId
WITH setId, collect(node) as nodes
// order by the size of nodes list descending
ORDER BY size(nodes) DESC
LIMIT 1 // limiting to 3
WITH nodes
UNWIND nodes AS node
MATCH (node)-[r:pnHours]-()
RETURN node,r;

答案 1 :(得分:0)

如果要可视化,请在Neo4j浏览器中使用:

CALL algo.unionFind.stream('', ':pnHours', {})
YIELD nodeId,setId
// groupBy setId, storing all node ids of the same set id into a list
MATCH p=(node)-->() where id(node) = nodeId
WITH setId, collect(p) as paths
// order by the size of nodes list descending
ORDER BY size(paths) DESC
LIMIT 1 // limiting to 3
// Maybe you need to unwind paths to be able to visualize in Neo4j browser
RETURN paths;

这不是最优化的查询,但在小型数据集上应该做得很好。

答案 2 :(得分:0)

以下查询应返回最大的pnHours连接的组件(即节点数最多的组件)中的所有单步路径。它只获取最大组件的路径。

CALL algo.unionFind.stream(null, 'pnHours', {}) YIELD nodeId, setId
WITH setId, COLLECT(nodeId) as nodeIds
ORDER BY SIZE(nodeIds) DESC
LIMIT 1
UNWIND nodeIds AS nodeId
MATCH path = (n)-[:pnHours]->()
WHERE ID(n) = nodeId
RETURN path

neo4j浏览器的图形化结果可视化将显示组件中的所有节点及其的关系。