Python中ODE模型的交互式连续绘图

欧姆

我想创建一个集成ode模型的脚本,这样我就可以更改参数之一,并查看系统对此更改的响应。例如,如果有一个Lotka-Volterra模型(如本例所示):

import numpy as np
from scipy import integrate
a = 1.
b = 0.1
c = 1.5
d = 0.75

def dX_dt(X, t=0):
    """ Return the growth rate of fox and rabbit populations. """
    return array([ a*X[0] -   b*X[0]*X[1] ,  
                  -c*X[1] + d*b*X[0]*X[1] ])

t = np.linspace(0, 15,  1000)              # time
X0 = np.array([10, 5])    # initials conditions: 10 rabbits and 5 foxes  

X, infodict = integrate.odeint(dX_dt, X0, t, full_output=True)

我想为参数a创建一个滑块c,如matplotlibslider_demo或任何其他工具一样。该图应显示一个始终跨度的特定时间窗口[t_current - delta_t ,t_current]因此,通过更改参数的滑块,我将能够连续探索参数空间。

怎么做?

埃德·史密斯

您已经掌握了所有内容,基本上只是更改了小部件示例中的update方法,以使用基于滑块的新值重新计算dX_dt的积分,然后使用它来设置y行值。代码如下:

import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button, RadioButtons

b = 0.1
d = 0.75
a=1
c=1.5
def dX_dt(X, t=0, a=1, c=1.5):
    """ Return the growth rate of fox and rabbit populations. """
    return np.array([ a*X[0] -   b*X[0]*X[1] ,  
                     -c*X[1] + d*b*X[0]*X[1] ])


t = np.linspace(0, 15,  1000)              # time
X0 = np.array([10, 5])          # initials conditions: 10 rabbits and 5 foxes  

fig, ax = plt.subplots()
plt.subplots_adjust(left=0.25, bottom=0.25)

l1, l2 = plt.plot(t, integrate.odeint(dX_dt, X0, t, (a, c)))

axcolor = 'black'
ax_a = plt.axes([0.25, 0.1, 0.65, 0.03], axisbg=axcolor)
ax_c = plt.axes([0.25, 0.15, 0.65, 0.03], axisbg=axcolor)

sa = Slider(ax_a, 'a', 0.1, 10.0, valinit=1)
sc = Slider(ax_c, 'c', 0.1, 10.0, valinit=1.5)


def update(val):
    a = sa.val
    c = sc.val
    x = integrate.odeint(dX_dt, X0, t, (a, c))
    l1.set_ydata(x[:,0])
    l2.set_ydata(x[:,1])
    fig.canvas.draw_idle()

sa.on_changed(update)
sc.on_changed(update)

plt.show()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python中的交互式绘图

来自分类Dev

如何在交互式绘图(Python)中获得用鼠标指向的(x,y)位置?

来自分类Dev

带有交互式下拉菜单的 Python 绘图

来自分类Dev

如何在Jupyter Notebook中添加交互式绘图?

来自分类Dev

在 R 中创建交互式绘图

来自分类Dev

Jupyter(IPython)笔记本中的交互式绘图,其可拖动点在拖动时会调用Python代码

来自分类Dev

交互式python matplotlib

来自分类Dev

交互式python matplotlib

来自分类Dev

如何在Linux上的python脚本中使用matplotlib 1.5.1进行交互式绘图?

来自分类Dev

python交互式绘图最新颜色的线条,其余为黑色

来自分类Dev

使用 python 保存包含有关数据系列信息的交互式绘图

来自分类Dev

在Spyder中,使用Matplotlib和交互式缩放等进行绘图

来自分类Dev

如何在交互式RMarkdown中控制绘图高度/大小(使用Shiny)

来自分类Dev

使用交互式绘图仅在Altair中缩放一个轴

来自分类Dev

在C#中运行交互式python脚本

来自分类Dev

python中的交互式shell程序包装器

来自分类Dev

Eclipse中的PyDev交互式Python Shell

来自分类Dev

在C#中运行交互式python脚本

来自分类Dev

使用python在交互式openbash中运行命令

来自分类Dev

从python中的用户输入逐行交互式编辑文件

来自分类Dev

用于交互式IPython终端中的连续运行的Tensorflow Op命名

来自分类Dev

用于交互式IPython终端中的连续运行的Tensorflow Op命名

来自分类Dev

使用Fabric.js进行交互式绘图

来自分类Dev

MATLAB:用于“绘制”绘图的交互式工具?

来自分类Dev

使用 R 的组数据交互式绘图

来自分类Dev

带有类别轴的交互式绘图与 Matplotlib

来自分类Dev

交互式绘图后 matplotlib 没有响应

来自分类Dev

更改熊猫绘图后端以获得交互式绘图,而不是matplotlib静态绘图

来自分类Dev

防止SIGQUIT终止交互式python

Related 相关文章

  1. 1

    Python中的交互式绘图

  2. 2

    如何在交互式绘图(Python)中获得用鼠标指向的(x,y)位置?

  3. 3

    带有交互式下拉菜单的 Python 绘图

  4. 4

    如何在Jupyter Notebook中添加交互式绘图?

  5. 5

    在 R 中创建交互式绘图

  6. 6

    Jupyter(IPython)笔记本中的交互式绘图,其可拖动点在拖动时会调用Python代码

  7. 7

    交互式python matplotlib

  8. 8

    交互式python matplotlib

  9. 9

    如何在Linux上的python脚本中使用matplotlib 1.5.1进行交互式绘图?

  10. 10

    python交互式绘图最新颜色的线条,其余为黑色

  11. 11

    使用 python 保存包含有关数据系列信息的交互式绘图

  12. 12

    在Spyder中,使用Matplotlib和交互式缩放等进行绘图

  13. 13

    如何在交互式RMarkdown中控制绘图高度/大小(使用Shiny)

  14. 14

    使用交互式绘图仅在Altair中缩放一个轴

  15. 15

    在C#中运行交互式python脚本

  16. 16

    python中的交互式shell程序包装器

  17. 17

    Eclipse中的PyDev交互式Python Shell

  18. 18

    在C#中运行交互式python脚本

  19. 19

    使用python在交互式openbash中运行命令

  20. 20

    从python中的用户输入逐行交互式编辑文件

  21. 21

    用于交互式IPython终端中的连续运行的Tensorflow Op命名

  22. 22

    用于交互式IPython终端中的连续运行的Tensorflow Op命名

  23. 23

    使用Fabric.js进行交互式绘图

  24. 24

    MATLAB:用于“绘制”绘图的交互式工具?

  25. 25

    使用 R 的组数据交互式绘图

  26. 26

    带有类别轴的交互式绘图与 Matplotlib

  27. 27

    交互式绘图后 matplotlib 没有响应

  28. 28

    更改熊猫绘图后端以获得交互式绘图,而不是matplotlib静态绘图

  29. 29

    防止SIGQUIT终止交互式python

热门标签

归档