python 输出在固定位置_python-不带graphviz的NetworkX的固定位置层次输出?

我正在尝试使用Python绘制简单的分层树.我正在使用networkx模块.我声明了一个简单的图

G=networkx.DiGraph()

将节点和边添加到G后,我尝试使用

nx.draw(G)

要么

nx.draw_networkx(G)

绘图.输出图的层次结构都是正确的,但是节点的位置在图上看起来都是随机的.更糟糕的是,每次我运行脚本时,节点位置都是不同的.

在类似问题中提供了一个需要graphviz软件包的解决方案.

pos=nx.graphviz_layout(G,prog='dot')

nx.draw(G,pos,with_labels=False,arrows=False)

不幸的是,我不允许安装graphviz.因此,我在这里寻求替代解决方案.

从graphviz解决方案来看,似乎只需要计算节点的位置即可.正确地说,只要我为draw命令指定坐标列表,就能在正确的位置绘制节点?

谢谢

解决方法:

更新(2015年4月15日)看我的答案here,了解我认为会做的事情.

因此,如果没有graphviz,networkx不会特别容易使用graphviz布局,因为如果要重现graphviz的布局,最好使用graphviz的算法.

但是,如果您愿意为每个节点计算位置,这很简单(就像您猜到的那样).创建一个字典,说明每个节点的位置.

pos = {}

for node in G.nodes():

pos[node] = (xcoord,ycoord)

nx.draw(G,pos)

将在xcoord和ycoord是您想要的坐标的地方执行此操作.

描述各种绘图命令here

标签:networkx,graphviz,python

来源: https://codeday.me/bug/20191121/2049690.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值