我有一个修改绘图的简单小部件,这里是定义:
#Plot function
def plf(x,lm,ls):
plt.plot(x[lm:ls],np.sin(x)[lm:ls])
此函数采用列表x
绘图sin(x)
,lm
和ls
控制绘制的数据数量,问题是当我尝试绘制a时确定的数据列表,例如
list = [1,2,3,4,5,6,7,8,9]
如果我尝试
interact(plf,x=list,lm=(0,max(x)//2,1),ls=(max(x)//2,max(x),1))
将错误抛给我:
NameError: name 'x' is not defined
那么,我如何定义x
所以它可以是我想要的任何列表?
答案 0 :(得分:2)
这是你想要做的吗?
%matplotlib inline
from IPython.html.widgets import interact, fixed
import matplotlib.pyplot as plt
import numpy as np
def plf(x,lm,ls):
plt.plot(x[lm:ls],np.sin(x)[lm:ls])
data = [1,2,3,4,5,6,7,8,9]
max_lm = max(data)//2
max_ls = max(data)
interact(plf,x=fixed(data),lm=(0,max_lm,1),ls=(max_lm, max_ls,1))