我要实现的是自动从文件中绘制数据,以下是我的想法:
这是我的代码的简单版本:
import matplotlib.pyplot as plt
import tkinter as tk
def read_files():
import tkinter.filedialog as tkf
filePath = tkf.askopenfilenames()
with open(filePath, 'r') as file:
content = file.read()
# after some lines of code, get data from content
# data[0] and data[1] are x and y, respectively
return data
def plot_data():
data = read_files()
plt.figure()
plt.plot(data[0], data[1])
plt.show()
#simple GUI
root.tk()
btn = tk.Button(root, ...(some args), command=plot_data)
btn.pack()
root.mainloop()
我的代码工作正常,可以读取文件和绘图数据,但这是问题所在:每次选择文件后单击“打开”,文件对话框都不会关闭,并且一个奇怪的窗口显示“不本地化”提示我的数据图,如图所示。
应该注意,如果我注释掉plt.show()并仅打印数据,则该警告消失。
def plot_data():
data = read_files()
plt.figure()
plt.plot(data[0], data[1])
#plt.show()
print(data)
我希望我能说清楚自己,如何摆脱这个烦人的窗户?
答案 0 :(得分:0)
只需在import matplotlib
下方和import matplotlib.xxx
上方添加一行代码即可解决问题:
import matplotlib
matplotlib.use("TkAgg") # Add in here
import matplotlib.pyplot as plt