Есть ли способ нарисовать диаграмму, представляющую взаимосвязь переменных в формуле/условном операторе?

#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()
 

введите описание изображения здесь