У меня проблема с назначением цвета узлам на прикрепленном ниже графике.Цвета узла должны быть соответствующим образом скорректированы на основе расходящегося формата (RdYlGn) на основе веса узла.
Мой код выглядит следующим образом:
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
data = pd.read_csv("D:\\Cars0319SP.csv")
df = pd.DataFrame({'from':data['Car Code - Serviced'], 'to':data['Car Code - Due Serv'],'value': data['Car Make - Serviced']}) #Value is categorical
df['value'] = pd.Categorical(df['value'])
print(df['value'].cat.codes)
colormake = df['value'].cat.codes
colorlist = ['cyan', 'magenta', 'yellow', 'black']
G=nx.from_pandas_edgelist(df, source='from', target='to', edge_attr=True, create_using=nx.DiGraph())
G.to_directed(as_view=True)
nx.draw(G, with_labels=False, node_color=colormake, node_size=((df['value'].cat.codes)*12), node_fontsize='4', edge_color= 'mediumpurple', arrowstyle='->', arrowsize=5, width=2.0, edge_cmap=plt.cm.jet, arrows=True)
plt.show()
Результат, который я получаю симея напримерnode_color = 'wheat'
есть (см. Ссылку на изображение 1 - пока нельзя публиковать изображения):
Изображение 1
РЕДАКТИРОВАТЬ: набор данных включен, чтобы помочь воспроизвести ошибку
Car Code - Due Serv Car Code - Serviced Car Make - Serviced Veh.In
N155
U193
P169 N155 32N155 2
F194 P169 32P169 1
N155
B712 F194 32F194 2
Когда я вставляю строку "colormake" в цвет узла, я получаю следующую ошибку.
ValueError: 'c' argument has 259 elements, which is not acceptable for use with 'x' with size 195, 'y' with size 195.
Конечно, я делаю что-то не так в определении различных цветов в пределахкод, ваша помощь будет принята с благодарностью.