Neo4j Graph Data Science

`neo4j-viz` 库提供了一个便利的方法,用于从 Neo4j 图数据科学(GDS)库导入数据。它需要额外的依赖才能使用,你可以通过运行以下命令来完成

pip install neo4j-viz[gds]

安装完额外的依赖后,你可以使用 from_gds 方法从 GDS 库导入投影。

`from_gds` 方法接受两个必需的位置参数

  • 一个已初始化的 GraphDataScience 对象,用于连接 GDS 实例,

  • 一个表示要导入的投影的 Graph

可选的 max_node_count 参数可用于限制从投影中导入的节点数量。默认值为 10 000,意味着如果投影的节点数超过 10 000,from_gds 将使用随机游走重启(random walk with restarts)进行抽样,以获得一个可以可视化的更小图。如果希望更精细地控制抽样过程(例如为抽样指定特定的起始节点),可以自行调用 抽样 方法,并将得到的投影传递给 from_gds

node_properties 参数也是可选的,应该是一个列表,列出投影中希望在可视化中包含的额外节点属性。默认值为 None,这表示投影中所有节点的属性都会被包含。除了在悬停提示框中可见外,这些属性还可以用于为节点着色、在可视化中显示标题,或者仅仅作为节点的 Node.properties 映射的一部分而不直接影响可视化。如果想在可视化中加入存储在 Neo4j 数据库中的节点属性,可通过使用 db_node_properties 参数来实现。

示例

在这个小示例中,我们从 GDS 库导入了一个包含节点属性 “pagerank” 和 “componentId” 的图投影。我们使用 “pagerank” 属性来决定节点的大小,使用 “componentId” 属性来对节点进行着色。

from graphdatascience import GraphDataScience
from neo4j_viz.gds import from_gds
gds = GraphDataScience(...)
G = gds.graph.project(...)
# Compute the PageRank and Weakly Connected Components
gds.pageRank.mutate(G, mutateProperty="pagerank")
gds.wcc.mutate(G, mutateProperty="componentId")
# Import the projection into a `VisualizationGraph`
# Make sure to include `pagerank` and `componentId`
VG = from_gds(
    gds,
    G,
    size_property="pagerank",
    additional_node_properties=["componentId"],
)
# Color the nodes by the `componentId` property, so that the nodes are
# colored by the connected component they belong to
VG.color_nodes(property="componentId")

请参阅 Neo4j 图数据科学(GDS)图形可视化教程,了解更完整的示例。