![](/img/trans.png)
[英]How to change color of nodes in networkx graph based on graph's modularity
[英]How to make color of nodes in the network graph change sequentially from the center to the edge in Networkx
我想畫一個圖,其網絡圖中節點的顏色從中心到邊緣依次變化,如下所示:
當我可視化數據時,我不知道如何正確處理異常值,因此我只是對數據進行混洗並充分利用了它們。 這是我的代碼和圖片:
data = pd.read_csv('soc-sign-bitcoinalpha.csv', names=['SOURCE', 'TARGET', 'RATING', 'TIME'])
new_data = data.iloc[:, :2].copy()
new_data = new_data.reindex(np.random.permutation(new_data.index))
new_data = new_data.iloc[: 18000]
G = nx.from_pandas_edgelist(new_data1, "SOURCE", "TARGET")
nx.draw(G, node_size=5, edge_vmin=1, edge_vmax=2)
數據來自斯坦福大型網絡數據集集合中的比特幣Alpha信任加權簽名網絡 。
因此,如果不介意的話,有人可以教我如何實施它嗎?
我之前確實做了很多搜索,但是我無法弄清楚。
真誠的感謝!
您可以先計算每個節點距中心的距離,然后按距中心的距離進行着色。 nx.draw
使用sprint_layout
定位節點,因此您可以顯式調用它以獲取節點的位置。 位置以(0, 0)
為中心,因此您可以簡單地使用r = np.sqrt(x**2 + y**2)
計算到中心的距離:
pos = nx.spring_layout(G)
node_colors = [np.sqrt((xy**2).sum()) for xy in pos.values()]
nx.draw(G, pos, node_color=node_colors, node_size=5, edge_vmin=1, edge_vmax=2)
僅供參考,您給出的示例很可能是節點之間的中間性 。 要按此度量着色,想法是相同的:
bc = nx.betweenness_centrality(G)
node_colors = list(bc.values())
nx.draw(G, node_color=node_colors)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.