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