导出到 Gephi

Gephi 有一个流式传输插件 (streaming plugin),可以以流式方式提供和接收 JSON 图数据。导出到 Gephi 的过程会将数据发送到此端点。

apoc gephi

安装插件

请确保先安装该插件并为您的工作区激活它(在“布局”选项卡旁边有一个新的“流式传输”选项卡),右键点击“Master”→“start”以启动服务器。

您可以提供您的工作区名称(建议在开始流式传输前重命名),否则默认为 workspace0

默认的 Gephi URL 是 https://:8080,最终路径为 https://:8080/workspace0?operation=updateGraph

也可以通过在 apoc.conf 中添加以下配置来进行设置:

apoc.conf
apoc.gephi.url=url

apoc.conf
apoc.gephi.<key>.url=url

可用过程

下表描述了可用的过程

限定名称 类型 版本

apoc.gephi.add

apoc.gephi.add(url-or-key, workspace, data, weightproperty, ['exportproperty']) | 将传入的数据流传输到 Gephi

过程

Apoc Extended

导出格式

传入数据的所有节点和关系都被转换为单独的 Gephi 流式传输 JSON 片段,并以 \r\n 分隔。\r\n

导出 JSON 示例
{"an":{"123":{"TYPE":"Person:Actor","label":"Tom Hanks",                           x:333,y:222,r:0.1,g:0.3,b:0.5}}}\r\n
{"an":{"345":{"TYPE":"Movie","label":"Forrest Gump",                               x:234,y:122,r:0.2,g:0.2,b:0.7}}}\r\n
{"ae":{"3344":{"TYPE":"ACTED_IN","label":"Tom Hanks",source:"123",target:"345","directed":true,"weight":1.0,r:0.1,g:0.3,b:0.5}}}

除非您在负载 (payload) 中提供 x, y 坐标,否则 Gephi 不会渲染图数据,因此这些过程会随机生成 1000x1000 网格内的坐标。

颜色是根据标签组合和关系类型生成的,两者也都作为 TYPE 属性进行传输。

权重属性存储为数字(整数、浮点数)或字符串。如果权重属性无效或为空 (null),则将使用默认值 1.0。

示例

您可以将图表导出为非加权网络。

以下示例导出 ACTED_IN 路径
match path = (:Person)-[:ACTED_IN]->(:Movie)
WITH path LIMIT 1000
with collect(path) as paths
call apoc.gephi.add(null,'workspace0', paths) yield nodes, relationships, time
return nodes, relationships, time

您可以通过指定关系中存储权重值的属性,将图表导出为加权网络。

以下示例导出 ACTED_IN 路径,其中关系类型上存在 weightproperty 属性
MATCH path = (:Person)-[r:ACTED_IN]->(:Movie)
WHERE r.weightproperty IS NOT NULL
WITH path LIMIT 1000
with collect(path) as paths
call apoc.gephi.add(null,'workspace0', paths, 'weightproperty') yield nodes, relationships, time
return nodes, relationships, time

您还可以通过添加包含想要导出的属性名称的可选数组,将节点的其他属性和/或关系一并导出。

以下示例导出 ACTED_IN 路径,但仅包含 birthYearrole 属性
MATCH path = (:Person)-[r:ACTED_IN]->(:Movie)
WHERE r.weightproperty IS NOT NULL
WITH path LIMIT 1000
with collect(path) as paths
call apoc.gephi.add(null,'workspace0', paths, 'weightproperty',['birthYear', 'role']) yield nodes, relationships, time
return nodes, relationships, time
© . This site is unofficial and not affiliated with Neo4j, Inc.