保存 iGraph python 图形?

Nik*_*aun 4 python matplotlib igraph

我正在使用 igraph 使用 igraph.plot() 生成网络图,但我只能弹出这些图,而不能在不手动保存每个图的情况下实际保存:

def testplot(graph):
    graph.vs['label'] = graph.vs['name']
    x = plot(graph, vertex_size=[a/5 for a in graph.betweenness()],
             layout = graph.layout('grid'))
    x.show()
Run Code Online (Sandbox Code Playgroud)

当我尝试执行以下操作时,其中 plt 是 matplotlib:

def testplot(graph, name):
    graph.vs['label'] = graph.vs['name']
    igraph.plot(graph, vertex_size=[a/5 for a in graph.betweenness()],
                layout = graph.layout('grid'))
    plt.savefig(name + '_allyBetweenness.png')
Run Code Online (Sandbox Code Playgroud)

它保存一张空图片。有小费吗?

Pau*_*sen 5

igraph.plot不会创建 matplotlib 图形,因此无需保存任何内容(与其他包不同,例如networkx)。这应该有效:

def testplot(graph, name):
    graph.vs['label'] = graph.vs['name']
    out = igraph.plot(graph, vertex_size=[a/5 for a in graph.betweenness()],
                      layout = graph.layout('grid'))
    out.save(name + '_allyBetweenness.png')
Run Code Online (Sandbox Code Playgroud)