如何使用TinkerPop打印出图像?

时间:2018-01-05 05:18:09

标签: neo4j tinkerpop tinkerpop3

例如,给出此图:

gremlin> graph = TinkerFactory.createModern() (1)
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal(standard())        (2)
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().has('name','marko').out('knows').values('name') (3)

我想从控制台打印出此图表的PNG文件。文档没有说明如何做到这一点。提前谢谢。

2 个答案:

答案 0 :(得分:5)

TinkerPop不直接提供图形可视化选项。你能做的最好的是:

  1. 使用Gephi plugin可视化您的图表,然后将该可视化保存到图像中。
  2. 将图表导出为GraphML,然后将其导入可视化工具,例如GephiCytoscape等,然后导出从那里生成的图像。

答案 1 :(得分:3)

如果你使用Python,networkx和matploitlib库可以读取GraphML文件并进行渲染。我在运行Gremlin Python的Python笔记本中使用了这个,我将子图提取到GraphML并使用Python渲染它。

代码将遵循:

import matplotlib
import matplotlib.pyplot as plt
import networkx as nx

G = nx.parse_graphml(mygraph)

label = nx.get_node_attributes(G, "code")
plt.figure(figsize=(11,11))
nx.draw(G, node_color="#ffaa00",node_size=1200,labels=label,arrows=False)

如果我的Python很难看,请提前道歉我更多的是Ruby和Groovy家伙: - )