【数据可视化】巅峰对决!格力电器与美的集团,16年营收数据碰撞出怎样的火花:Python + Pyecharts打造炫酷数据大屏

195 阅读11分钟

🧑 博主简介:曾任某智慧城市类企业算法总监,CSDN / 稀土掘金 等平台人工智能领域优质创作者。

目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。


一、引言

在家电行业,美的和格力一直是两大巨头,它们的营业总收入不仅反映了各自的发展态势,也映射出整个行业的竞争格局。本文将利用 Python 和 Pyecharts,对美的与格力 2008 年至 2024 年的营业总收入数据进行可视化分析,通过多种炫酷的图表,深入剖析两者的发展趋势、同比变化、占比关系等,最终生成一个可移动的可视化大屏,以直观呈现数据背后的故事。

二、数据准备

本文的数据包含了 2008 年至 2024 年美的与格力的营业总收入及其同比变化数据。以下是部分数据展示:

时间美的营业总收入格力营业总收入格力营业总收入同比美的营业总收入同比
2008.0640.0422.00.1090.335
2009.0685.0426.00.010.071
2010.01038.0608.00.4260.515
...............

三、可视化实现

3.1 环境搭建

在开始之前,确保已安装 pandas 和 pyecharts 库。若未安装,可通过以下命令安装:

pip install pandas pyecharts

3.2 折线图:营业总收入趋势对比

折线图是展示时间序列数据趋势的经典选择。我们将美的与格力的营业总收入随时间的变化情况绘制在同一张折线图上,以直观对比两者的发展态势。

import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.globals import ThemeType

# 读取数据
data = pd.read_excel('美的格力.xlsx')

# 提取时间和营业总收入数据
years = data['时间'].astype(str).tolist()
midea_revenue = data['美的营业总收入'].tolist()
gree_revenue = data['格力营业总收入'].tolist()

# 创建折线图
line = (
    Line(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(years)
    .add_yaxis("美的营业总收入", midea_revenue, is_smooth=True, symbol="circle", symbol_size=8)
    .add_yaxis("格力营业总收入", gree_revenue, is_smooth=True, symbol="triangle", symbol_size=8)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="美的与格力营业总收入趋势对比", subtitle="2008 - 2024"),
        tooltip_opts=opts.TooltipOpts(trigger="axis"),
        legend_opts=opts.LegendOpts(pos_left="right"),
        xaxis_opts=opts.AxisOpts(name="时间"),
        yaxis_opts=opts.AxisOpts(name="营业总收入"),
    )
)
line.render("营业总收入趋势对比折线图.html")

从生成的折线图中,我们可以清晰地看到美的与格力营业总收入的起伏变化。美的在 2017 年后呈现出较为明显的快速增长趋势,而格力的增长相对平稳,但在某些年份也出现了波动,如 2015 年的同比下降。

3.3 柱状图:营业总收入同比变化

同比变化率是衡量企业增长态势的重要指标。通过柱状图展示美的与格力各年份的营业总收入同比变化,可以直观地看出它们在不同年份的增长或下降情况。

# 提取同比数据
midea_yoy = data['美的营业总收入同比'].tolist()
gree_yoy = data['格力营业总收入同比'].tolist()

# 创建柱状图
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(years)
    .add_yaxis("美的营业总收入同比", midea_yoy)
    .add_yaxis("格力营业总收入同比", gree_yoy)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="美的与格力营业总收入同比变化", subtitle="2008 - 2024"),
        tooltip_opts=opts.TooltipOpts(trigger="axis"),
        legend_opts=opts.LegendOpts(pos_left="right"),
        xaxis_opts=opts.AxisOpts(name="时间"),
        yaxis_opts=opts.AxisOpts(name="同比变化率"),
    )
)
bar.render("营业总收入同比变化柱状图.html")

柱状图显示,美的在 2008 年至 2010 年期间同比变化率较高,表明其在这段时间内增长迅速。而格力在 2010 年至 2013 年期间同比变化率也较为可观,但在 2015 年出现了明显的同比下降,这可能与当时的市场环境或企业自身战略调整有关。

3.3 饼图:营业总收入占比

饼图适用于展示各部分在整体中的占比关系。我们以 2024 年为例,绘制美的与格力在该年度的营业总收入占比饼图。

