Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.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 tkinter程序中向前迭代图形?_Python_Pandas_Matplotlib_User Interface_Tkinter - Fatal编程技术网

如何在python tkinter程序中向前迭代图形?

如何在python tkinter程序中向前迭代图形?,python,pandas,matplotlib,user-interface,tkinter,Python,Pandas,Matplotlib,User Interface,Tkinter,我正在尝试制作一个程序,让人们可以假装他们在利用旧的股票记录操纵股票市场。我已经能够获得记录,显示信息,并实际进行一些简单的交易,但我还无法让程序向前迭代 现在,它打开了一个窗口,左侧有一个图形。右边有几个文本输入框和一个按钮,用来完成一轮交易。这一切都是可行的,但当用户按下按钮时,我无法让程序向前迭代。就像是在同一天发生的 我尝试过使用循环,但没有成功。新窗口没有取代旧窗口;它试图掩盖它,但没有成功。新窗户在旧窗户的右下方。该图形不接受新数据,它只是将x轴延伸过它 import tkinter

我正在尝试制作一个程序,让人们可以假装他们在利用旧的股票记录操纵股票市场。我已经能够获得记录,显示信息,并实际进行一些简单的交易,但我还无法让程序向前迭代

现在,它打开了一个窗口,左侧有一个图形。右边有几个文本输入框和一个按钮,用来完成一轮交易。这一切都是可行的,但当用户按下按钮时,我无法让程序向前迭代。就像是在同一天发生的

我尝试过使用循环,但没有成功。新窗口没有取代旧窗口;它试图掩盖它,但没有成功。新窗户在旧窗户的右下方。该图形不接受新数据,它只是将x轴延伸过它

import tkinter as tk
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

#import data from .csv files
AAPL = pd.read_csv('AAPL.csv', index_col=0)
NOK = pd.read_csv('NOK.csv', index_col=0)
AMD = pd.read_csv('AMD.csv', index_col=0)
GE = pd.read_csv('GE.csv', index_col=0)
MSFT = pd.read_csv('MSFT.csv', index_col=0)

stocks= pd.DataFrame()
stocks['AAPL']=AAPL['Close']
stocks['NOK']=NOK['Close']
stocks['AMD']=AMD['Close']
stocks['GE']=GE['Close']
stocks['MSFT']=MSFT['Close']

root=tk.Tk()
#starting conditions
past=1
present=30
wallet=100

def buttonpress():
    #number of each stock bought
    x1 = float(entry1.get())
    x2 = float(entry2.get())
    x3 = float(entry3.get())
    #money change after transaction
    stock1 = float(stocks['AAPL'][present+6:present+7]) -float(stocks['AAPL'][present-1:present])
    stock2 = float(stocks['NOK'][present+6:present+7]) -float(stocks['NOK'][present-1:present])
    stock3 = float(stocks['AMD'][present+6:present+7]) -float(stocks['AMD'][present-1:present])

    #output, the money gained and lost
    label1 = tk.Label(root, text=stock1*x1)
    label2 = tk.Label(root, text=stock2*x2)
    label3 = tk.Label(root, text=stock3*x3)
    #output placement
    canvas1.create_window(300, 100, window=label1)
    canvas1.create_window(300, 140, window=label2)
    canvas1.create_window(300, 180, window=label3)

#create graph when window opens
df1 = stocks[past:present]
figure1 = plt.Figure(figsize=(7, 6), dpi=100)
ax1 = figure1.add_subplot(111)
bar1 = FigureCanvasTkAgg(figure1, root)
bar1.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH)
df1.plot(kind='line', legend=True, ax=ax1)
legend = ax1.legend(loc='upper left')
ax1.xaxis.set_ticks(np.arange(past, present, (present-past)/5))
ax1.set_title('stocks')

canvas1 = tk.Canvas(root, width=400, height=300)
canvas1.pack()

# text inputs for the user
entry1 = tk.Entry(root)
entry2 = tk.Entry(root)
entry3 = tk.Entry(root)

canvas1.create_window(100, 100, window=entry1)
canvas1.create_window(100, 140, window=entry2)
canvas1.create_window(100, 180, window=entry3)
#labels
canvas1.create_text(200, 100, text='Apple')
canvas1.create_text(200, 140, text='Nokia')
canvas1.create_text(200, 180, text='AMD')



button1 = tk.Button(text='Get the Square Root', command=buttonpress)
canvas1.create_window(200, 240, window=button1)

root.mainloop()