gpt4 book ai didi

python - NetworkX graphviz_layout 不工作?

转载 作者:行者123 更新时间:2023-11-28 19:29:27 29 4
gpt4 key购买 nike

我在尝试使用 NetworkX 和 graphviz_layout 绘制包含许多节点的图形时遇到了问题。更具体地说,传递给 nx.graphviz_layout 的参数根本没有帮助。附件是我使用的代码:

G=some_graph()

import matplotlib.pyplot as plt
plt.figure(figsize=(32,32))

# use graphviz to find radial layout
pos=nx.graphviz_layout(G,prog="dot",
root=1000,
args='-splines=true -nodesep=0.6 -overlap=scalexy'
)

nx.draw(G,pos,
with_labels=True,
alpha=0.5,
node_size=600,
font_size=10
)

plt.savefig("imagenet_layout.png")

无论我如何更改 nx.graphviz_layout 中的“args”,输出图像都是相同的,并且所有节点都相互重叠。有人可以帮我吗?谢谢!

最佳答案

对我来说,似乎为了给 prog 提供参数,您需要使用格式“-G”+“argsname=x”。我注意到在示例中他们给出了 docs arg epsilon 为G.draw('test.ps',prog='twopi',args='-Gepsilon=1')。所以我尝试了如下所示的模式。我只是在参数前面添加了 G。现在,这些论点会根据您使用的 prog 的不同而有很大差异,因此您肯定想使用“点”来完成您想要完成的事情。您可以看到所有可能的参数以及它们如何与每个 prog 一起使用 here .对于我的海豚,我需要让 nodesep=0.01。

G=some_graph()

import matplotlib.pyplot as plt
plt.figure(figsize=(32,32))

# use graphviz to find radial layout
pos=nx.graphviz_layout(G,prog="dot",
root=1000,
args='-Gsplines=true -Gnodesep=0.6 -Goverlap=scalexy'
)

nx.draw(G,pos,
with_labels=True,
alpha=0.5,
node_size=600,
font_size=10
)

plt.savefig("imagenet_layout.png")

这是我的图表在有和没有 args 的情况下与代码的比较。首先没有参数。

A = nx.nx_agraph.to_agraph(G)        # convert to a graphviz graph
A.layout(prog='neato') # neato layout
#A.draw('test3.pdf')

A.draw('test3.png' )

No args figure

带参数

A = nx.nx_agraph.to_agraph(G)        # convert to a graphviz graph
A.layout(prog='dot') # neato layout
#A.draw('test3.pdf')

A.draw('test3.png',args='-Gnodesep=0.01 -Gfont_size=1', prog='dot' )

Figure using dot with args

一旦我让参数生效,您就可以看到图像不同了。

关于python - NetworkX graphviz_layout 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30042584/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com