【发布时间】:2018-08-28 14:27:36
【问题描述】:
如果我运行以下程序,我将无法运行:
import tkinter as tk
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image, ImageTk
##MATPLOTLIB STUFF --------------------------------------------
fig, ax = plt.subplots(figsize = (5,5))
x = np.arange(10)
y = np.random.randn(10)
ax.plot(x,y)
fig.savefig('image1.png', bboxtoinches = 'tight')
##PIL STUFF --------------------------------------------------
root = tk.Tk()
graph = ImageTk.PhotoImage(file="image1.png")
w1 = tk.Label(root, image=graph).pack(side='right')
explanation = "A matplotlib plot"
w2 = tk.Label(root, justify=tk.LEFT, padx=10,
text=explanation).pack(side='left')
root.mainloop()
但如果我删除 matplotlib 的东西并运行,它会起作用
import tkinter as tk
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image, ImageTk
##PIL STUFF --------------------------------------------------
root = tk.Tk()
graph = ImageTk.PhotoImage(file="image1.png")
w1 = tk.Label(root, image=graph).pack(side='right')
explanation = "A matplotlib plot"
w2 = tk.Label(root, justify=tk.LEFT, padx=10,
text=explanation).pack(side='left')
root.mainloop()
事实上,似乎导致问题的行是
fig, ax = plt.subplots(figsize = (5,5))
如果我确实包含此行,则会收到以下错误:
Traceback (most recent call last):
File "proj_1_images.py", line 20, in <module>
w1 = tk.Label(root, image=graph).pack(side='right')
File "C:\Users\Luke Polson\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 2760, in __init__
Widget.__init__(self, master, 'label', cnf, kw)
File "C:\Users\Luke Polson\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 2293, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: image "pyimage10" doesn't exist
为什么 matplotlib 会导致这个错误?
【问题讨论】:
标签: python matplotlib tkinter python-imaging-library