Необходимо сгенерировать координаты (только по оси X) для иерархического сетевого графика, когда для каждого узла заданы уровни (ось Y). Здесь координата X должна быть в оптимальном положении в заданной координате Y.
В настоящее время для этого я использую библиотеку networkx с graphviz_layout в Python.
используемый фрагмент кода:
Q = nx.Graph()
Q.add_edges_from(arr_SrcTgt)
pos = graphviz_layout(Q,prog='dot')
nx.draw(Q,pos)
plt.show
выход:
здесь нижние 4 узла должны быть сверху.
Поэтому я решил определить уровни (ось Y) каждого узла и получить координаты X с помощью алгоритма.
Любые идеи ? предпочитаю Python или Excel :) Спасибо.