adef keshihuatxtwindow textdelete10END fig ax = pltsubplots axhisty_train bins=20 axset_xlabel axset_ylabelmanyidu axset_titleHistogram histogram_window = Toplevelroot canvas =
以下是完整的代码实现:
import matplotlib.pyplot as plt from tkinter import * from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
def adef_keshihua(txt, window): text.delete('1.0', END) y_train = [0.724116199, 2.285849418, 0.292243314, 2.895797676, 0.438462215, 1.543319689, 1.169727273, 0.766681439, 0.769798934, 0.440894989, 2.10413745, 2.013255745, 0.781939731, 0.306292184, 0.438392904, 1.665304082, 1.156816479, 1.169240272, 1.563880105, 1.634383048, 1.916477293] fig, ax = plt.subplots() ax.hist(y_train, bins=20) ax.set_xlabel('') ax.set_ylabel('manyidu') ax.set_title('Histogram') histogram_window = Toplevel(root) canvas = FigureCanvasTkAgg(fig, master=histogram_window) canvas.draw() canvas.get_tk_widget().pack() toolbar = NavigationToolbar2Tk(canvas, histogram_window) toolbar.update() canvas.get_tk_widget().pack()
创建主窗口
root = Tk() root.title('数据可视化')
创建文本框和按钮
text = Text(root, height=10, width=50) text.pack() btn = Button(root, text='绘制直方图', command=lambda: adef_keshihua(text, root)) btn.pack()
进入消息循环
root.mainloop()
解释一下代码:
-
首先,我们定义了一个函数adef_keshihua,它可以接收两个参数,一个是文本框,另一个是窗口。
-
我们写出了y_train数据的列表。
-
我们使用matplotlib库创建一个直方图,并将其绘制在一个Tkinter窗口上。
-
最后,我们定义了一个主窗口,并在其中创建了一个文本框和一个按钮。当用户点击按钮时,我们将调用adef_keshihua函数,绘制直方图并显示在一个新窗口中。
-
我们进入了主消息循环,这使得我们的应用程序可以响应用户的操作
原文地址: http://www.cveoy.top/t/topic/fNAN 著作权归作者所有。请勿转载和采集!