Python 语言 用 Pandas+Pyecharts 制作门店销售额动态排名榜 水球图

Python阿木 发布于 1 天前 1 次阅读


Python 使用 Pandas 和 Pyecharts 制作门店销售额动态排名榜(水球图)

在商业分析中,门店销售额的动态排名对于了解市场趋势和优化销售策略至关重要。本文将介绍如何使用 Python 的 Pandas 和 Pyecharts 库来制作一个门店销售额动态排名榜,其中我们将使用水球图(也称为气泡图)来展示数据。

准备工作

在开始之前,请确保您已经安装了以下 Python 库:

- Pandas
- Pyecharts

您可以使用以下命令安装这些库:

bash
pip install pandas pyecharts

数据准备

我们需要一些示例数据来展示如何制作动态排名榜。以下是一个简单的数据集,包含门店ID、销售额和日期:

python
import pandas as pd

示例数据
data = {
'门店ID': ['M1', 'M2', 'M3', 'M4', 'M5'],
'销售额': [12000, 15000, 18000, 13000, 16000],
'日期': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05']
}

创建 DataFrame
df = pd.DataFrame(data)

数据处理

在绘制图表之前,我们需要对数据进行一些处理,例如计算每日的销售额排名。

python
按日期分组并计算每日的销售额排名
daily_sales = df.groupby('日期')['销售额'].sum().reset_index()
daily_sales['排名'] = daily_sales['销售额'].rank(method='min', ascending=False).astype(int)

创建水球图

接下来,我们将使用 Pyecharts 创建水球图。我们需要定义水球图的数据格式,然后使用 Pyecharts 的 `Bubble` 类来绘制图表。

python
from pyecharts.charts import Bubble
from pyecharts import options as opts

定义水球图的数据
bubble_data = [
{"name": f"门店 {i}", "value": [daily_sales['排名'][i], daily_sales['销售额'][i], 1]}
for i in range(len(daily_sales))
]

创建水球图实例
bubble = Bubble(init_opts=opts.InitOpts(width="1600px", height="800px"))

添加数据
bubble.add_xaxis(daily_sales['日期'])
bubble.add_yaxis("门店销售额排名", bubble_data)

设置全局配置项
bubble.set_global_opts(
title_opts=opts.TitleOpts(title="门店销售额动态排名榜"),
visualmap_opts=opts.VisualMapOpts(max_=len(daily_sales), is_piecewise=True),
)

渲染图表到 HTML 文件
bubble.render("bubble_chart.html")

动态更新图表

为了使图表动态更新,我们可以使用 JavaScript 来添加交互性。以下是如何使用 Pyecharts 的 `JSDynamicType` 来实现动态更新的示例:

python
from pyecharts import options as opts
from pyecharts.charts import JSDynamicType

创建动态类型实例
dynamic_type = JSDynamicType(
trigger="axis",
start="2021-01-01",
end="2021-01-05",
interval="1d",
series_index=0,
axis_index=0,
)

将动态类型添加到水球图实例
bubble.add_js_dynamic_type(dynamic_type)

重新渲染图表到 HTML 文件
bubble.render("bubble_chart_dynamic.html")

总结

通过以上步骤,我们使用 Pandas 和 Pyecharts 成功创建了一个门店销售额动态排名榜的水球图。这个图表不仅展示了每日的销售额排名,还通过动态更新功能提供了交互性,使得用户可以查看不同日期的排名情况。

在实际应用中,您可以根据需要调整数据源、图表样式和交互功能,以适应不同的业务需求。希望本文能帮助您更好地理解和应用 Pandas 和 Pyecharts 制作动态排名榜。