【发布时间】:2020-11-22 19:50:52
【问题描述】:
我是编码新手,我正在尝试使用 Matplotlib 类创建一个 Tkinter 窗口,该窗口允许我在单独的窗口中操作描绘 4 家公司两年内股价的折线图,这是我的代码写过:
from tkinter import *
from matplotlib.backends.backend_tkagg import (FigureCanvasTkAgg,NavigationToolbar2Tk)
from matplotlib.backend_bases import key_press_handler
from matplotlib.figure import Figure
import pandas as pd
root = Tk ()
data = pd.read_csv('C:\\Users\\Admin\\Desktop\\shares.csv')
df = data.iloc[:,:5]
print(df)
print()
fig = Figure( figsize = (20,5) , dpi = 100 )
ax1 = fig.add_subplot()
df.plot('Date',figsize = (20,5), ax = ax1)
canvas = FigureCanvasTkAgg ( fig , root )
canvas.draw()
canvas.get_tk_widget().pack(side = TOP, fill = BOTH, expand = 1)
df.plot(kind = 'bar' , ax = ax1)
toolbar = NavigationToolbar2Tk(canvas, root)
toolbar.update()
canvas.get_tk_widget().pack(side = TOP, fill = BOTH, expand = 1)
def on_key(event):
print('You Pressed {}'.format(event.key))
key_press_handler(event, canvas, toolbar)
canvas.mpl_connect('key_press_event' , on_key)
def Quit():
root.quit()
root.destroy()
return
button = Button(root, text = 'QUIT' , command = Quit )
button.pack ()
root.mainloop()
这是我得到的输出:
而这是所需的图表:
对于如何解决此问题并改进我的代码,我将不胜感激。
谢谢:)
【问题讨论】:
-
只是说
root.destroy()就足够了,nd udh 可以返回任何东西我不认为,dis 是解决问题的方法,但它是一种改进 -
尝试从
df.plot(kind = 'bar' , ax = ax1)中删除kind = 'bar'。 -
@CoolCloud 谢谢你没有意识到,非常感谢,祝你有美好的一天!
-
@acw1668 是的,这是我的错误,谢谢!
标签: python pandas matplotlib tkinter graph