У меня есть набор данных pandas, в котором есть столбец для группы, которой он назначен.Но я хочу настроить цвет узла.Например, для группы 0 узлы имеют красный цвет, для группы 1 - синий.Вот то, что я попробовал, основываясь на моих исследованиях, но по какой-то причине это не совсем соответствует группировке (должно быть только 2 цвета на основе групп), и я не могу редактировать цвета.
Этомой набор данных сохранен в файле sample.csv
ID|Parent|Group|
1 | 5 | 0 |
2 | 5 | 0 |
3 | 4 | 1 |
4 | 5 | 1 |
5 | 3 | 0 |
sample= pd.read_csv('sample.csv', encoding='cp1252')
G=nx.from_pandas_edgelist(sample, 'ID', 'Parent', create_using=nx.DiGraph())
carac=sample.set_index('ID')
carac=sample.reindex(G.nodes())
carac['Group']=pd.Categorical(carac['Group'])
carac['Group'].cat.codes
plt.figure(2,figsize=(5,5))
nx.draw(G, node_color=carac['Group'].cat.codes, cmap=plt.cm.Set1, node_size=150)
Результат
Обновление: я тоже пробовал это, ноэто также не следовало за группировкой цветов
# Build your graph
G=nx.from_pandas_edgelist(sample, 'ID', 'Parent', ['Group'], create_using=nx.DiGraph())
G.nodes()
colors = []
for node in G:
if node in (sample["Group"] == 0):
colors.append("red")
elif node in (sample["Group"]== 1):
colors.append("blue")
nx.draw(G, with_labels=False, node_size=150, node_color=colors)