正在保存 iGraph python 个数字?

Saving iGraph python figures?

我正在使用 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()

当我尝试执行以下操作时,其中 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')

它保存了一张空白图片。有什么建议吗?

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')

您也可以直接保存绘图:

igraph.plot(g, "name.png")

有关(一些)更多信息,请参阅:https://igraph.org/python/doc/tutorial/tutorial.html#saving-plots