#python #tree #spss #diagram #dataflow
Вопрос:
У меня есть такой алгоритм :
A = 0 if B == 1 or C == 1 else A = 1
D = A E
F = D/2
Я хотел бы представить отношения между переменными в виде потока данных или древовидной диаграммы. Что-то вроде этого
У меня есть куча таких формул, которые должны регулярно обновляться, поэтому я хотел бы найти способ сделать это программно, а не рисовать вручную. Есть ли такая библиотека в Python или SPSS для этого?
Комментарии:
1. Даже в псевдокоде вам следует избегать смешивания присваивания и сравнения на равенство . Как работает первое задание, когда
B == 2
?2. Ответ для SPSS: нет.
3. @trincot Спасибо, отличный улов!
4. …хорошо, но там был вопрос.
5. @trincot Я на самом деле имел в виду сравнение равенства для B и C и отредактировал код
Ответ №1:
Исследовать networkx
. Вам необходимо установить networkx
пакет и graphviz
программу:
import matplotlib.pyplot as plt
import networkx as nx
from networkx.drawing.nx_agraph import graphviz_layout
relations = [('B', 'A'), ('C', 'A'), ('A', 'D'), ('E', 'D'), ('D', 'F')]
# Create graph and add egdes
G = nx.DiGraph()
G.add_edges_from(relations)
pos = graphviz_layout(G, prog='dot')
nx.draw(G, pos, with_labels=True, arrows=True)
plt.show()