python-3.x - 如何使用 graphviz 通过 networkx 获取图形坐标(布局)?

标签 python-3.x networkx graphviz pydot

我有一个包含 3000 个节点的图。我正在尝试使用 pydot 布局引擎来找到比默认的 networkx 布局更令人愉悦的布局 layout = nx.fruchterman_reingold_layout(G)

来自 networkx doc 的示例

G_tst = nx.complete_graph(4)
pos = nx.nx_pydot.pydot_layout(G_tst )
pos = nx.nx_pydot.pydot_layout(G_tst , prog='dot')

工作得很好。但是当我使用自己的图表时 pos = nx.nx_pydot.pydot_layout(G) 我收到一个 类型错误,它声称 G 具有属性 name 不止一次。

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-72-1326868cc786> in <module>()
      1 
----> 2 pos = nx.nx_pydot.pydot_layout(G)
      3 nx.draw(G, pos=pos)

C:\Anaconda3\lib\site-packages\networkx\drawing\nx_pydot.py in pydot_layout(G, prog, root, **kwds)
    261     """
    262     import pydotplus
--> 263     P=to_pydot(G)
    264     if root is not None :
    265         P.set("root",make_str(root))

C:\Anaconda3\lib\site-packages\networkx\drawing\nx_pydot.py in to_pydot(N, strict)
    200     for n,nodedata in N.nodes_iter(data=True):
    201         str_nodedata=dict((k,make_str(v)) for k,v in nodedata.items())
--> 202         p=pydotplus.Node(make_str(n),**str_nodedata)
    203         P.add_node(p)
    204 

TypeError: __init__() got multiple values for argument 'name'

这是我拥有的节点属性:

`G.add_node(G.number_of_nodes(), 
           name=endNode.endWord, # string
           teaching_text=endNode.tt_corpus, # string
           definition=endNode.domainDef, # string
           search_string=endNode.searchKey_obj.search_key_str,
           name_len = len(endNode.endWord))` #int

最佳答案

我昨天也遇到同样的错误。我不是百分百确定,但似乎有些内部变量与您的属性“名称”冲突。就我而言,我将其更改为“name_”然后它就可以工作了。

关于python-3.x - 如何使用 graphviz 通过 networkx 获取图形坐标(布局)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43463797/

相关文章:

layout - 控制graphviz(dot2tex)中节点的布局?

以编程方式对 Graphviz 节点进行排名

Python async redis 给出错误 AttributeError : __aexit__

python - Markdown 语法突出显示调用 Python 脚本的 Bash 命令

python - 随机图Python networkx读取文件并绘制图表

uml - 使用 GraphViz 创建复杂的包图

python - SQLAlchemy - 同一张表中的父子关系

使用大表循环的python性能问题

python - 如何实时更新 NetworkX 图?

linear-algebra - networkx 无法计算代数连通性