#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()
Результат выглядит так: