双11数据洞察:Pyecharts与Matplotlib绘制价格对比与动态饼图指南

双11数据洞察:Pyecharts与Matplotlib绘制价格对比与动态饼图指南

双11作为全球最大的购物狂欢节,每年都会产生海量的交易数据。对于商家和数据分析师而言,如何从这些数据中提取有价值的信息,并通过直观的可视化方式呈现出来,是提升决策效率的关键。本文将详细介绍如何使用Pyecharts与Matplotlib两大Python库,绘制双11商品价格对比图及动态饼图,帮助读者更好地理解和分析销售数据。

一、Pyecharts与Matplotlib简介

1.1 Pyecharts

Pyecharts是一个基于Echarts的Python可视化库,它提供了丰富的图表类型,包括柱状图、折线图、饼图、散点图等,且支持动态交互效果。Pyecharts的API设计简洁明了,易于上手,非常适合快速构建交互式数据可视化应用。

1.2 Matplotlib

Matplotlib是Python中最基础的数据可视化库之一,它提供了丰富的绘图函数和工具,支持多种图表类型的绘制。Matplotlib的灵活性高,但相对于Pyecharts,其交互性较弱,更适合静态图表的生成。

二、商品价格对比图绘制

2.1 数据准备

首先,我们需要准备双11期间不同商品的价格数据。假设我们有以下三个商品的价格信息:

  1. import pandas as pd
  2. data = {
  3. '商品': ['手机', '笔记本', '耳机'],
  4. '原价': [3999, 5999, 299],
  5. '双11价': [2999, 4999, 199]
  6. }
  7. df = pd.DataFrame(data)

2.2 使用Matplotlib绘制价格对比图

Matplotlib提供了bar函数,可以方便地绘制柱状图。以下是一个简单的示例:

  1. import matplotlib.pyplot as plt
  2. # 设置中文字体
  3. plt.rcParams['font.sans-serif'] = ['SimHei']
  4. plt.rcParams['axes.unicode_minus'] = False
  5. # 绘制原价和双11价的柱状图
  6. x = range(len(df['商品']))
  7. width = 0.35
  8. fig, ax = plt.subplots()
  9. rects1 = ax.bar([i - width/2 for i in x], df['原价'], width, label='原价')
  10. rects2 = ax.bar([i + width/2 for i in x], df['双11价'], width, label='双11价')
  11. # 添加标签、标题和自定义x轴标签
  12. ax.set_ylabel('价格(元)')
  13. ax.set_title('双11商品价格对比')
  14. ax.set_xticks(x)
  15. ax.set_xticklabels(df['商品'])
  16. ax.legend()
  17. plt.show()

这段代码首先设置了中文字体,然后使用bar函数分别绘制了原价和双11价的柱状图,并通过legend函数添加了图例。

2.3 使用Pyecharts绘制价格对比图

Pyecharts的语法更加简洁,且支持动态交互效果。以下是一个使用Pyecharts绘制价格对比图的示例:

  1. from pyecharts.charts import Bar
  2. from pyecharts import options as opts
  3. bar = (
  4. Bar()
  5. .add_xaxis(df['商品'].tolist())
  6. .add_yaxis("原价", df['原价'].tolist())
  7. .add_yaxis("双11价", df['双11价'].tolist())
  8. .set_global_opts(
  9. title_opts=opts.TitleOpts(title="双11商品价格对比"),
  10. yaxis_opts=opts.AxisOpts(name="价格(元)"),
  11. )
  12. )
  13. bar.render("price_comparison.html")

这段代码使用Bar类创建了一个柱状图,并通过add_xaxisadd_yaxis方法添加了x轴和y轴的数据。最后,通过render方法将图表渲染为一个HTML文件。

三、动态饼图绘制

3.1 数据准备

假设我们需要展示双11期间不同品类的销售额占比。以下是一个简单的数据集:

  1. category_data = {
  2. '品类': ['电子产品', '服装', '家居用品', '食品'],
  3. '销售额': [45000, 30000, 15000, 10000]
  4. }
  5. df_category = pd.DataFrame(category_data)

3.2 使用Matplotlib绘制静态饼图

Matplotlib的pie函数可以方便地绘制饼图。以下是一个简单的示例:

  1. plt.figure(figsize=(8, 6))
  2. plt.pie(df_category['销售额'], labels=df_category['品类'], autopct='%1.1f%%')
  3. plt.title('双11品类销售额占比')
  4. plt.show()

这段代码使用pie函数绘制了一个静态饼图,并通过autopct参数显示了每个品类的销售额占比。

3.3 使用Pyecharts绘制动态饼图

Pyecharts不仅支持静态饼图的绘制,还支持动态交互效果。以下是一个使用Pyecharts绘制动态饼图的示例:

  1. from pyecharts.charts import Pie
  2. pie = (
  3. Pie()
  4. .add("", [list(z) for z in zip(df_category['品类'], df_category['销售额'])])
  5. .set_global_opts(title_opts=opts.TitleOpts(title="双11品类销售额占比"))
  6. .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)"))
  7. )
  8. pie.render("sales_pie_chart.html")

这段代码使用Pie类创建了一个饼图,并通过add方法添加了数据。set_series_opts方法用于设置标签的显示格式,其中{b}表示品类名称,{c}表示销售额,{d}%表示占比百分比。最后,通过render方法将图表渲染为一个HTML文件。

四、总结与建议

通过本文的介绍,我们了解了如何使用Pyecharts与Matplotlib两大Python库绘制双11商品价格对比图及动态饼图。Pyecharts以其简洁的API和丰富的交互效果,非常适合快速构建交互式数据可视化应用;而Matplotlib则以其高度的灵活性和丰富的绘图函数,更适合静态图表的生成。

对于商家和数据分析师而言,掌握这些数据可视化工具,可以帮助他们更好地理解和分析销售数据,从而做出更明智的决策。在实际应用中,可以根据具体需求选择合适的库和图表类型,以达到最佳的可视化效果。

此外,建议读者在掌握基础用法的基础上,进一步探索这些库的高级功能,如自定义主题、添加动画效果等,以提升数据可视化的专业性和吸引力。