使用滑块在Python Matplotlib中更改函数参数

1 投票
1 回答
4827 浏览
提问于 2025-04-17 22:08

我正在做一个关于神经元的霍奇金-赫克斯利模型,想要创建一个滑块,这样可以通过改变一些固定的参数,比如最大导电性,来查看结果。我的图表是V和t的关系,V和t都是数组,V是通过一个包含我想调整的参数的迭代计算出来的。

经过一段时间,我创建了一个滑块,但我无法让它改变定义的参数。我看到一些例子中使用了set_ydata,但他们提供的是完整的Y轴函数作为参数,而我觉得在我的情况下这不太可能。

这是我计算V的方式,前面的参数是我想改变的,最后一部分是滑块:

#Modelo de Hodgkin-Huxley


import pylab as pl
import numpy as np

A = 1

  for i in range(1,len(time)):
    dV= A*V[i-1]
    V[i] = V[i-1]+dV
pl.clf()
pl.subplot(311)
pl.title('Hodgkin-Huxley Model')
l, = pl.plot(time,V)

def update(val):
    l.set_ydata(V)
    A = sA.val

axA = pl.axes([0.13, 0.02, 0.75, 0.02])
sA = pl.Slider(axA, "A", 0, 200, valinit=A, color='#AAAAAA')
sA.on_changed(update)

问题是,我可以创建滑块,但当我使用它时,图表上什么都没有变化。

1 个回答

1

这个例子对你有帮助吗?(可以看看评分最高的回答)

他们提出的方案和你做的有点相似,但有一些不同之处:

from pylab import *
from matplotlib.widgets import Slider

#define the plot objects
#TODO

#define the update method
def update(val):
   #do your update here
   pass

#create the slider
samp = Slider(axamp, 'Amp', 0.1, 10.0, valinit=a0)
samp.on_changed(update)

你那段代码可能不工作的原因是因为你没有直接导入Slider这个对象。希望这些信息对你有用!

撰写回答