Используйте al oop для построения n диаграмм и легенды Python - PullRequest
0 голосов
/ 12 марта 2020

Я свободный sh пользователь Python, поэтому я занимаюсь практикой. Мои знания ограничены. Я сделал приложение, которое получает данные Excel и выполняет некоторые функции модуля pandas с plot. Для plot, с помощью combobox, я хочу добавить кривые в график, у меня нет проблем с этим. Однако legend показывает одну отсутствующую кривую каждый раз. Я проверил с print и список выбранных столбцов для правильной кривой. Другая проблема, я хотел бы показать эти кривые на subplots,, но я не смог сделать это. Я получил эту ошибку: cannot convert the series to <class 'int'>. Я пробовал некоторые новые вещи, но без работы.

enter image description here

path = filedialog.askopenfilename(initialdir="D:\GIS\Python_Pro", title="Select a file", filetypes=(
    ("xlsx files", "*.xlsx"), ("xls files", "*.xlsx"), ("cvs files", "*.cvs"), ("All Files", "*.*")))
select_split = path.split("/")
excel_file = select_split[-1].split(".")
excel_name = excel_file[0]
df_la = pd.read_excel(path)
header_cols = list(df_la.columns)

Label_plot_type=Label(frm_btn,text="Plot Type")
Label_plot_type.grid(row=0,column=0,sticky="nsew")
sec=["Line","Scatter","Bar","Pie","Histogram","Dotplot","Area",""]
comboplottype = Combobox(frm_btn, values=sec)
comboplottype.grid(row=1, column=0, sticky="nsew")

Label_plot = Label(frm_btn, text="Plot Curves")
Label_plot.grid(row=2, column=0, sticky="nsew")

combo_curve1=Combobox(frm_btn,values=header_cols)
combo_curve1.grid(row=3,column=0,sticky="nsew")

lst = []
colours = ['r', 'g', 'b', 'k']

def curves():
    lst.append(str(combo_curve1.get()))
    print(lst)

def graph():
    global a
    a = 0
    if comboplottype.get() == 'Line':
        add_btn = Button(frm_btn, text="add", command=curves,state=DISABLED)
        add_btn.grid(row=4, column=0, sticky="nsew")

        for i in lst:
            print(lst)
            plt.legend(lst)
            plt.plot(df_la[i],colours[a])
            a+=1

        plt.show(block=TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...