我在为下面的图表上的节点分配颜色时遇到问题。需要根据节点权重使用发散格式(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链接-无法发布图片):
编辑:包括的数据集有助于重现错误
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.
在定义代码中的各种颜色时,我肯定做错了,将非常感谢您的帮助。