networkx中的draw_networkx()

0 投票
2 回答
2837 浏览
提问于 2025-04-16 16:43

我在使用networkx的时候遇到了这个错误

networkx.draw_networkx(G,ax = self.axes)
TypeError: draw_networkx() takes at least 2 non-keyword arguments (1 given)

相关的代码是

G=networkx.Graph()
G.add_node("spam")
G.add_edge(1,2)
networkx.draw_networkx(G,ax = self.axes)

有人能解释一下我哪里做错了吗?我该怎么修正这个问题…… 这个函数的链接是 draw_networkx

谢谢

2 个回答

2

samplebias 给了一个很好的例子。

如果你想要一个更简单的方法来进行命令行分析或者随便玩玩:

networkx.draw_spring(G)

这是一个内置的方法,可以根据弹簧的重量来绘图,并且会考虑这些重量,所以你可以加入一些东西,比如:

G=networkx.Graph()
G.add_node("spam")
G.add_edge(1,2,weight=4.7)
G.add_edge(1,"spam")

而且由于弹簧的重量,1-2 之间的连接会比 1-spam 之间的连接短。这种方法非常快速和简单。

7

这里提到的 pos 参数是用来告诉绘图程序如何放置节点的位置的。下面是一个使用弹簧布局来填充 pos 的方法:

networkx.draw_networkx(G, pos=networkx.spring_layout(G), ax=self.axes)

输出结果:

在这里输入图片描述

撰写回答