导出到 Gephi
Gephi 有一个流式传输插件 (streaming plugin),可以以流式方式提供和接收 JSON 图数据。导出到 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
可用过程
下表描述了可用的过程
| 限定名称 | 类型 | 版本 |
|---|---|---|
|
|
|
|
导出格式
传入数据的所有节点和关系都被转换为单独的 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 网格内的坐标。 颜色是根据标签组合和关系类型生成的,两者也都作为 权重属性存储为数字(整数、浮点数)或字符串。如果权重属性无效或为空 (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 路径,但仅包含 birthYear 和 role 属性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