[英]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.