Я новичок в Python, и в настоящее время я пытаюсь создать гистограмму Matplotlib, встроенную в Tkinter GUI, с панелью инструментов навигации. Это код, который я написал.
from tkinter import *
import matplotlib.pyplot as plt
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 ()
# root.wn_title ('SAMPLE')
total_cases = pd.read_csv('c:\\Users\\vish\\Downloads\\total_cases.csv')
p1= plt.plot(total_cases , kind = 'bar')
fig = Figure( figsize = (5,4) , dpi = 100 )
ax = Figure.add_subplot (111).plot(p1)
canvas = FigureCanvasTkAgg ( fig , root )
canvas.draw()
canvas.get_tk_widget().pack(side = TOP, fill = BOTH, expand = 1)
total_cases.plot(kind = 'bar')
ax.set_title('Total Corona Cases')
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 (BOTTOM)
root.mainloop()
При запуске я получаю следующее сообщение об ошибке «AttributeError: объект 'int' не имеет атрибута '_process_projection_requirements'
runfile('C:/Users/vish/Desktop/tkinter graph.py', wdir='C:/Users/vish/Desktop')
Traceback (most recent call last):
File "C:\Users\vish\Desktop\tkinter graph.py", line 28, in <module>
ax = Figure.add_subplot(111).plot(p1)
File "C:\Users\vish\anaconda3\lib\site-packages\matplotlib\figure.py", line 1396, in add_subplot
self._process_projection_requirements(*args, **kwargs)
AttributeError: 'int' object has no attribute '_process_projection_requirements'
Выше полное сообщение об ошибке.
Я использую Spyder в качестве своей IDE.
Надеюсь, я смогу найти несколько советов о том, как исправить это и улучшить свой код.
Спасибо.