# 计算各年份两家企业营业总收入占比
total_revenue = [m + g for m, g in zip(midea_revenue, gree_revenue)]
midea_ratio = [(m / t) * 100 for m, t in zip(midea_revenue, total_revenue)]
gree_ratio = [(g / t) * 100 for g, t in zip(gree_revenue, total_revenue)]

# 选择某一年的数据作为示例,这里选择2024年
year_index = -1
pie_data = [("美的", midea_ratio[year_index]), ("格力", gree_ratio[year_index])]

# 创建饼图
pie = (
    Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add("", pie_data, radius=["40%""70%"])
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2024年美的与格力营业总收入占比"),
        legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
)
pie.render("营业总收入占比饼图.html")

2024 年的饼图显示,美的的营业总收入占比明显高于格力,这表明在这一年美的在整体市场中的份额相对较大,可能得益于其多元化的产品布局和市场拓展策略。

3.4 散点图:营业总收入与同比变化关系

散点图可用于分析两个变量之间的关系。我们将美的与格力各年份的营业总收入作为 x 轴,同比变化率作为 y 轴绘制散点图,以探究营业总收入与同比变化之间的关系。

# 创建散点图数据
scatter_midea = [(midea_revenue[i], midea_yoy[i]) for i in range(len(years))]
scatter_gree = [(gree_revenue[i], gree_yoy[i]) for i in range(len(years))]

# 创建散点图
scatter = (
    Scatter(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis([str(year) for year in years])
    .add_yaxis(
        "美的",
        scatter_midea,
        symbol_size=10,
        color="#005FBA",
        label_opts=opts.LabelOpts(is_show=False)
    )
    .add_yaxis(
        "格力",
        scatter_gree,
        symbol_size=10,
        color="#FFC72C",
        label_opts=opts.LabelOpts(is_show=False)
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="营业总收入与同比变化关系", subtitle="2008-2024"),
        xaxis_opts=opts.AxisOpts(
            type_="category",
            name="年份",
            axislabel_opts=opts.LabelOpts(rotate=45)
        ),
        yaxis_opts=opts.AxisOpts(
            name="同比变化率(%)",
            axislabel_opts=opts.LabelOpts(formatter="{value}")
        ),
        tooltip_opts=opts.TooltipOpts(
            trigger="item",
            formatter="{a}: ({b}, {c}%)"  
        ),
        legend_opts=opts.LegendOpts(pos_left="right")
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False)
    )
)

scatter.render("营业总收入与同比变化的散点图.html")

从散点图中可以看出,美的与格力的营业总收入与同比变化率之间并无明显的线性关系。在营业总收入较高的年份,同比变化率可能较高也可能较低,这说明企业的营业总收入规模并不能直接决定其增长速度,还受到市场环境、竞争态势、企业战略等多种因素的综合影响。

3.5 雷达图:营业总收入趋势

雷达图可用于展示多个维度的数据。我们将美的与格力在 2008 年至 2024 年各年的营业总收入绘制在雷达图上,以直观呈现它们在不同年份的营业总收入水平。

# 准备雷达图数据
radar_data = [
    {
        "value": midea_revenue,
        "name""美的营业总收入"
    },
    {
        "value": gree_revenue,
        "name""格力营业总收入"
    }
]

# 创建雷达图
radar = (
    Radar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_schema(
        schema=[
            opts.RadarIndicatorItem(name=str(year), max_=4500) for year in range(20082025)
        ]
    )
    .add("营业总收入趋势", radar_data)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="美的与格力营业总收入趋势雷达图"),
    )
)

radar.render("美的与格力营业总收入趋势雷达图.html")

雷达图显示,美的在 2017 年后营业总收入快速增长,雷达图的形状逐渐向外扩展,而格力的雷达图形状相对较为稳定,但在某些年份也出现了波动。这进一步印证了折线图中观察到的趋势,即美的在近年来的发展速度相对较快。

3.6 桑基图:企业与年份营业总收入关系

桑基图可用于展示数据的流向和分布关系。我们将美的与格力在 2008 年至 2024 年各年的营业总收入绘制在桑基图上,以直观呈现企业与年份之间的营业总收入流向。

