【问题标题】:Draw graphs using Networkx to_agraph()使用 Networkx to_agraph() 绘制图形
【发布时间】:2011-10-25 21:00:47
【问题描述】:

我有一个 networkx digraph 对象。我可以使用 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')

谢谢!!

【问题讨论】:

    标签: python networkx


    【解决方案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'
    

    【讨论】:

    • 谢谢@Aric,这正是我想要的。你知道我们是否可以生成缩略图而不是巨大的图形图像吗?再次感谢。
    • 您可以尝试使用 PIL。 pythonware.com/library/pil/handbook/introduction.htm'Reading from a string' 上的示例显示了如何将上面的字符串 'png' 读入您可以操作的图像对象中。
    猜你喜欢
    • 2013-08-03
    • 1970-01-01
    • 2013-10-13
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 2014-02-21
    相关资源
    最近更新 更多