Постройте сетевую цепочку на Python

Я хочу построить цепочку выполнения, используя графики и Python. Я должен использовать левую и правую стороны при построении графика, это возможно с помощью networkx и matplotlib?

Что-то вроде этого: Постройте сетевую цепочку на Python

Я пытался:

import networkx as nx
import matplotlib.pyplot as plt

g = nx.DiGraph()
g.add_nodes_from([1,2,3,4,5])
g.add_edge(1,3)
g.add_edge(2,3)
g.add_edge(3,5)
g.add_edge(3,4)

nx.draw(g,with_labels=True)
plt.draw()
plt.show()

но я не знаю, как объявить заказ. Я получил: Постройте сетевую цепочку на Python

Что ты уже сделал?

whatthefish 17.08.2018 22:02

Пожалуйста, включите пример ваших данных. (Скажем, для включенного графика.)

DYZ 17.08.2018 22:04

добавлен в пост

Alberto 17.08.2018 22:07

Не думаю, что в networkx это можно сделать.

DYZ 17.08.2018 22:14

любой другой известный libray @DYZ?

Alberto 17.08.2018 22:18

Не то, чтобы я в курсе, и запросы рекомендаций по программному обеспечению не относятся к теме SO.

DYZ 17.08.2018 22:19

Проверьте эту ссылку: stackoverflow.com/questions/42272710/…

swatchai 18.08.2018 06:26

Возможно, вы ищете топологическую сортировку

dorintufar 18.08.2018 09:44
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
8
487
1

Ответы 1

Сетевая цепочка может быть создана с помощью graphviz_layout в networkx.

Установить:

  • пидот для использования write_dot (G, путь)
  • Pygraphviz для использования graphviz_layout (g, prog = 'dot')

Код:

import matplotlib.pyplot as plt
import networkx as nx


g = nx.DiGraph()
g.add_nodes_from([1,2,3,4,5,6,7])
g.add_edge(1,3)
g.add_edge(2,3)
g.add_edge(3,5)
g.add_edge(3,4)
g.add_edge(4,6)
g.add_edge(5,7)
g.add_edge(4,8)
g.add_edge(5,9)

nx.nx_pydot.write_dot(g,'DiGraph.dot')
pos = nx.drawing.nx_agraph.graphviz_layout(g, prog='dot')
nx.draw(g,pos,with_labels=True)
plt.show()

Возврат:

Network Chain

Другие вопросы по теме