【数据可视化-94】2025 亚洲杯总决赛数据可视化分析:澳大利亚队 vs 中国队

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

【数据可视化-94】2025 亚洲杯总决赛数据可视化分析:澳大利亚队 vs 中国队

一、引言

2025 年亚洲杯于 2025 年 8 月 18 日凌晨落下帷幕,中国队在决赛中以 1 分之差惜败澳大利亚队,尽管未能夺冠,但这一成绩已是中国队近十年来的最佳表现。本文将通过 Python 和 Pyecharts 对两队球员的技术统计进行可视化分析,从多个维度展示两队球员的表现,并生成炫酷的可视化大屏。

二、数据准备

本次分析的数据集包含两个 sheet:sheet1 是澳大利亚队的技术统计,sheet2 是中国队的技术统计。以下是部分数据:

2.1 澳大利亚队(sheet1)

球员 位置 出场时间 投篮 三分 罚球 前篮板 后篮板 总篮板 助攻 抢断 盖帽 失误 犯规 +/- 得分
麦克维 28:12 5-12 1-6 0-0 0 0 0 2 0 0 0 2 2 11
麦格尼 26:15 1-4 0-0 2-4 1 4 5 5 3 3 1 3 18 4
库克斯 31:12 13-17 0-0 4-11 4 5 9 2 0 0 2 2 4 30
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

2.2 中国队(sheet2)

球员 位置 出场时间 投篮 三分 罚球 前篮板 后篮板 总篮板 助攻 抢断 盖帽 失误 犯规 +/- 得分
赵睿 24:46 2-10 0-6 6-7 0 5 5 6 0 0 1 4 5 10
胡金秋 27:52 8-10 0-0 4-4 5 5 10 1 1 1 2 2 -1 20
程帅澎 21:24 4-7 2-5 2-4 0 1 1 0 0 0 2 3 -17 12
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

三、环境搭建

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

bash 复制代码
pip install pandas pyecharts openpyxl

四、数据可视化

以下是完整的 Python 代码,用于读取数据、进行可视化分析,并生成炫酷的可视化大屏。

python 复制代码
import pandas as pd
from pyecharts.charts import Bar, Line, Pie, Radar, Page
from pyecharts import options as opts
from pyecharts.globals import ThemeType

# 读取数据
df_australia = pd.read_excel("2025亚洲杯总决赛数据.xlsx", sheet_name=0)
df_china = pd.read_excel("2025亚洲杯总决赛数据.xlsx", sheet_name=1)

# 数据处理
def process_data(df):
    df['出场时间'] = df['出场时间'].apply(lambda x: int(x.split(':')[0]) + int(x.split(':')[1]) / 60)
    df['投篮命中率'] = df['投篮'].apply(lambda x: int(x.split('-')[0]) / int(x.split('-')[1]) if int(x.split('-')[1]) > 0 else 0)
    df['三分命中率'] = df['三分'].apply(lambda x: int(x.split('-')[0]) / int(x.split('-')[1]) if int(x.split('-')[1]) > 0 else 0)
    df['罚球命中率'] = df['罚球'].apply(lambda x: int(x.split('-')[0]) / int(x.split('-')[1]) if int(x.split('-')[1]) > 0 else 0)
    return df

df_australia = process_data(df_australia)
df_china = process_data(df_china)

4.1 柱状图:得分排名

python 复制代码
bar = (
    Bar(init_opts=opts.InitOpts(width="1000px", height="600px", bg_color="#0d0735"))
    .add_xaxis(df_australia['球员'].tolist() + df_china['球员'].tolist())
    .add_yaxis("得分", df_australia['得分'].tolist() + df_china['得分'].tolist(), category_gap="50%")
)

4.2 折线图:投篮命中率

python 复制代码
line = (
    Line(init_opts=opts.InitOpts(width="1000px", height="600px", bg_color="#0d0735"))
    .add_xaxis(df_australia['球员'].tolist() + df_china['球员'].tolist())
    .add_yaxis("投篮命中率", df_australia['投篮命中率'].tolist() + df_china['投篮命中率'].tolist())
)

