问题描述
我正在尝试使用sympy绘制函数的迭代,但是我不能在每次迭代中都刷新图。我该怎么做?感谢您的帮助。
from sympy import *
from sympy.plotting import plot
import matplotlib.pyplot as plt
x = Symbol('x')
t = Symbol('t')
x_0 = exp(t)
ut = 1
mu = -1
ker = x-t
for i in range(1,20):
x_0 = ut + mu * integrate(ker * x_0,(t,x))
print(i,x_0)
p1 = plot(x_0,(x,-1,1))
解决方法
从append
类的sympy.plotting.plot.Plot
方法的documentation获取的两个不同图的示例:
p1 = plot(x*x,show=False)
p2 = plot(x,show=False)
p1.append(p2[0])
p1.show()
请注意,p1
和p2
是sympy.plotting.plot.Plot
类的实例。 append
方法将地块系列中的一个元素添加到现有地块中,最后可以在此地块上调用show
来显示其中的一些元素。我现在可以根据您的情况修改此示例。请注意,我创建了一个plot
实例,该实例开始时没有情节系列的元素:
p = plot(show=False)
for i in range(1,20):
x_0 = ut + mu * integrate(ker * x_0,(t,x))
print(i,x_0)
p.append(plot(x_0,(x,-1,1),show=False)[0])
p.show()