数学公式的树形形式(作为点串)

Uwe*_*der 5 python numpy sympy python-3.x tensorflow

我有公式

a * b * cos( c * x ) + b

是否有可能像 Mathematica 一样创建公式的树结构(https://reference.wolfram.com/language/GraphUtilities/ref/ExpressionTreePlot.html

对于这个公式,例如在 numpy、sympy 甚至张量流中?


编辑

在评论的帮助下,我发现,人们可以使用 graphviz 来绘制它,就像 https://docs.sympy.org/latest/tutorial/manipulation.html中第一张图片中所说的那样 ,但我不这样做明白,如何。

CDJ*_*DJB 2

为此,我们可以使用 sympy 生成树并使用Graphviz渲染它。下面是生成有向图数据并将其呈现为 pdf 的代码。请注意,为了使用 Graphviz,您需要安装 Graphviz 可执行文件以及通过 pip 安装。希望有帮助!

from sympy import symbols, cos, dotprint
from graphviz import Source

a, b, c, x= symbols('a b c x')
expr = a * b * cos( c * x ) + b

src = Source(dotprint(expr))

src.render('output.gv', view=True)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述