在没有Anaconda/Spyder的情况下,如何查看使用NetworkX库创建的图形?

2024-05-14 16:41:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在上离散数学课。学生应该使用NetworkX库来可视化图形。教练和助教正在使用Spyder和Anaconda。我也没有使用它们的计划。 我无法查看NetworkX库创建的图形。代码的其余部分工作得很好。 以下是一个示例:

import networkx as nx
G = nx.Graph()
for i in range(1, 6):
    G.add_node(i)

G.add_edge(1, 2)
G.add_edge(2, 3)
G.add_edge(3, 4)
G.add_edge(4, 5)
G.add_edge(1, 6)

print(G.nodes())
print(G.edges())

nx.draw(G)

以下是输出:

[1, 2, 3, 4, 5, 6]
[(1, 2), (1, 6), (2, 3), (3, 4), (4, 5)]


------------------
(program exited with code: 0)
Press return to continue

所以最后一行不是打印。将其更改为print(nx.draw(G))只会在输出的末尾添加一个None。 我尝试过使用Geany、VS代码和终端(Bash),但看不到图形。我该怎么办

如果不使用Anaconda/Spyder,我如何查看图形


Tags: 代码networkxadd图形可视化anaconda学生计划
2条回答

这可以通过将图形视为外部图像来解决。生成图形时,可以在其他窗口中将其视为图像,也可以将其保存到当前目录

需要从包matplotlib中导入名为pyplot的子模块来执行此操作

假设使用nx.draw(graph-name)绘制图形。在Spyder中,它将自动输出图形。但这种情况在航站楼是不会发生的

我们可以使用命令plt.show()查看生成的图形。我们将matplotlib.pyplot导入为plt

plt.show()将在其他窗口中显示图形,但不会保存图形的副本

如果要在当前目录中保存图形的副本,请使用plt.savefig('file-with-extension')。它将保存图形的副本

下面是一个例子:

>>> import networkx as nx
>>> import matplotlib.pyplot as plt
>>> G = nx.graph()
>>> nx.add_path(G, [0, 1, 2, 3])
>>> nx.draw(G, with_labels=1)
>>> plt.show()

翻译会给你这个- enter image description here

可以使用matplotlib,只需将nx.draw上的参数设置为matplotlib图形的轴,例如:

import matplotlib.pyplot as plt

def draw_graph(nx_graph):
    fig, axes = plt.subplots(1,1,dpi=72)
    nx.draw(nx_graph, pos=nx.spring_layout(nx_graph), ax=axes, with_labels=True)
    plt.show()

networkx文档建议使用更具体的专用工具进行图形可视化,但这适用于基础。见: https://networkx.github.io/documentation/stable/reference/drawing.html

相关问题 更多 >

    热门问题