Как отобразить извлечение графика matplotlib из файла excel в tkinter windows python - PullRequest
0 голосов
/ 08 мая 2020

Я хотел бы использовать свои данные из Excel, чтобы нарисовать график и отобразить его на Tkinter windows. но я не мог и не знаю, как это сделать. Я ищу во многих местах, у меня есть только примеры, показывающие данные из кода. вот мой код:

здесь файл Excel скачать здесь

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

df= pd.read_excel (r'C:\Users\evil4ever\Desktop\acheraf\project\projetCorona.xlsx') 
tab1=df[0:31]

#Dates=['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31']
Dates = []
for i in range(1,32):
    Dates.append(str(i))


Values=tab1['Cas confirmés']#rmorocco
Values2=tab1['RABAT.SALE.KENITRA']#rabat

f=plt.Figure(figsize=(9,5), dpi=100)

plt.xlabel('days of March')
plt.ylabel('Confirmed cases')
plt.title('Confirmed Cases in March RABAT.SALE.KENITRA ')
plt.bar(Dates,Values,label='all morocco',color='r')
plt.bar(Dates,Values2,label='RABAT.SALE.KENITRA',color='c')
a=f.add_subplot(111)
root= tk.Tk()
canvas=FigureCanvasTkAgg(f, root)

canvas.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
root.mainloop()

объясните проблему: когда я запускаю программа показывает это windows посмотрите это изображение

, и график отображается здесь, на этом изображении после кода, показывающего график, который я хочу отобразить на windows нет

после этой строки: a = f.add_subplot (111) я добавляю a.plot ([1,2,3,4,5,6,7,8] , [5,6,1,3,8,9,3,5]) показывает что-то в windows

Я много ищу в течение 3 дней без какого-либо решения.

1 Ответ

1 голос
/ 08 мая 2020

Используйте Figure вместо pyplot при объединении matplotlib с tkinter. См. этот для официального образца.

import tkinter as tk
import pandas as pd
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

df = pd.DataFrame({"Name":list("ABCD"),"Value":[1,2,3,4,]})
#df = pd.read_excel (r'C:\Users\evil4ever\Desktop\acheraf\project\projetCorona.xlsx') 

f = Figure(figsize=(9,5), dpi=100)

ax = f.add_subplot(111)

ax.set_xlabel('days of March')
ax.set_ylabel('Confirmed cases')
ax.set_title('Confirmed Cases in March RABAT.SALE.KENITRA')

df.plot(kind="bar",ax=ax)

root= tk.Tk()
canvas=FigureCanvasTkAgg(f, root)

canvas.get_tk_widget().pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...