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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import tkinter as tk
class Principal(tk.Tk):
def __init__(self):
tk.Tk.__init__(self) #faut pas faire attention, c'est juste pour simplifier
container = tk.Frame(self) #création du frame dans lequel devrait s'afficher la carte des chaleurs
container.pack(side="top",fill="both",expand=True)
self.frame = Graphe(container) # test avec un graphe (classe Graphe)
self.frame.grid(row=0,column=0,sticky="nsew")
self.frame = Chaleur(container) #tentative d'afficher la carte de chaleur sur le frame
self.frame.grid(row=0,column=0,sticky="nsew")
#classe qui sert à rien, c'est juste pour tester
class Graphe(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Graphe")
label.pack(pady=10,padx=10)
f = Figure(figsize=(8,5), dpi=100)
a = f.add_subplot(111)
a.plot([1,2,3,4,5,6,7,8],[5,6,1,3,8,9,3,5])
canvas = FigureCanvasTkAgg(f, self)
canvas.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)
#classe pour afficher la carte de chaleur
class Chaleur(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self,parent) #initialisation du parent
label = tk.Label(self,text="Carte de chaleur")
label.pack(pady=10,padx=10)
f = Figure(figsize=(5,5), dpi=90)
matTest = [[1,30,2,20],[4,100,35,15],[10,60,12,28]] #matrice juste pour tester
c = f.add_subplot(111) #pour paramétrer le positionnement de c dans f
c = matplotlib.pyplot.imshow(matTest,cmap="hot") #création de la carte de chaleur
canvas = FigureCanvasTkAgg(f, self) #affichage sur un canvas
canvas.get_tk_widget().pack(side=tk.BOTTOM,fill=tk.BOTH,expand=True)
#boucle principale
appli = Principal()
appli.mainloop() |
Partager