Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环图表中刚选定的项目_Python_Python 3.x_Anaconda_Jupyter Lab_Ipywidgets - Fatal编程技术网

Python 循环图表中刚选定的项目

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==真: 追加

我想创建一个@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==真:
追加(列列表[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)