Ошибка получения ключа в Networkx color_map - PullRequest
0 голосов
/ 20 ноября 2018

У меня проблемы с настройкой color_map для работы с моим графиком networkx.Это довольно простой код, но, похоже, он не работает.Я просмотрел другие похожие темы, но нет, похоже, решения не работают.

У меня есть данные, которые выглядят так:

edgelist_manual = [{'source': 'ABE', 'target': 'ATL', 'value': 851},
     {'source': 'ABE',  'target': 'BHM', 'value': 1},
     {'source': 'ABE',  'target': 'CLE',  'value': 805}]

edgelist = pd.DataFrame(edgelist_manual)

nodelist_manual = [{'source': 'ABE', 'value': '4807', 'group': 0},
     {'source': 'ABI',  'value': '2660', 'group': 4},
     {'source': 'ABQ',  'value': '41146',  'group': 2}]

nodelist = pd.DataFrame(nodelist_manual)

Я запускаю приведенный ниже код, но мойcolor_map продолжаю портить.Я просто получаю ключевую ошибку в ссылке на группу.

import itertools
import copy
import networkx as nx
import pandas as pd
import matplotlib.pyplot as plt

nodelist = pd.read_csv('final_nodes.csv')
edgelist = pd.read_csv('final_edges.csv')

g = nx.Graph()

for i, elrow in edgelist.iterrows():
    g.add_edge(elrow[0], elrow[1], attr_dict=elrow[2:].to_dict())
for i, nlrow in nodelist.iterrows():
    g.node[nlrow['source']].update(nlrow[1:].to_dict())

color_map = {0: 'r', 1:'b', 2:'r', 3:'b', 4:'r', 5:'b'}
colors = [color_map[g.node[node]['group']] for node in g]

nx.draw(g, node_color=colors)
ax = plt.gca()
ax.collections[0].set_edgecolor("#555555") 
plt.show()

Единственное отличие от этого и моего кода в том, что вместо того, чтобы создавать данные вручную, я загружаю их из .csv.Я проверил наличие конечных пробелов на ярлыках объектов, но ничего.Я не очень хорошо понимаю индексы, поэтому мне интересно, если они все испортили?Есть идеи?

Спасибо!

...