导出到 Gephi

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

apoc gephi

安装插件

确保首先安装插件并为您的工作区激活它(除了“布局”之外还有一个新的“流”选项卡),右键单击“主”→“启动”以启动服务器。

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

也可以通过将以下内容添加到 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 扩展

导出格式

传递的数据中所有节点和关系都转换为单独的 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}}}

除非您还在有效负载中提供 x、y 坐标,否则 Gephi 不会呈现图形数据,因此这些过程会在 1000x1000 网格内发送随机坐标。

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

权重属性存储为数字(整数、浮点数)或字符串。如果权重属性无效或为空,则将使用默认值 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