Я создал график, используя networkx
. Когда я рисую этот график, метки узлов не помещаются (имена узлов могут быть довольно длинными), поэтому я заменил их на числовые индексы c. Проблема с этим обходным решением состоит в том, что полученный чертеж труднее интерпретировать, поскольку эти числа не имеют смысла. Это мой код:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_nodes_from(['First', 'Second', 'Third'])
G.add_edges_from([('First', 'Second'), ('First', 'Third'), ('Second', 'Third')])
name2num = {name: num + 1 for num, name in enumerate(list(G.nodes))}
H = nx.relabel_nodes(G, mapping=name2num, copy=True)
fig, (ax0, ax1) = plt.subplots(1, 2)
nx.draw(G, ax=ax0, with_labels=True)
nx.draw(H, ax=ax1, with_labels=True)
Мой вопрос: как я могу добавить ключ к рисунку справа?
Это информация Я хотел бы отобразить:
1 - First
2 - Second
3 - Third
Я пытался добавить легенду, но безрезультатно:
ax0.legend(list(name2num.values()), list(name2num.keys()))
PS : Я нашел несколько тем связано с моей проблемой. Предлагаемые решения заключаются в кодировании меток узлов разными цветами. Я бы предпочел кодировать метки узлов через числа.