使用Networkx的to_agraph()绘制图形

2 投票
1 回答
1851 浏览
提问于 2025-04-17 04:55

我有一个networkx的有向图对象。我可以使用to_agraph把这个图画到一个文件里。但是我想把图画在内存中,这样我就可以直接保存到数据库表里,而不需要先写入文件。有没有办法做到这一点呢?

下面是我用来把图画到文件里的代码。

import networkx as nx
g = nx.DiGraph()
g.add_nodes_from(MyNodes)
g.add_add_edges_from(MyEdges)
grph=nx.to_agraph(g)
s=grph.string()
grph.layout(prog='dot')
grph.draw('test_graph.gif')

谢谢!!

1 个回答

1

如果你不指定一个文件,你会得到一个包含图像数据的字符串。比如:

In [1]: import networkx as nx

In [2]: G=nx.path_graph(4)

In [3]: A=nx.to_agraph(G)

In [4]: A.layout(prog='dot')

In [5]: png=A.draw(format='png')

In [6]: png[0:10]
Out[6]: '\x89PNG\r\n\x1a\n\x00\x00'

撰写回答