在python中生成网络图

时间:2017-11-30 17:38:22

标签: python matplotlib graph networkx

我正在尝试使用来自文件的python使用networkx为200多个节点和300多个边缘生成网络图。我能够在我的Juypter笔记本中使用matplotlib生成并绘制图形,但它看起来不太好,节点包装得非常紧密。

是否有任何其他python包有助于生成网络图???

我的目标是为整个数据集生成图表,以便我可以找到节点之间的依赖关系。

2 个答案:

答案 0 :(得分:2)

如果节点距离太近,请尝试使用networkx的draw_spring()功能。 https://networkx.github.io/documentation/networkx-2.0/reference/generated/networkx.drawing.nx_pylab.draw_spring.html#networkx.drawing.nx_pylab.draw_spring

它模拟了如果每个边缘都是弹簧并且网络被拾取并旋转,将节点分开,尤其是那些没有通过许多路径连接的节点时会发生什么。

如果这在最初不起作用,您可以使用draw_spring()包装的函数的参数,spring_layout()函数。尝试调整k值参数。这应该允许您操纵节点之间的粗略距离。 https://networkx.github.io/documentation/networkx-2.0/reference/generated/networkx.drawing.layout.spring_layout.html#networkx.drawing.layout.spring_layout

或者,您可能会发现其他绘图函数比draw_spring()更有用。您可以在此处的绘图部分找到它们:https://networkx.github.io/documentation/networkx-2.0/reference/drawing.html

答案 1 :(得分:0)

我可以建议使用Netwulf。将{em> networkx.Graph 对象输入到netwulf.visualize,然后在新的浏览器窗口中启动可视化。结果和数据可以发布回Python。

img

免责声明:我是Netwulf的合著者。