Как показать только имя важного узла на графе networkx? - PullRequest
1 голос
/ 24 марта 2019

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

График: результат следующих кодов

G_D = nx.Graph () G_D.add_edges_from (G5.edges (data = True))

nx.draw (G_D, nx.spring_layout (G_D), node_size = [v * 10 для v в df.iloc [:, 0]], with_labels = True)

1 Ответ

0 голосов
/ 27 марта 2019

nx.draw имеет аргумент метки , который в сочетании с with_labels=True может рисовать только те метки, которые вы хотите, только так, как вы хотите.

метки (словарь, необязательный (по умолчанию = нет)) - метки узла в словарь по узлу текстовых меток

Например, вы можете выбрать параметр 'label' для узлов и нарисовать метки для узлов, которые имеют 3 или более соседей:

labels = {
    n: (G.nodes[n]['label']
        if len(list(nx.all_neighbors(G, n))) > 2
        else '')
    for n in G.nodes
}
nx.draw(G, with_labels=True, labels=labels)

P.S. Я не рекомендую использовать базовый функционал рисования сети. Есть много мощных библиотек визуализации лучше, чем networkx. Даже в networkx docs вы можете найти то же мнение. Можно использовать Gephi , Graphviz (с различными библиотеками) или Cytoscape для действительно ОГРОМНЫХ графиков.

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