簡體   English   中英

使用 Networkx 和 plotly 繪制特定圖形

[英]Drawing specific graph with Networkx and plotly

我是新來的at.networkx,我想用Networkx和plotly畫一個定義圖。圖定義如下:

pos = {0: (20, 10), 1: (20, 20), 2: (30, 10), 3: (30, 20), 4: (50, 15)} 
X=nx.Graph()
Gr.add_nodes_from(pos.keys())
Gr.add_edge(0,3)
Gr.add_edge(0,2)
Gr.add_edge(1,2)
Gr.add_edge(3,4)

為了使節點可點擊,如 plotly 教程 ( https://plotly.com/python.network-graphs/ ) 中所示,我使用了那里編寫的代碼。 問題是當我運行下面的代碼時:

for node in Gr.nodes():
    x, y = Gr.nodes[node]['pos']
    node_x.append(x)
    node_y.append(y)

它向我顯示了一個錯誤:

<ipython-input-38-a80b1db2d250> in <module>
      2 node_y = []
      3 for node in Gr.nodes():
----> 4     x, y = Gr.nodes[node]['pos']
      5     node_x.append(x)
      6     node_y.append(y)

KeyError: 'pos'

邊緣也會發生同樣的事情。 我不知道該怎么做,因為我知道這段代碼適用於上面 url 示例中所示的 random.networks。 任何幫助表示贊賞。

我從這個 url: networkx add_node 得到了特定的 position的答案。 感謝@TomRon。 想法是分別定義每個節點並添加下面的指令以獲取 position 並將其與 plotly 一起使用

pos=nx.get_node_attributes(G,'pos')

暫無
暫無

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

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