簡體   English   中英

networkx 節點 2 沒有位置的問題

[英]Problems with networkx node 2 has no position

抱歉,我通讀了所有類似的問題,但找不到解決問題的方法。

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 沒有位置。

我期待着得到你的幫助! 🙂

好的,經過幾個小時的測試,我找到了解決方案。

第一的:

  • 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()}

就是這樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM