🧑 博主简介:曾任某智慧城市类企业
算法总监
,目前在美国市场的物流公司从事高级算法工程师
一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

【数据可视化-106】华为2025上半年财报分析:用Python和Pyecharts打造炫酷可视化大屏
一、引言
近日,华为投资控股有限公司在北京金融资产交易所发布了2025年半年度报告。数据显示,华为在今年上半年营业收入4270.39亿元,较上年同期增长3.95%;实现净利润371.95亿元,同比下降32%1。最引人注目的是,华为上半年研发支出达到969.50亿元,同比增长9.04%,占营收比重高达22.7%1,创下历史新高。本文将使用Python的PyEcharts库对华为财务数据进行可视化分析,通过4个关键图表深入解读华为的业绩表现。
公众号有更全的数据可视化内容,详细资料可以添加博主微信公众号,公众号名称:NLP随手记
二、数据概览
首先,让我们快速浏览一下数据。这份数据包含了华为2025年上半年的营业收入、净利润、研发支出等关键财务指标。
三、数据可视化
我们的目标是创建一个动态的、可交互的可视化大屏,展示华为的营收与净利润对比、研发投入与占比、费用结构以及资产负债与现金流情况。整个大屏将以黑色为背景,使用多种颜色来增强视觉效果,让人有一种视觉上的冲击,首先导入必须的库。
python
from pyecharts import options as opts
from pyecharts.charts import Bar, Line, Pie, Gauge, Grid, Page
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
3.1 创建柱状图 - 营收与净利润对比
python
# 数据准备
categories = ['营收', '净利润']
values = [4270.39, 371.95]
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#0d0d0d"))
.add_xaxis(categories)
.add_yaxis("2025年上半年", values, color="#ffcc00")
.set_global_opts(
title_opts=opts.TitleOpts(title="华为2025年上半年营收与净利润"),
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
yaxis_opts=opts.AxisOpts(name="亿元"),
)
)

3.2 创建折线图 - 研发投入与占比
python
r_d_expense = [300, 400, 500, 600, 700, 889, 969.5] # 单位:亿元
r_d_ratio = [15.3, 15.9, 17.5, 19.5, 21.4, 21.7, 22.7] # 占比百分比
years = ["2019", "2020", "2021", "2022", "2023", "2024", "2025H1"]
# 创建图表
line = (
Line(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#0d0d0d"))
.add_xaxis(years)
# 第一个Y轴系列(研发投入)
.add_yaxis(
"研发投入(亿元)",
r_d_expense,
color="#5793f3",
yaxis_index=0, # 使用第一个Y轴
label_opts=opts.LabelOpts(is_show=False)
)
# 第二个Y轴系列(研发占比)
.add_yaxis(
"研发占比(%)",
r_d_ratio,
color="#d14a61",
yaxis_index=1, # 使用第二个Y轴
label_opts=opts.LabelOpts(is_show=False)
)
# 扩展第二个Y轴
.extend_axis(
yaxis=opts.AxisOpts(
name="研发占比(%)",
type_="value",
min_=0,
max_=25,
interval=5,
axislabel_opts=opts.LabelOpts(formatter="{value}%"),
splitline_opts=opts.SplitLineOpts(
is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=0.3)
)
)
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="华为近7年研发投入与占比趋势",
pos_left="center",
title_textstyle_opts=opts.TextStyleOpts(color="#fff")
),
tooltip_opts=opts.TooltipOpts(
trigger="axis",
axis_pointer_type="cross",
formatter="""
{b}<br/>
{a0}: {c0} 亿元<br/>
{a1}: {c1}%
"""
),
legend_opts=opts.LegendOpts(pos_top=40, textstyle_opts=opts.TextStyleOpts(color="#fff")),
xaxis_opts=opts.AxisOpts(
axislabel_opts=opts.LabelOpts(color="#fff"),
axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#fff"))
),
yaxis_opts=opts.AxisOpts(
name="研发投入(亿元)",
type_="value",
min_=0,
max_=1000,
interval=200,
axislabel_opts=opts.LabelOpts(formatter="{value}", color="#5793f3"),
axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#5793f3")),
splitline_opts=opts.SplitLineOpts(
is_show=True, linestyle_opts=opts.LineStyleOpts(opacity=0.3)
)
),
)
)

3.3 创建饼图 - 费用结构
python
expense_categories = ['研发费用', '销售费用', '管理费用', '财务费用']
expense_values = [969.50, 393.76, 242.03, 50] # 财务费用为估算值
pie = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#0d0d0d"))
.add(
"",
[list(z) for z in zip(expense_categories, expense_values)],
radius=["30%", "75%"],
center=["50%", "50%"],
rosetype="radius",
)
.set_global_opts(
title_opts=opts.TitleOpts(title="华为2025年上半年费用结构"),
legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
)
)

3.4 创建仪表盘图 - 资产负债与现金流
python
gauge = (
Gauge(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#0d0d0d"))
.add(
"资产负债率",
[("资产负债率", 56.9)],
radius="60%",
center=["25%", "50%"],
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[(0.3, "#67e0e3"), (0.7, "#37a2da"), (1, "#fd666d")], width=20
)
),
detail_label_opts=opts.LabelOpts(formatter="{value}%", font_size=16),
)
.add(
"现金占比",
[("现金占比", 14.5)],
radius="60%",
center=["75%", "50%"],
axisline_opts=opts.AxisLineOpts(
linestyle_opts=opts.LineStyleOpts(
color=[(0.3, "#91cc75"), (0.7, "#fac858"), (1, "#ee6666")], width=20
)
),
detail_label_opts=opts.LabelOpts(formatter="{value}%", font_size=16),
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="华为2025年上半年财务状况指标",
pos_top=0,
title_textstyle_opts=opts.TextStyleOpts(color="#fff")
),
legend_opts=opts.LegendOpts(is_show=False),
)
)

四、可视化大屏
python
page = Page(layout=Page.DraggablePageLayout, page_title="华为2025年上半年财报分析")
page.add(bar, line, pie, gauge)
page.render("huawei_financial_analysis.html")
五、可视化结果分析
运行上述代码后,将生成一个名为"huawei_financial_analysis.html"的文件。打开这个文件,你将看到一个动态的、可交互的可视化大屏,展示了华为2025年上半年的财务数据。

- 营收与净利润柱状图:使用明亮的黄色,直观地展示了华为的经济规模。柱状图的高度直接反映了GDP的总量,使得经济实力一目了然。
- 研发投入与占比折线图:使用清新的蓝色和红色,展示了华为经济增长的速度。折线的起伏揭示了经济增长的动态变化,帮助我们识别增长最快和最慢的地区。
- 费用结构饼图:通过饼图的形式,直观地展示了华为的费用分布情况,颜色深浅反映了费用的高低。
- 资产负债与现金流仪表盘图:通过仪表盘的形式,直观地展示了华为的资产负债率和现金占比,颜色深浅反映了财务状况的好坏。
六、结论
通过这次实践,我们不仅将枯燥的财务数据转化为了生动的图表,还通过颜色和布局的精心设计,增强了图表的视觉效果。这样的可视化大屏不仅适用于财务分析报告,也可以用于商业演示或教育展示,帮助观众更好地理解和记忆数据。