使用滑块在Python Matplotlib中更改函数参数
我正在做一个关于神经元的霍奇金-赫克斯利模型,想要创建一个滑块,这样可以通过改变一些固定的参数,比如最大导电性,来查看结果。我的图表是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这个对象。希望这些信息对你有用!