一、设计要求
该项目创建一个数据分析软件,利用Tkinter和Matplotlib构建图形用户界面(GUI),读取和分析美迪电器销售有限公司销售数据。用户可以通过界面选择月份查看数据详情、生成销量图表并计算月总销量和年总销量。
二、设计思路
2. 模块引入
首先引入了所需的模块,包括Tkinter(用于GUI创建和管理)、ttk(Tkinter主题化控件)、messagebox(用于弹出消息框)、pandas(用于数据处理)和matplotlib.pyplot(用于绘图)。设置Matplotlib字体为SimHei以支持中文显示。
import tkinter as tk from tkinter import ttk from tkinter import messagebox import pandas as pd import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg plt.rcParams['font.sans-serif'] = ['SimHei']
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 美迪 ” 获取,拿来即用,只回复文字哦。👈👈👈
3. 读取数据
使用Pandas读取Excel文件中的数据,并存储在DataFrame对象df_09
中。指定openpyxl
引擎读取Excel文件。
df_09 = pd.read_excel('美迪电器销售有限公司销售收入.xlsx', engine='openpyxl')
4. Tkinter窗口初始化
创建主窗口,并设置窗口标题为“数据分析软件”。
app_09 = tk.Tk() app_09.title('数据分析软件')
5. 界面布局
标签
使用ttk创建标签,显示“月份数据分析”。
label.grid(row=0, column=0, columnspan=3, pady=10)
列表框
创建列表框,用于显示月份数据。通过遍历DataFrame的月份
列填充列表框。
listbox_09 = tk.Listbox(app_09, selectmode=tk.SINGLE, height=12) listbox_09.grid(row=1, column=0, rowspan=8, padx=10) # 代码略(至少十行)... # 代码略(至少十行)...
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 美迪 ” 获取,拿来即用,只回复文字哦。👈👈👈
文本框
创建文本框,用于显示选中月份的详细数据。
text_box_09 = tk.Text(app_09, height=12, width=30) text_box_09.grid(row=1, column=1, rowspan=8, padx=10)
按钮
创建按钮,用于显示选中月份的数据。按钮点击时调用display_data
函数,该函数从列表框获取选中月份的索引,并在文本框中显示详细数据。
def display_data(): selected_index = listbox_09.curselection() # 代码略(至少十行)... # 代码略(至少十行)... display_button = ttk.Button(app_09, text='显示数据', command=display_data) display_button.grid(row=9, column=0, columnspan=2, pady=10)
画布
创建Matplotlib画布,用于绘制折线图和柱状图的组合图。通过FigureCanvasTkAgg
将Matplotlib图嵌入Tkinter窗口。
fig, ax = plt.subplots(figsize=(6, 4), tight_layout=True) canvas = FigureCanvasTkAgg(fig, master=app_09) # 代码略(至少十行)... # 代码略(至少十行)...
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 美迪 ” 获取,拿来即用,只回复文字哦。👈👈👈
绘制图表按钮
创建按钮,用于绘制选中月份的折线图和柱状图的组合图。按钮点击时调用plot_graph
函数,该函数从列表框获取选中月份的数据,绘制图表并在画布上显示。
def plot_graph(): selected_index = listbox_09.curselection() if selected_index: selected_month = df_09.iloc[selected_index[0]] # 代码略(至少十行)... # 代码略(至少十行)... canvas.draw() plot_button = ttk.Button(app_09, text='绘制图表', command=plot_graph) plot_button.grid(row=9, column=3, pady=10)
统计年总销量按钮
创建按钮,用于统计年总销量。按钮点击时调用calculate_year_total
函数,该函数计算所有产品的年总销量,并弹出消息框显示结果。
def calculate_year_total(): # 代码略(至少十行)... # 代码略(至少十行)... year_button = ttk.Button(app_09, text='统计年总销量', command=calculate_year_total) year_button.grid(row=10, column=0, columnspan=2, pady=10)
统计月总销量按钮
创建按钮,用于统计选中月份的总销量。按钮点击时调用calculate_month_total
函数,该函数从列表框获取选中月份的数据,计算总销量并弹出消息框显示结果。
def calculate_month_total(): selected_index = listbox_09.curselection() # 代码略(至少十行)... # 代码略(至少十行)... month_button = ttk.Button(app_09, text='统计月总销量', command=calculate_month_total) month_button.grid(row=10, column=2, columnspan=2, pady=10)
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 美迪 ” 获取,拿来即用,只回复文字哦。👈👈👈
6. 运行主循环
最后,运行Tkinter主循环,保持窗口处于活动状态,等待用户交互。
app_09.mainloop()
总结
该代码通过Tkinter创建了一个数据分析软件,用户可以方便地通过界面查看和分析销售数据。各个功能模块独立且相互协作,界面布局简洁明了,用户体验友好。
三、可视化分析
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 美迪 ” 获取,拿来即用,只回复文字哦。👈👈👈