Я новичок в Python. У меня есть кластерный граф Лувена, и я хочу, чтобы цвет ребра соответствовал цвету его узла. Вот мой код:
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.colors as mcolors
import numpy as np
partition_louvain = community.best_partition(G)
size = float(len(set(partition_louvain.values())))
pos = nx.spring_layout(G)
count = 0.
communities_louvain = []
cmap=mymap
#cmap = cm.get_cmap("BlueRedGreen")
for com in set(partition_louvain.values()):
count = count + 1.
list_nodes = [nodes for nodes in partition_louvain.keys()
if partition_louvain[nodes] == com]
communities_louvain.append(list_nodes)
nx.draw_networkx_nodes(G, pos, list_nodes, node_size=20,connectionstyle='arc3',
node_color=cmap(count / size))
#'''
cmap2 = cm.get_cmap("jet")
#norm = plt.Normalize(pos[e[0]].min(), pos[e[0]].max())
ax = plt.gca()
for e in G.edges:
norm = plt.Normalize(pos[e[0]].min(), pos[e[0]].max())
cmap2 = cm.get_cmap("jet")
ax.annotate("",
xy=pos[e[0]], xycoords='data',
xytext=pos[e[1]], textcoords='data',
arrowprops=dict(arrowstyle="->", color=cmap2(norm(pos[e[0]])),
shrinkA=5, shrinkB=5,
patchA=None, patchB=None,
connectionstyle="arc3,rad=rrr".replace('rrr',str(0.3*e[2])
),
),
)
plt.show()
Я могу нарисовать стрелку только в одном цвете, изменив цветовой аргумент на что-то вроде
color='blue'.