【问题标题】:Generating Network graph in python在python中生成网络图
【发布时间】:2017-11-30 17:38:21
【问题描述】:

我正在尝试使用文件中的 python 使用 networkx 为 200 多个节点和 300 多个边生成网络图。我能够在我的 Juypter Notebook 中使用 matplotlib 生成和绘制图表,但它看起来不太好,并且节点非常紧凑。

有没有其他python包可以帮助生成网络图??

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

【问题讨论】:

  • 您能否更具体地说明什么是“不好看”?
  • 所有节点之间距离较近,生成的图像与数据集相比较小。我是新手,希望有一些设置可以解决它
  • networkx 在图形可视化方面并不是特别擅长(并且并非旨在成为)。查看graphviz:networkx.github.io/documentation/networkx-1.10/reference/…

标签: python matplotlib graph networkx


【解决方案1】:

如果节点靠得太近是问题,请尝试使用 networkx 的draw_spring()function。 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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多