小智 7
是! Networkx将绘制到matplotlib图,然后您可以使用所有matplotlibs API,包括保存文件(选择格式和dpi).
import networkx as nx
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
g = nx.Graph()
g.add_edge(1,2)
f = plt.figure()
nx.draw(g, ax=f.add_subplot(111))
f.savefig("graph.png")
Run Code Online (Sandbox Code Playgroud)
该行matplotlib.use("Agg")是可选的,但它适用于从不想以交互方式显示matplotlib图的程序.
这是您正在寻找的文档,其中包含许多解决方案。我可以补充一点,如果没有人应该读取或修改创建的文件(它只是一种存储格式),您可以使用 pickle。如果您需要更通用的格式,因为该图将在其他工具中使用,您可能更喜欢 graphML 或 Json。
例子:
>>> cube = nx.hypercube_graph(2)
>>> nx.write_gpickle(cube,"cube.gpickle")
>>> readCube = nx.read_gpickle("cube.gpickle")
>>> cube.edge
{(0, 1): {(0, 0): {}, (1, 1): {}}, (1, 0): {(0, 0): {}, (1, 1): {}}, (0, 0): {(0, 1): {}, (1, 0): {}}, (1, 1): {(0, 1): {}, (1, 0): {}}}
>>> readCube.edge
{(0, 1): {(0, 0): {}, (1, 1): {}}, (1, 0): {(0, 0): {}, (1, 1): {}}, (0, 0): {(0, 1): {}, (1, 0): {}}, (1, 1): {(0, 1): {}, (1, 0): {}}}
Run Code Online (Sandbox Code Playgroud)