我正在研究一个神经元的霍奇金-赫胥利模型,我喜欢创建一个滑块来查看通过改变一些固定参数(如最大电导)产生的结果。这个图是V vs 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)
关键是,我可以创建滑块,但是当我使用它时,绘图中没有任何变化
这个例子适合你吗?
他们提出的建议与你所做的类似,但有以下不同之处:
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对象。我希望这是一些使用!