Python 循环图表中刚选定的项目
我想创建一个@interact函数,它可以生成复选框中仅选定项的图形,但无法确定如何在循环中写入它 我编写的代码工作得“很好”,但如果我更改变量,则无法扩展Python 循环图表中刚选定的项目,python,python-3.x,anaconda,jupyter-lab,ipywidgets,Python,Python 3.x,Anaconda,Jupyter Lab,Ipywidgets,我想创建一个@interact函数,它可以生成复选框中仅选定项的图形,但无法确定如何在循环中写入它 我编写的代码工作得“很好”,但如果我更改变量,则无法扩展 col_list=list(df.columns.values)[0:[1:] 打印(列列表) lista=[] @交互(a=True,b=True,c=True,d=True,e=True,f=True,g=True,h=True,i=True) 定义g(a、b、c、d、e、f、g、h、i): 如果列[0]不在列表a中且a==真: 追加
col_list=list(df.columns.values)[0:[1:]
打印(列列表)
lista=[]
@交互(a=True,b=True,c=True,d=True,e=True,f=True,g=True,h=True,i=True)
定义g(a、b、c、d、e、f、g、h、i):
如果列[0]不在列表a中且a==真:
追加(列列表[0])
列表a中的elif col_列表[0]和a==False:
删除(列列表[0])
elif col_list[1]不在列表A中,且b==真:
追加(列列表[1])
列表A和b中的elif col_list[1]==False:
删除(列列表[1])
elif col_list[2]不在列表A中,c==True:
追加(列列表[2])
列表A中的elif col_list[2]和c==False:
删除(列列表[2])
elif col_list[3]不在列表A中,d==True:
追加(列列表[3])
列表A中的elif col_list[3]和d==False:
删除(列列表[3])
elif col_list[4]不在列表A中,且e==True:
追加(列列表[3])
列表A中的elif col_list[4]和e==False:
删除(列列表[3])
@互动
def sscale_图(Escala_Tiempo={'y','d','q','sm','m','w'}):
to_graphic=df[lista]。重新采样(Escala_Tiempo).max().plot()
然后我尝试了这种不起作用的方法:
col_list=list(df.columns.values)[0:[1:]
##打印(列列表)
lista=[]
数字=[0,1,2,3,4,5,6,7,8]
alpha=['a','b','c','d','e','f','g','h','i']
@交互(a=True,b=True,c=True,d=True,e=True,f=True,g=True,h=True,i=True)
定义g(a、b、c、d、e、f、g、h、i):
对于zip中的i,j(数字,alpha):
如果列[i]不在列表A中且j==True:
追加(列列表[i])
列表A中的elif col_list[i]和j==False:
删除(列列表[i])
返回列表a
打印(列表A)
@互动
def sscale_图(Escala_Tiempo={'y','d','q','sm','m','w'}):
to_graphic=df[lista]。重新采样(Escala_Tiempo).max().plot()
我可以通过这样编码来解决这个问题:
col_list = list(df.columns.values)[1:]
print('col_list',col_list)
@interact(a=True, b=True, c=True, d=True, e=True, f=True, g=True, h=True, i=True)
def g(a,b,c,d,e,f,g,h,i):
lista = []
number = [0,1,2,3,4,5,6,7,8]
alpha = [a,b,c,d,e,f,g,h,i]
for i,j in zip(number, alpha):
if col_list[i:i+1] not in lista and j == True:
lista.append(col_list[i:i+1])
elif col_list[i:i+1] in lista and j == False:
lista.remove(col_list[i:i+1])
print('lista',lista)
if lista == []:
lista.append(col_list)
flat_lista = []
for col in lista:
for y in col:
flat_lista.append(y)
##print(flat_lista)
@interact
def sscale_of_graph(Escala_Tiempo={'y','d','q','sm','m','w'}):
to_graphic = df[flat_lista].resample(Escala_Tiempo).median().ffill().plot(figsize=(25, 15),fontsize =14)