我有以下兩個資料集
節點邊緣
A B
A D
B N
B A
B X
S C
和
Nodes Attribute
A -9
B
C -1.5
D1.0
...
N1.0
...
X0.0
Y -1.5
W -1.5
Z1.0
其中Attribute型別為float64。對于復制,你可以使用以下方式(唯一的Attribute元素,即uni_val)。array([ 9. , 0. , 1. , 0.5, -0.5, -1. , -1.5, -2. ] )
我想創建一個使用彩色地圖為節點著色的網路。我的做法如下:
# Create map of color
uni_val=df2.Attribute.unique()
colors = plt.cm.jet(np.linspace(0,1,len(df2.Attribute.unique()))))
n=0
val=[]
欄目組
for i in uni_val:
val.append(i)
col.append(color[n])
n=n 1
mapper=dict(zip(val,col))
color_map = df2.set_index('Nodes')['Attribute'].map(mapper)
# 創建網路。
G = nx.from_pandas_edgelist(df1, source='Node'/span>, target='Edge'/span>)
# 為每個節點添加屬性。
nx.set_node_attributes(G, color_map, name="color")
# 然后根據屬性值來繪制顏色:。
nx.draw(G。
node_color=nx.get_node_attributes(G, 'color').values()。
with_labels=True)
我得到了以下錯誤:
我得到了以下錯誤:
TypeError: float()引數必須是一個字串或一個數字,不是 'dict_values' 。
但我不明白是什么原因造成的,以及我如何才能解決這個問題。 如果你能幫助我更好地理解它,并告訴我修復它的方法,那就太好了。
uj5u.com熱心網友回復:
當前的映射是不正確的。需要的是一個有效的顏色代碼格式,而不是陣列:
從檔案中可以看出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/328929.html
標籤:
上一篇:生成"維度詛咒"圖

