AttributeError: объект int не имеет атрибута _process_projection_requirements при использовании Matplotlib и Tkinter - PullRequest
1 голос
/ 12 июля 2020

Я новичок в 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.

Надеюсь, я смогу найти несколько советов о том, как исправить это и улучшить свой код.

Спасибо.

...