簡體   English   中英

使用networkx對圖的節點進行中心標記

[英]Center labling for nodes of a graph with networkx

import networkx as nx
import matplotlib.pyplot as plt

usernode = input("How many node does your graph have?")
G = nx.Graph()
nodenum = []
labels = {}
for node in range(usernode):
    nodenum.append(node)
for label in range(usernode):
    labels[label] = str(label)
print(labels)

G.add_nodes_from(nodenum)
pos = nx.spring_layout(G)
nx.draw_networkx_labels(G,pos,labels,font_size = 10)
nx.draw(G)
plt.axis('off')
plt.show()

1,如何把這個節點的標簽准確地放在圓心上?我知道這個問題是關於pos的,但是我該怎么辦? 2.完全如何在networkx中管理pos? 謝謝

  1. 問題是您要繪制具有給定位置的標簽,然后在不指定任何節點位置的情況下繪制圖形,因此networkx會生成自己的位置。 因此,您可以執行以下兩種方法之一來解決它:

a)將pos發送到nx.draw函數:nx.draw(G,pos)而不是nx.draw(G)

或者更簡單

b)刪除nx.draw_networkx_labels行並將nx.draw(G)更改為nx.draw(G,pos,with_labels = True,font_size = 10)

  1. 您有不同的布局,例如您使用的彈簧布局,可以在此處找到。 或者,您可以通過按節點創建字典鍵來生成自己的職位。

暫無
暫無

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

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