【问题标题】:Unable to get desired output in a Tkinter window for a line graph无法在折线图的 Tkinter 窗口中获得所需的输出
【发布时间】: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


【解决方案1】:

试试这个可能有用

df.plot(kind = 'line' , ax = ax1)

您正在绘制bar 并且您的预期输出是line 图表

【讨论】:

  • 谢谢你,它现在可以工作了,我的错误,祝你有美好的一天!
猜你喜欢
  • 2017-07-04
  • 1970-01-01
  • 2021-08-09
  • 2021-05-12
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
相关资源
最近更新 更多