Окраска краев по весу в сетиx

Я нашел только что-то похожее на то, что я хочу здесь:

Окраска сети x по краям

Однако я не могу применить это к моей проблеме. У меня есть график с взвешенными ребрами, но веса не уникальны (поэтому есть как 15 ребер с весом 1). Я хочу покрасить края в зависимости от их веса, чем меньше вес, тем светлее цвет.

Я пытался применить метод, предложенный в приведенном выше вопросе, но, насколько я понимаю, для этого требуется, чтобы веса были уникальными для каждого ребра?

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

Если неясно, дайте мне знать в комментариях, и я дам более конкретную информацию.

Спасибо!

РЕДАКТИРОВАТЬ: def draw_graph (target): nlist = [target] + G.neighbors (target) H = nx.subgraph (G, nlist) n = H.number_of_edges () colors = range (n) label, weights = colour_and_label_edges (H )

pos = nx.spring_layout(H)
nx.draw(H, pos, node_color='#A0CBE2',edge_color=colours, node_size=100, edge_cmap=plt.cm.Blues, width=0.5, with_labels=False)
nx.draw_networkx_edge_labels(H, pos, edge_labels=labels)
plt.savefig("Graphs/edge_colormap_%s.png" % target) # save as png
plt.show() # display
pass

def colour_and_label_edges(graph):
    d={}
    for (u,v) in graph.edges():
        d[u,v]=graph[u][v]['weight']
    temp=[]
    for val in d.values():
        if val not in temp:
            temp.append(val)
    weights = sorted(temp,key=int)
    return d, weights

Приведенный выше код неполон, но идея в том, что функция дает мне список весов, как показано ниже:

[1, 2, 3, 4, 5, 6, 9, 10, 16, 21, 47, 89, 124, 134, 224]

Затем я хочу использовать этот список, чтобы назначить каждому весу цвет, чем выше вес, тем темнее цвет. (Я использовал очень маленький подграф для этого примера относительно набора данных). Надеюсь, это немного прояснит: S

Ответы на вопрос(1)

Ваш ответ на вопрос