Можно ли изменить размер узла в соответствии со списком?

#python #matplotlib #graph

Вопрос:

Я составил график. Здесь я использую одно значение для размера узла. Я хочу изменить размер узла в соответствии со size_of_node списком.

Код:

 import matplotlib.pyplot as plt import networkx as nx  from netgraph import Graph   triangle = nx.DiGraph([('a', 'b'), ('a', 'c'), ('b', 'a')]) size_of_node = [3,1, 4] edge_labels = {  ('a', 'b') : 3,  ('a', 'c') : 10,  ('b', 'a') : 4 }  fig, (ax1) = plt.subplots(1, figsize=(14,14))  Graph(triangle, node_labels=True, edge_labels=edge_labels,  edge_label_fontdict=dict(size=12, fontweight='bold'),  edge_layout='curved',  node_size=3, edge_width=4, arrows=True, ax=ax1)  plt.show()  

Как я могу изменить размер узла в соответствии со списком?

Комментарии:

1. Каковы были ваши попытки до сих пор?

Ответ №1:

Для этого вы можете передать словарь (вместо списка) с нужными размерами узлов в node_size аргумент функции. Код выглядит так:

 import matplotlib.pyplot as plt import networkx as nx  from netgraph import Graph   triangle = nx.DiGraph([('a', 'b'), ('a', 'c'), ('b', 'a')]) size_of_node_dict = {'a':3,'b':1, 'c':4} edge_labels = {  ('a', 'b') : 3,  ('a', 'c') : 10,  ('b', 'a') : 4 }  fig, (ax1) = plt.subplots(1, figsize=(14,14))  Graph(triangle, node_labels=True, edge_labels=edge_labels,  edge_label_fontdict=dict(size=12, fontweight='bold'),  edge_layout='curved',   node_label_fontdict=dict(size=20),   node_size=size_of_node_dict, edge_width=4, arrows=True, ax=ax1)  plt.show()  

Результат выглядит так:

введите описание изображения здесь