Размер графика каждого узла по словарю - PullRequest
2 голосов
/ 08 апреля 2020

Пока у меня есть следующий код:

source = ['0','0','0','0','0','0','0']
destination = ['1','2','3','4','5','6','7']

FB_network_graph = pd.DataFrame({ 'from':source, 'to':destination})
G=nx.from_pandas_edgelist(FB_network_graph, 'from', 'to')

plt.figure(figsize = (100,100))
nx.draw(G, with_labels=True)

Я хочу построить график, на котором узел '0' имеет размер 7, а узел '1' - '7' имеет размер 1 .

1 Ответ

1 голос
/ 08 апреля 2020

Похоже, вы хотите отрегулировать node_size в соответствии с градусом . Для этого вы можете определить словарь из результата G.degree и установить размер в соответствии с соответствующей степенью узла, просмотрев словарь:

scale = 300
d = dict(G.degree)
nx.draw(G, node_color='lightblue', 
        with_labels=True, 
        nodelist=d, 
        node_size=[d[k]*scale for k in d])

enter image description here

В качестве альтернативы вы можете просто определить свой собственный словарь, чтобы установить соответствующие размеры узлов в node_size. Для этого укажите c случай с чем-то вроде:

d = {str(k):1 for k in range(1,8)}
d['0'] = 7
...