Как я могу нарисовать заданный цвет c края в соответствии с его узлом в сети x? - PullRequest
0 голосов
/ 19 марта 2020

Я новичок в 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'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...