У меня проблемы с настройкой 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.Я проверил наличие конечных пробелов на ярлыках объектов, но ничего.Я не очень хорошо понимаю индексы, поэтому мне интересно, если они все испортили?Есть идеи?
Спасибо!