tkinterのGUI上に画像を表示し、ボタンを押すことで別ウインドウでヒストグラムを表示したいと考えています。
コードは以下となります。
python
1# -- coding utf-8 -- 2import tkinter as tk 3from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg 4import numpy as np 5import matplotlib.pyplot as plt 6from PIL import Image 7 8 9def histgram(): 10 global img 11 fig_hist1 = plt.figure() 12 ax_hist1 = fig_hist1.add_subplot(111) 13 ax_hist1.hist(img.flatten(), bins=np.arange(256 + 1)) 14 plt.show() 15 16 17def main(): 18 global img 19 20 root = tk.Tk() 21 root.geometry("700x500") 22 root.title("test") 23 fig=plt.figure(figsize=(5, 5)) 24 25 ax = fig.add_subplot(111) 26 img = np.array(Image.open("111.png")) 27 ax.imshow(img) 28 29 Canvas = FigureCanvasTkAgg(fig, master=root) 30 Canvas.get_tk_widget().grid(row=0, column=3, rowspan=10) 31 32 ButtonWidth = 15 33 ImgButton1 = tk.Button(text="ヒストグラム", width=ButtonWidth, command=histgram) 34 ImgButton1.grid(row=1, column=0, columnspan=2) 35 36 root.mainloop() 37 38if __name__ == "__main__": 39 main()
しかし、以下のエラーが出ています。
python
1AttributeError: 'FigureCanvasTkAgg' object has no attribute 'manager' 2Figure.show works only for figures managed by pyplot, normally created by pyplot.figure().
もし、どなたか解決方法をご存知の方がいらっしゃいましたらご教授いただけると助かります。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/03 08:39