【问题标题】:Problems with networkx node 2 has no positionnetworkx 节点 2 没有位置的问题
【发布时间】:2022-07-21 21:33:03
【问题描述】:

很抱歉,我阅读了所有类似的问题,但找不到解决问题的方法。

import folderstats
import networkx as nx
from networkx.drawing.nx_pydot import graphviz_layout

df = folderstats.folderstats(
    '../', hash_name='md5',
    exclude=["tests", "venv", "__pycache__"],
    ignore_hidden=True)

# Sort the index
df_sorted = df.sort_values(by='id')
G = nx.Graph()
    for i, row in df_sorted.iterrows():
        if row.parent:
            G.add_edge(int(row.id), int(row.parent))

# Print some additional information

pos_dot = graphviz_layout(G, prog='dot',root=1)

fig = plt.figure(figsize=(16, 8))
nodes = nx.draw_networkx_nodes(G, pos_dot, node_size=2, node_color='C0')
edges = nx.draw_networkx_edges(G, pos_dot, edge_color='C0', width=0.5)
plt.axis('off')

我总是得到的是:

NetworkXError:节点 2 没有位置。

期待您的帮助! ????

【问题讨论】:

    标签: python networkx graphviz


    【解决方案1】:

    好的,经过几个小时的测试,我找到了解决方案。

    第一:

    • graphviz_layout 给你一个浮动 -> 转换乘以 100

      pos_dot = {k: (v[0]*100, v[1]*100) for k, v in pos_dot.items()}

    第二:

    • 它仍然是一个浮点数,所以你必须将它转换为整数

      pos_dot = {int(k): v for k, v in pos_dot.items()}

    就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 2017-10-09
      • 2019-03-29
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多