Вы можете использовать библиотеку NetworkX для создания своего графика и matplotlib для его отображения.
Как создать простой график:
import networkx as nx
graph = nx.Graph()
graph.add_node('A')
graph.add_node('B')
graph.add_node('C')
graph.add_edge('A', 'B')
graph.add_edge('B', 'C')
graph.add_edge('A', 'C')
Тогда вы можете отобразить это:
import matplotlib.pyplot as plt
plt.figure()
nx.draw(graph, with_labels=False)
plt.show()
Вы также можете изменить вертикальное положение узлов при их рисовании, передав аргумент pos
в nx.draw
nx.draw(graph, with_labels=False, pos={'A':(0, 0), 'B':(0,3), 'C':(2,3)})
Проверьте документы по параметрам nx.draw: https://networkx.github.io/documentation/stable/reference/generated/networkx.drawing.nx_pylab.draw_networkx.html#networkx.drawing.nx_pylab.draw_networkx
Не забудьте также установить границы фигуры, используя plt.xlim()
и plt.ylim()