4.3 饼图:总篮板占比

python 复制代码
pie = (
    Pie(init_opts=opts.InitOpts(width="1000px", height="600px", bg_color="#0d0735"))
    .add("", [list(z) for z in zip(df_australia['球员'], df_australia['总篮板'])] + [list(z) for z in zip(df_china['球员'], df_china['总篮板'])])
)

4.4 柱状图:出场时间分布

python 复制代码
map_ = (
    Bar(init_opts=opts.InitOpts(width="1000px", height="600px", bg_color="#0d0735"))
    .add_xaxis(df_australia['球员'].tolist() + df_china['球员'].tolist())
    .add_yaxis("出场时间", df_australia['出场时间'].tolist() + df_china['出场时间'].tolist(), category_gap="50%")
)

4.5 雷达图:总篮板、助攻、抢断、盖帽、失误、犯规

python 复制代码
# 雷达图的 Schema
c_schema = [
    {"name": "总篮板", "max": 40},
    {"name": "助攻", "max": 25},
    {"name": "抢断", "max": 10},
    {"name": "盖帽", "max": 10},
    {"name": "失误", "max": 15},
    {"name": "犯规", "max": 25},
]

# 初始化雷达图
radar = Radar(init_opts=opts.InitOpts(width="1000px", height="600px", bg_color="#0d0735"))

# 添加 Schema
radar.add_schema(schema=c_schema, shape="circle")

# 添加数据
radar.add("澳大利亚队", [australia_mean], color="#f9713c")
radar.add("中国队", [china_mean], color="#b3e4a1")

五、生成可移动的可视化大屏

python 复制代码
page = Page(layout=Page.DraggablePageLayout, page_title="2025亚洲杯总决赛_球队表现可视化分析")
page.add(bar, line, pie, map_, radar)
page.render("2025亚洲杯总决赛_球队表现可视化大屏.html")

四、可视化结果

运行上述代码后,会生成一个名为 2025亚洲杯总决赛_球队表现可视化大屏.html 的文件。打开该文件,可以看到以下内容:

五、分析总结

通过对 2025 年亚洲杯总决赛数据的可视化分析,我们可以得出以下结论:

  1. 得分能力:澳大利亚队在得分能力上略占优势,尤其是库克斯和加洛韦的表现非常突出。中国队的胡金秋和赵睿也有较高的得分,但整体得分能力稍逊一筹。
  2. 投篮命中率:澳大利亚队的投篮命中率普遍较高,显示出较高的进攻效率。中国队的投篮命中率相对较低,但胡金秋和赵睿的表现较为突出。
  3. 篮板能力:中国队在篮板球的争抢上表现出色,尤其是胡金秋以 10 个总篮板领先。这表明中国队在内线的防守和篮板球控制上做得较好。
  4. 助攻与抢断:澳大利亚队的麦格尼在助攻和抢断上表现突出,而中国队的赵睿和程帅澎也有不俗的表现,但在整体数据上稍逊一筹。
  5. 出场时间:两队的主力球员出场时间普遍较长,显示出两队在比赛中都较为依赖主力球员的表现。替补球员的出场时间相对较短,但也有一定的贡献。

尽管中国队在决赛中惜败澳大利亚队,但这一成绩已是中国队近十年来的最佳表现。通过本次比赛,中国队展现了强大的团队精神和竞技水平,未来可期。


相关推荐
念念01072 小时前
数学建模竞赛中评价类相关模型
python·数学建模·因子分析·topsis
☺����2 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
王者鳜錸3 小时前
PYTHON让繁琐的工作自动化-函数
开发语言·python·自动化
xiao助阵4 小时前
python实现梅尔频率倒谱系数(MFCC) 除了傅里叶变换和离散余弦变换
开发语言·python
麻辣清汤5 小时前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi
钢铁男儿5 小时前
Python 正则表达式(正则表达式和Python 语言)
python·mysql·正则表达式
钢铁男儿5 小时前
Python 正则表达式实战:解析系统登录与进程信息
开发语言·python·正则表达式
前端小趴菜056 小时前
python - range
python
☺����6 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码1
人工智能·python·音视频