几天前,我开始为一个项目学习Neo4J。我第一次使用Neo4J浏览器(我正在本地使用螺栓)在导入图(大约600万个节点)中启动了一些Cypher查询来测试我的技能,软件以图形的方式将节点和边缘返回给我。
现在,我需要从Python启动Cypher查询。我以前从未使用过python,所以我使用官方文档来完成这项工作。我正在使用neo4j
模块(来自文档)来测试它,并且成功地运行了一些基本查询。问题是:我需要像Neo4J浏览器那样“打印”从我的查询中获得的图形,但需要使用Python。我在google上搜索,我发现了不同的结果,有时他们会谈论使用JS绘制图表。如前所述,我使用一个Python文件来工作,而且我对这种语言非常缺乏经验。你能建议我一个好的库来绘制我的查询所产生的节点和边吗?
现在这是我的密码:
def test(self):
with self.driver.session(database=self.database) as session:
session.read_transaction(self._print_nodes)
@staticmethod
def _print_nodes(tx):
result=tx.run("MATCH (n:cell) RETURN n.name, n.id LIMIT 10")
for record in result:
print("ID: ",record["n.id"],"| Name: ",record["n.name"])
这是我的控制台中预期的结果:
但我想要这样的东西:
在本例中,我更改了查询以打印一些节点,但我希望您理解我的意思。我将运行一些查询,比如the >M,我需要看到节点N通过边缘E连接到GUI中的节点M。如果节点之间有更多的节点,我需要打印连接N到M的整个子图,每个节点都在中间。
发布于 2022-02-16 15:46:05
我在网上发现了这一点,而且它也支持neo4j ver 4>=0,所以它非常有用。
https://github.com/merqurio/neo4jupyter
试着先安装它,然后试一试。祝你好运。
pip install neo4jupyter
发布于 2022-02-16 18:25:43
你的GUI是什么?如果您使用的是木星或Tkinter
,我建议使用Networkx
库从Neo4j导入您的图形并使用Matplotlib
输出它。但是,如果您想要与图形进行交互,就必须使用像Vis
这样的JS库。实际上,我只是检查了另一个答案,neo4jupyter
在幕后使用了Vis
。这样就可以满足交互需求了。
https://stackoverflow.com/questions/71147319
复制