from pyecharts.charts import Sankey

# 数据准备
companies = ["美的""格力"]
years = list(range(20082025))  # 2008-2024

# 构建桑基图节点和链接
nodes = []
links = []

# 添加企业节点
for company in companies:
    nodes.append({"name": company})

# 添加年份节点
for year in years:
    nodes.append({"name": f"{year}年"})

# 添加美的的链接
for i, revenue in enumerate(midea_revenue):
    links.append({
        "source": 0,  # 美的在nodes中的索引为0
        "target": i + 2,  # 年份节点从索引2开始
        "value": revenue
    })

# 添加格力的链接
for i, revenue in enumerate(gree_revenue):
    links.append({
        "source": 1,  # 格力在nodes中的索引为1
        "target": i + 2,  # 年份节点从索引2开始
        "value": revenue
    })

# 创建桑基图
sankey = (
    Sankey(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add(
        series_name="企业→年份营业总收入",
        nodes=nodes,
        links=links,
        linestyle_opt=opts.LineStyleOpts(opacity=0.5, curve=0.5, color="source"),
        label_opts=opts.LabelOpts(position="right", color="#fff"),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="企业→年份营业总收入桑基图", subtitle="2008-2024"),
        tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{b}: {c}亿元"),
    )
)

sankey.render("企业_年份_营业总收入_桑基图.html")

桑基图以一种直观且富有动态感的方式展示了美的与格力在不同年份的营业总收入流向。从图中可以清晰地看到,美的的营业总收入在近年来逐渐向更高的年份流动,而格力的营业总收入流向相对较为分散。

四、可视化大屏

为了将上述所有图表整合在一起,方便进行综合分析,我们创建了一个可移动的可视化大屏。

from pyecharts.charts import Page

# 创建页面
page = Page(layout=Page.DraggablePageLayout)

# 添加图表到页面
page.add(line, bar, pie, scatter, radar, sankey)

# 保存为HTML文件
page.render("美的与格力营业总收入分析可视化大屏.html")

生成的可视化大屏包含了折线图、柱状图、饼图、散点图、雷达图和桑基图等多种图表,每种图表都从不同的角度展示了美的与格力的营业总收入数据。用户可以通过拖动图表来调整布局,方便进行对比分析。

五、分析总结

通过上述多种图表的可视化分析,我们可以从多个维度深入了解美的与格力的营业总收入情况:

  1. 趋势对比:折线图显示美的在近年来的发展速度相对较快,尤其是在 2017 年后呈现出明显的快速增长趋势,而格力的增长相对平稳,但也有一定的波动。
  2. 同比变化:柱状图表明美的在 2008 年至 2010 年期间同比变化率较高,增长迅速;格力在 2010 年至 2013 年期间同比变化率也较为可观,但在 2015 年出现了明显的同比下降。
  3. 占比关系:2024 年的饼图显示美的的营业总收入占比明显高于格力,说明美的在该年度的市场份额相对较大。
  4. 变量关系:散点图揭示了美的与格力的营业总收入与同比变化率之间并无明显的线性关系,企业的营业总收入规模并不能直接决定其增长速度。
  5. 多维度趋势:雷达图直观地呈现了美的与格力在 2008 年至 2024 年各年的营业总收入水平,美的在近年来的雷达图形状逐渐向外扩展,而格力的雷达图形状相对较为稳定。
  6. 数据流向:桑基图以一种直观且富有动态感的方式展示了美的与格力在不同年份的营业总收入流向,美的的营业总收入在近年来逐渐向更高的年份流动。

综上所述,美的与格力作为家电行业的两大巨头,虽然都取得了显著的发展,但在发展速度、增长态势、市场份额等方面存在一定的差异。美的在近年来的增长速度相对较快,市场份额也相对较大,这可能得益于其多元化的产品布局和积极的市场拓展策略。而格力虽然增长相对平稳,但在某些年份也面临着一定的挑战,需要不断调整战略以适应市场变化。


如果您在人工智能领域遇到技术难题,或是需要专业支持,无论是技术咨询、项目开发还是个性化解决方案,我都可以为您提供专业服务,如有需要可站内私信或添加下方VX名片(ID:xf982831907)

期待与您一起交流,共同探索AI的更多可能!