Я пытаюсь добавить цветную полосу к графику, который я строю в GUI, однако, хотя код работает без строки цветовой полосы кода, при попытке добавить цветную полосу появляется сообщение об ошибке Объект «AxesSubplot» не имеет атрибута «get_array». Я пытался найти решение, но я не смог понять, что я делал неправильно. Любая помощь будет принята с благодарностью.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import numpy as np
import tkinter as tk
a = np.array([2,-3,4,-2,1,2,4,3,5])
a = a.reshape(3,3)
class Graph:
#Draws and return a placeholder for a graph
#@param parent is the Tk.Frame parent obj
#@param title is the (string) title for the graph
def __init__(self, parent, title=''):
#Initialise graph
self.title = title
self.fig = Figure(figsize=(4,4))
self.plot = self.fig.add_subplot()
self.plot.set_title(self.title)
self.plot.set_ylim(top=1)
self.plot.set_xlim(right=255)
self.plot.set_ylabel("Certainty")
self.plot.set_xlabel("Pixel Value")
#Draw
self.canvas = FigureCanvasTkAgg(self.fig, master=parent)
self.canvas.get_tk_widget().pack()
self.canvas.draw()
return
def plotMaxDistHeat(self, maxDistMatrix):
#Clear previous plot
self.plot.clear()
#Plot new results
self.plot.set_title(self.title)
self.plot.imshow(maxDistMatrix, cmap='coolwarm')
self.fig.colorbar(self.plot)
#Draw Graph
self.canvas.draw()
root = tk.Tk()
canvas = tk.Canvas(bg='red')
canvas.pack()
graph = Graph(canvas, title='Test Graph')
graph.plotMaxDistHeat(a)
tk.mainloop()