Направленная диаграмма NetworkX - Цветовые узлы в зависимости от их веса - PullRequest
0 голосов
/ 21 мая 2019

У меня проблема с назначением цвета узлам на прикрепленном ниже графике.Цвета узла должны быть соответствующим образом скорректированы на основе расходящегося формата (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.

Конечно, я делаю что-то не так в определении различных цветов в пределахкод, ваша помощь будет принята с благодарностью.

...