import tensorflow as tf import numpy as np import tkinter as tk from tkinter import filedialog import time import pandas as pd import stock_predict as pred def creat_windows(): win = tk.Tk() # 创建窗口 sw = win.winfo_screenwidth() sh = win.winfo_screenheight() ww, wh = 800, 450 x, y = (sw - ww) / 2, (sh - wh) / 2 win.geometry("%dx%d+%d+%d" % (ww, wh, x, y - 40)) # 居中放置窗口 win.title('LSTM股票预测') # 窗口命名 f_open =open('dataset_2.csv') canvas = tk.Label(win) canvas.pack() var = tk.StringVar() # 创建变量文字 var.set('选择数据集') tk.Label(win, textvariable=var, bg='#C1FFC1', font=('宋体', 21), width=20, height=2).pack() tk.Button(win, text='选择数据集', width=20, height=2, bg='#FF8C00', command=lambda: getdata(var, canvas), font=('圆体', 10)).pack() canvas = tk.Label(win) L1 = tk.Label(win, text="选择你需要的 列(请用空格隔开,从0开始)") L1.pack() E1 = tk.Entry(win, bd=5) E1.pack() button1 = tk.Button(win, text="提交", command=lambda: getLable(E1)) button1.pack() canvas.pack() win.mainloop() def getLable(E1): string = E1.get() print(string) gettraindata(string) def getdata(var, canvas): global file_path file_path = filedialog.askopenfilename() var.set("注,最后一个为label") # 读取文件第一行标签 with open(file_path, 'r', encoding='gb2312') as f: # with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() # 读取所有行 data2 = lines[0] print() canvas.configure(text=data2) canvas.text = data2 def gettraindata(string): f_open = open(file_path) df = pd.read_csv(f_open) # 读入股票数据 list = string.split() print(list) x = len(list) index=[] # data = df.iloc[:, [1,2,3]].values # 取第3-10列 (2:10从2开始到9) for i in range(x): q = int(list[i]) index.append(q) global data data = df.iloc[:, index].values print(data) main(data) def main(data): pred.LSTMtest(data) var.set("预测的结果是:" + answer) if __name__ == "__main__": creat_windows()这个代码能实现什么功能
时间: 2023-12-02 08:05:18 浏览: 141
这个代码实现了一个简单的GUI界面,可以让用户选择一个股票数据集,选择需要的列,然后用LSTM模型对这些列进行预测,并在界面上展示预测结果。具体来说,该代码使用了Tkinter库创建了一个窗口,其中包括一个按钮用于选择数据集,一个标签用于展示数据集的列名,以及一个文本框用于让用户输入需要的列。当用户点击提交按钮后,程序会读取用户输入的列号,并使用Pandas库读取该数据集,提取用户选择的列,再使用stock_predict.py文件中的LSTM模型对这些列进行预测,并在界面上展示预测结果。
相关问题
import time import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler import numpy as np import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout import tkinter as tk from tkinter import ttk from sklearn.neural_network import MLPClassifier from sklearn.preprocessing import StandardScaler from tkinter.messagebox import showinfo # pip install pyserial import serial import serial.tools.list_ports from main import MyClass if __name__ == '__main__': detect = MyClass() def collect_data_click(): detect.on_collect_data_click()
这段代码看起来是一个 Python 脚本,主要包括以下几个部分:
1. 导入需要的库:time、pandas、sklearn、numpy、tensorflow、tkinter、serial 等。
2. 从 tensorflow.keras 中导入 Sequential 和 Dense 两个类,用于搭建神经网络模型。
3. 定义了一个名为 `MyClass` 的类,并创建了一个 `detect` 实例。
4. 定义了一个名为 `collect_data_click()` 的函数,该函数调用了 `detect` 实例的 `on_collect_data_click()` 方法。
其中,`detect` 实例似乎是一个自定义的类对象,`on_collect_data_click()` 方法可能用于启动数据采集。如果需要更详细的分析,建议查看 `MyClass` 类和 `on_collect_data_click()` 方法的源代码。
import cv2 import numpy as np import tkinter as tk from tkinter import * from tkinter import filedialog from PIL import ImageTk, Image import matplotlib.pyplot as plt class ImageProcessor: def __init__(self): self.image = None self.roo
这段代码是一个图像处理类的初始化函数,其中包含了一些常用的导入库和变量:
- 导入OpenCV库,用于图像处理;
- 导入NumPy库,用于数组运算;
- 导入Tkinter库,用于GUI界面;
- 导入Pillow库中的ImageTk和Image模块,用于图像的读取和显示;
- 导入matplotlib库中的pyplot模块,用于图像的绘制。
在初始化函数中,首先定义了一个self.image变量,用于存储图像数据。然后通过Tkinter库创建一个窗口,并设置窗口的大小和标题。接着调用OpenCV库中的cv2.namedWindow()函数创建一个图像窗口,并设置窗口名称。最后调用Tkinter库中的pack()函数将创建的窗口显示在屏幕上。
阅读全文