Python数据可视化2.3 体育案例

简介:

2.3 体育案例


为了说明另一个案例以及某种可视化方法的优势,我们不妨考虑一个不同的问题:2015年2月美国足球四分卫球员的前五个最高纪录是哪几个?原始数据源为Len Dawson NFL和AFL Statistics。(数据来源:http://www.pro-football-reference.com/players/D/DawsLe00.htm。)

数据包括前22名四分卫球员的信息,他们是Peyton Manning、Brett Favre、Dan Marino、Drew Brees、Tom Brady、Frank Tarkenton、John Elway、Warren Moon、John Unitas、Vinny Testaverda、Joe Montana、Dave Krieg、Eli Manning、Sonny Jurgensen、Dan Fouts、Philip Rivers、Ben Roethlisberger、Drew Bledsoe、Boomer Esiason、John Hadle、Tittle和Tony Romo:

 

在我们考虑可视化之前,需要做一些分析工作。这些四分位球员参加比赛的时期不同。例如,Brett Favre参赛时间从1991年到2010年,Dan Marino参赛时间从1983年到1999年。挑战在于:如果使用条形图或气泡图,我们将只能得到一维的可视化结果。

进行可视化的第一步是解析CSV文件,这有几种选择,我们可以用pandas中的read_csv函数或csv模式,这些都有一些诸如DictReader的便利的函数:

 

 

四分卫数据可以从前面的数据源下载;过滤数据也同样可从http://www.knapdata.com/python/qb_ data.csv上下载。csv模式包括像字典一样用行表示类别,因此可以命名域。DictReader和DictWriter类将行翻译成字典,而不是列表。字典的关键要点能被输入或从输入的第一行进行推断(该行包括抬头标题)。通过DictReader可读取CSV文件的内容,其中的列输入值被视为字符串:

 

为了完成数据的数值型转换,我们可能需要一个转换和返回数值型数值的函数。我们也有额外的函数,如prepare.py 中的getcolors()和num(),这些将在下面的案例中使用:

 

 

 

呈现可视化结果

基于输入数据的域名,每一个四分卫球员的触地得分统计量和传球码数统计量可以画在同一个时间线上。知道绘图内容后,我们应弄清楚绘制方式。

用(年份,触地得分)和(触地得分,年份)域绘制简单的X-Y图应该是一个好的开始。然而,输入数据文件中的252位四分位球员绝大多数彼此无关。因此用不同颜色来展示没有意义。(没有意义的原因在于我们没有252种不同的颜色。)我们试图画出前7或前10种结果,如下图所示:

 

下面的Python程序表明怎样用matplotlib展示前10位四分卫球员的触地得分数。该程序的运行结果如上图所示:

 

 

 

 

 

将图(X,Y)转换为(Y,X),有足够的空间展示四分卫球员的名字。在上面的代码片段中,我们可能要做出如下改变:

 

 

 

 

如果我们转换x轴和y轴,就会有更多的空间展示四分卫球员的名字和触地得分总和,如上图所示。为了完成这项任务,我们需要转换x轴和y轴,根据新的x轴和y轴,在合适的位置添加标签。

 

乍一看,我们只能发现职业生涯中触地得分占领先位置的四分卫球员(2014~2015年足球赛季)。基于这种可视化,你可以进一步尝试分析和理解还能从数据中推断出什么结论。这些发现围绕下述问题的答案展开:

哪位四分卫球员职业生涯最长?

现在还有能超越Peyton Manning触地得分记录的四分卫球员吗?

在读取的输入文件中,Age正好是我们得到的其中一个字段值。用Age起始值绘制Age与Touchdown统计量有很多种试验方法。为了回答第一个问题,我们不得不跟踪Age而不是Year。下面的片段既可以用于一个单独的函数(如果常常被用到),也可以包含在主要脚本中:

 

运行上面的代码可知,44是四分位球员的最大年龄(在联赛中发挥积极作用时,有3位四分位球员:Warren Moon、Vinny Testaverde和Steve DeBerg。名义上,George Blanda在48岁前一直参赛(年龄最大的球员),但他一开始是四分位球员,也曾经当过几年球员)。

为了回答其他问题,我们用图表示触地得分统计量和四分位球员的年龄,代码如下:

 

 

 

 

 

当你看这些图的结果时,仅有两位四分位球员(Drew Brees和Tom Brady)在他们35岁时与Peyton Manning势均力敌。然而,考虑到Tom Brady的年龄和他目前的成就,似乎只有Drew Brees更有可能超越Peyton Manning的触地得分记录。

由下图可得出这个结论。该图是35岁球员数据的一个较简单的图。比较排名前四的四分卫球员的成绩(Peyton Manning、Tom Brady、Drew Brees和Brett Favre),我们发现Drew Brees在35岁时的成绩可与Peyton同龄时的成绩匹敌。尽管与纽约时报中“为什么Peyton Manning的记录难以超越”报道的结论不同,下图至少更倾向于Drew Brees有可能会打破纪录:

 

相关文章
|
8月前
|
数据可视化 关系型数据库 MySQL
基于python大数据的的海洋气象数据可视化平台
针对海洋气象数据量大、维度多的挑战,设计基于ECharts的可视化平台,结合Python、Django与MySQL,实现数据高效展示与交互分析,提升科研与决策效率。
|
9月前
|
机器学习/深度学习 数据可视化 搜索推荐
基于python的汽车数据可视化、推荐及预测系统
本研究围绕汽车数据可视化、推荐及预测系统展开,结合大数据与人工智能技术,旨在提升用户体验与市场竞争力。内容涵盖研究背景、意义、相关技术如 Python、ECharts、协同过滤及随机森林回归等,探讨如何挖掘汽车数据价值,实现个性化推荐与智能预测,为汽车行业智能化发展提供支持。
|
9月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
8月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
9月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
9月前
|
数据采集 搜索推荐 数据可视化
基于python大数据的商品数据可视化及推荐系统
本系统基于Python、Django与ECharts,构建大数据商品可视化及推荐平台。通过爬虫获取商品数据,利用可视化技术呈现销售趋势与用户行为,结合机器学习实现个性化推荐,助力电商精准营销与用户体验提升。
|
9月前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。
|
9月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
616 0
|
10月前
|
搜索推荐 算法 数据可视化
基于python大数据的招聘数据可视化及推荐系统
本研究聚焦于基于协同过滤的就业推荐系统设计与实现。随着就业压力增大和信息技术发展,传统求职方式面临挑战。通过分析用户行为与职位特征,协同过滤技术可实现个性化职位推荐,提升求职与招聘效率。研究涵盖系统架构、数据采集、算法实现及可视化展示,旨在优化就业匹配,促进人才与岗位精准对接,助力就业市场智能化发展。
|
11月前
|
数据采集 存储 NoSQL
Python爬虫案例:Scrapy+XPath解析当当网网页结构
Python爬虫案例:Scrapy+XPath解析当当网网页结构

推荐镜像

更多