Назначение двух отдельных цветов для списка узлов на графике - PullRequest
0 голосов
/ 05 апреля 2019

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

Я попытался определить функцию для назначения каждого цвета узла узлу в списке, однако python, похоже, не распознает один из моих списков и поэтому в итоге печатает все мои узлы в одном цвете.Я чувствую, что мне не хватает чего-то очень простого, но я просто не вижу этого.

Редактировать: Nodelist1 - это, по сути, последовательность узлов, которые представляют путь между двумя узлами.Все числа в Nodelist1 находятся в Graph.nodes ()

Nodelist1=[1,2,7,9,13] 
def nodecolor():
    for n in Graph.nodes():
        if n in list(NodeList1):
            node_color='red'
        else:
            node_color='blue'
    return node_color

nx.draw_networkx(Graph, node_color=nodecolor(), edge_color='red' )

В идеале это должно нарисовать график, который показывает два разных цвета.Однако он показывает только синий цвет.

1 Ответ

0 голосов
/ 05 апреля 2019

Кажется, вы назначаете одну переменную node_color, в отличие от списка, например.Так как функция nodecolor() возвращает одну строку, draw_networkx получает один цвет для рисования графика.

Если вы просматриваете документацию здесь , вы можете видеть, что вы можете кормитьпоследовательность строк с параметром node_color, равным draw_networkx, хотя длина последовательности должна быть равна списку узлов.

Хотя у меня нет опыта работы с конкретной библиотекой, которую вы используете, я считаю, что простоймодификация вашей функции nodecolor(), как указано ниже, будет работать.

def nodecolor():
    node_colors = []
    for n in Graph.nodes():
        if n in list(NodeList1):
            node_colors.append('red')
        else:
            node_colors.append('blue')
    return node_colors
...