一、设计要求
本项目旨在对商业销售数据进行全面分析和可视化,主要包括数据读取、数据处理及多种可视化图表生成。具体设计需求如下:
- 数据读取:
- 从三个不同的 Excel 文件中读取销售和会员数据。
- 确保数据正确加载,支持不同的工作表和文件格式。
- 数据处理:
- 数据预处理,包括日期格式转换和数据透视表生成。
- 处理文本和数值数据,确保后续分析的准确性。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 销售 ” 获取,拿来即用。👈👈👈
- 数据分析和可视化:
- 饼状图:
- 展示各推广渠道的订单数量占比,提供直观的市场营销效果分析。
- 展示会员购物次数分布,了解会员活跃度。
- 柱状图:
- 显示不同城市的订单数量,帮助识别高销量区域。
- 展示会员性别分布,分析会员群体特征。
- 折线图:
- 显示不同日期的销售总额变化趋势,了解销售季节性波动。
- 展示某一城市的销售趋势,提供针对性营销策略参考。
- 散点图:
- 显示不同城市的订单利润分布,分析区域市场表现。
- 显示年龄与购物总金额的关系,提供目标客户群体的消费行为洞察。
- 热力图:
- 展示各子分类的价格和利润相关性,优化产品定价策略。
- 展示 RFM 得分的热力图,帮助识别重要客户群体。
4.用户界面和交互:
- 使用
matplotlib
和seaborn
提供美观的图表。 - 配置中文字体和图表参数,确保中文显示正常。
- 提供清晰的图表标题和标签,增强图表的可读性和解释性。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 销售 ” 获取,拿来即用。👈👈👈
二、设计思路
代码设计思路分析
该代码旨在对商业销售数据进行分析和可视化。数据来源于三个 Excel 文件,分别包含不同的销售和会员信息。通过对这些数据进行处理和可视化分析,展示销售和会员的各项指标。以下是详细的设计思路分析:
1. 导入必要的库
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns
pandas
:用于读取和处理数据。matplotlib.pyplot
:用于绘制各种图表。seaborn
:用于增强图表的美观性和绘制复杂图表。
2. 配置 Matplotlib 以正常显示中文和负号
plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False
font.sans-serif
设置为SimHei
(黑体),确保能够显示中文字符。axes.unicode_minus
设置为False
,确保负号可以正常显示。
3. 读取数据
data1 = pd.read_excel('略...') data2 = pd.read_excel('略...') data3 = pd.read_excel('略...', sheet_name='会员数据信息')
- 使用
pandas
读取三个 Excel 文件,分别加载到data1
、data2
和data3
数据框中。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 销售 ” 获取,拿来即用。👈👈👈
4. 打印数据(用于调试)
print("Data1") print(data1.head()) print("Data2") print(data2.head()) print("Data3") print(data3.head())
- 打印每个数据框的前五行,确保数据读取正确。
5. 数据分析和可视化
5.1 饼状图:各推广渠道的订单数量占比
promotion_channels = data1['推广渠道'].value_counts() plt.figure(figsize=(10, 6)) plt.pie(promotion_channels, labels=promotion_channels.index, autopct='%1.1f%%', startangle=140) plt.title('各推广渠道的订单数量占比') plt.show()
- 统计
data1
中各推广渠道的订单数量,并生成饼状图显示其占比。
5.2 柱状图:不同城市的订单数量
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 销售 ” 获取,拿来即用。👈👈👈
cities = data2['城市'].value_counts() plt.figure(figsize=(12, 8)) cities.plot(kind='bar') plt.title('不同城市的订单数量') plt.xlabel('城市') plt.ylabel('订单数量') plt.show()
- 统计
data2
中不同城市的订单数量,并生成柱状图显示其分布。
5.3 折线图:不同日期的销售总额变化趋势
data2['订单日期'] = pd.to_datetime(data2['订单日期']) sales_trend = data2.groupby('订单日期')['价格'].sum() plt.figure(figsize=(14, 7)) sales_trend.plot(kind='line') plt.title('不同日期的销售总额变化趋势') plt.xlabel('日期') plt.ylabel('销售总额') plt.show()
- 将
data2
中的订单日期转换为日期格式,按日期汇总销售总额,并生成折线图显示其变化趋势。
5.4 散点图:不同城市的订单利润分布
plt.figure(figsize=(12, 8)) sns.scatterplot(data=data2, x='城市', y='利润') plt.title('不同城市的订单利润分布') plt.xlabel('城市') plt.ylabel('利润') plt.xticks(rotation=90) plt.show()
- 使用
seaborn
生成散点图,显示不同城市的订单利润分布。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 销售 ” 获取,拿来即用。👈👈👈
5.5 热力图:各子分类的价格和利润相关性
pivot_data = data2.pivot_table(values='利润', index='子分类', columns='价格', aggfunc='mean') plt.figure(figsize=(14, 10)) sns.heatmap(pivot_data, cmap='YlGnBu', annot=True, fmt=".1f") plt.title('各子分类的价格和利润相关性') plt.xlabel('价格') plt.ylabel('子分类') plt.show()
- 生成数据透视表,计算各子分类的平均利润,并生成热力图显示价格和利润的相关性。
5.6 饼状图:会员购物次数的分布
shopping_times = data3['购物次数/次'].value_counts() plt.figure(figsize=(10, 6)) plt.pie(shopping_times, labels=shopping_times.index, autopct='%1.1f%%', startangle=140) plt.title('会员购物次数分布') plt.show()
- 统计
data3
中会员的购物次数,并生成饼状图显示其分布。
5.7 柱状图:会员性别分布
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 销售 ” 获取,拿来即用。👈👈👈
gender_distribution = data3['性别'].value_counts() plt.figure(figsize=(10, 6)) gender_distribution.plot(kind='bar') plt.title('会员性别分布') plt.xlabel('性别') plt.ylabel('人数') plt.show()
- 统计
data3
中会员的性别分布,并生成柱状图显示其分布。
总结
- 数据读取:从三个 Excel 文件中读取数据,分别加载到三个数据框中。
- 数据打印:打印数据框的前几行,检查数据读取是否正确。
- 数据分析和可视化:
- 饼状图:展示各推广渠道的订单数量占比、会员购物次数分布。
- 柱状图:展示不同城市的订单数量、会员性别分布。
- 折线图:展示不同日期的销售总额变化趋势。
- 散点图:展示不同城市的订单利润分布。
- 热力图:展示各子分类的价格和利润相关性。
该代码通过对商业销售数据的多角度分析和可视化,帮助了解销售和会员的各项指标,具备清晰的结构和良好的可维护性。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 销售 ” 获取,拿来即用。👈👈👈
【python】python销售数据分析可视化(源码+论文+数据集)【独一无二】(下)