Python 可视化销售数据分析:使用 Matplotlib 和 Seaborn 创建图表
import matplotlib.pyplot as plt\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib\nmatplotlib.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 用来正常显示中文标签\nmatplotlib.rcParams['axes.unicode_minus'] = False # 用来正常显示负号\ndef plot_sales(data, group_col, category): # 设置日期为横坐标\n\n\n fig, ax = plt.subplots(4, 1, figsize=(14, 20))\n fig.tight_layout(pad=5.0)\n # 创建按月销售量的折线图\n monthly_sales = data.groupby('月份')['销量(千克)'].sum().reset_index()\n sns.lineplot(x='月份', y='销量(千克)', data=monthly_sales, ax=ax[0], label=category)\n ax[0].set_title(category + '每月销售量')\n ax[0].set_xlabel('月份')\n ax[0].set_ylabel('销量 (千克)')\n ax[0].legend()\n\n # 创建按季节销售量的折线图\n season_sales = data.groupby('季节')['销量(千克)'].sum().reset_index()\n sns.lineplot(x='季节', y='销量(千克)', data=season_sales, ax=ax[1], label=category)\n ax[1].set_title(category + '每季度销售量')\n ax[1].set_xlabel('季节')\n ax[1].set_ylabel('销售量 (千克)')\n ax[1].legend()\n\n # 创建按月销售量的直方图\n monthly_sales = data.groupby('月份')['销量(千克)'].sum().reset_index()\n sns.histplot(x='销量(千克)', data=monthly_sales, ax=ax[0], bins=30)\n ax[0].set_title(category + '每月销售量 - 直方图')\n ax[0].set_xlabel('销量 (千克)')\n\n # 创建按月销售量的箱线图\n sns.boxplot(x='销量(千克)', data=monthly_sales, ax=ax[1])\n ax[1].set_title(category + '每月销售量 - 箱线图')\n ax[1].set_xlabel('销量 (千克)')\n\n # 创建按季度销售量的直方图\n season_sales = data.groupby('季节')['销量(千克)'].sum().reset_index()\n sns.histplot(x='销量(千克)', data=season_sales, ax=ax[2], bins=30)\n ax[2].set_title(category + '每季度销售量 - 直方图')\n ax[2].set_xlabel('销量 (千克)')\n\n # 创建按季度销售量的箱线图\n sns.boxplot(x='销量(千克)', data=season_sales, ax=ax[3])\n ax[3].set_title(category + '每季度销售量 - 箱线图')\n ax[3].set_xlabel('销量 (千克)')\n fig.tight_layout()\n\n plt.show()\n\n# 从文件读取数据\ndf = pd.read_excel('合并1.xlsx')\n\n# 确保'Sales date'列为日期格式\ndf['销售日期'] = pd.to_datetime(df['销售日期'])\ndf['月份'] = df['销售日期'].dt.month\ndf['季节'] = (df['月份']-1)//3 + 1\n\n\n# 按日期、分类名称和单品名称进行分组,计算每天的总销售量\ncategory_sales_ts = df.groupby(['销售日期', '月份', '季节', '分类名称'])['销量(千克)'].sum().reset_ind\n整体分析该代码内容:该代码实现了一个函数plot_sales,用于对销售数据进行可视化分析。\n\n首先,代码从文件中读取数据,并将销售日期列转换为日期格式。然后,根据销售日期、月份和季节对数据进行分组,并计算每天的总销售量。\n\n接下来,函数使用matplotlib和seaborn库创建了一个包含4个子图的图表。每个子图分别展示了不同维度的销售量信息。\n\n第一个子图是按月份展示的销售量折线图,横坐标为月份,纵坐标为销量(千克)。该子图还包括一个图例,表示不同分类的销售量。\n\n第二个子图是按季节展示的销售量折线图,横坐标为季节,纵坐标为销量(千克)。同样地,该子图也包括一个图例。\n\n第三个子图是按月份展示的销售量直方图,横坐标为销量(千克),纵坐标为销售量频数。直方图用于展示销售量的分布情况。\n\n第四个子图是按月份展示的销售量箱线图,横坐标为销量(千克)。箱线图用于展示销售量的统计指标,如中位数、上下四分位数等。\n\n最后,函数通过调用plt.show()将图表显示出来。\n\n整体上,该代码实现了对销售数据的可视化分析,帮助用户更好地理解销售情况和趋势。
原文地址: http://www.cveoy.top/t/topic/nWHe 著作权归作者所有。请勿转载和采集!