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有可能会打破纪录:

 

相关文章
|
17天前
|
数据可视化 Python
使用Python进行数据可视化的初学者指南
在数据的海洋里,我们如何能够不迷失方向?通过数据可视化的力量,我们可以将复杂的数据集转化为易于理解的图形和图表。本文旨在为初学者提供一份简明的入门手册,介绍如何使用Python中的Matplotlib库来揭示数据背后的故事。我们将从基础的图表开始,逐步深入到更高级的可视化技术,确保每个步骤都清晰易懂,让初学者也能轻松上手。让我们开始绘制属于你自己的数据图谱吧!
|
28天前
|
机器学习/深度学习 人工智能 数据可视化
使用Python进行数据可视化:探索与实践
在数字时代的浪潮中,数据可视化成为了沟通复杂信息和洞察数据背后故事的重要工具。本文将引导读者通过Python这一强大的编程语言,利用其丰富的库函数,轻松入门并掌握数据可视化的基础技能。我们将从简单的图表创建开始,逐步深入到交互式图表的制作,最终实现复杂数据的动态呈现。无论你是数据分析新手,还是希望提升报告吸引力的专业人士,这篇文章都将是你的理想指南。
38 9
|
24天前
|
数据可视化 数据处理 Python
Python编程中的数据可视化技术
在Python编程中,数据可视化是一项强大的工具,它能够将复杂的数据集转化为易于理解的图形。本文将介绍如何使用matplotlib和pandas这两个流行的Python库来实现数据可视化,并展示一些实用的代码示例。通过这些示例,读者将学会如何创建各种图表,包括折线图、柱状图和散点图等,以便更好地理解和呈现数据。
|
1月前
|
数据可视化 数据挖掘 定位技术
Python和Geopandas进行地理数据可视化
【10月更文挑战第22天】本文介绍了如何使用Python和Geopandas进行地理数据可视化和分析,涵盖从准备工作、加载数据、数据探索与处理、地理数据可视化、空间分析与查询到交互式地理数据可视化等内容。通过丰富的代码示例和案例演示,帮助读者掌握地理数据分析的基本方法,为实际应用提供支持。
96 19
|
1月前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
2月前
|
数据可视化 数据挖掘 Python
使用Python进行数据可视化:探索与实践
【10月更文挑战第21天】本文旨在通过Python编程,介绍如何利用数据可视化技术来揭示数据背后的信息和趋势。我们将从基础的图表创建开始,逐步深入到高级可视化技巧,包括交互式图表和动态展示。文章将引导读者理解不同图表类型适用的场景,并教授如何使用流行的库如Matplotlib和Seaborn来制作美观且具有洞察力的可视化作品。
50 7
|
1月前
|
数据可视化 定位技术 Python
使用Python进行数据可视化
【10月更文挑战第22天】在这篇文章中,我们将深入探讨如何使用Python进行数据可视化。我们将从基础的图表开始,然后逐步进入更复杂的可视化技术。我们将通过实例代码来展示如何实现这些可视化,以便读者能够更好地理解和应用这些技术。
40 5
|
2月前
|
数据可视化 Python
使用Python进行数据可视化的初学者指南
【10月更文挑战第20天】本文旨在为编程新手提供一个简洁明了的入门指南,通过Python语言实现数据可视化。我们会介绍如何安装必要的库、理解数据结构,并利用这些知识来创建基本图表。文章将用通俗易懂的语言和示例代码,帮助读者快速掌握数据可视化的基础技能。
39 4
|
2月前
|
数据可视化 开发者 Python
使用Python进行数据可视化:从入门到精通
【10月更文挑战第7天】本文将引导您通过Python的可视化库,如Matplotlib和Seaborn,来探索和展示数据。我们将通过实际代码示例,学习如何创建各种图表,包括条形图、散点图和直方图等,并讨论如何优化这些图表以更好地传达信息。无论您是初学者还是有一定基础的开发者,这篇文章都能帮助您提高数据可视化技能。
|
2月前
|
数据可视化 Python
Python编程之数据可视化入门
【10月更文挑战第4天】在数字时代的洪流中,数据如同星辰般璀璨,而将它们绘制成图表,便是我们探索宇宙的方式。本文将带你启航,用Python这艘航船,驶向数据可视化的奥秘。我们将从安装必要的工具包开始,逐步深入到数据的呈现,最后通过代码示例点亮知识的灯塔,指引你在数据海洋中航行。让我们握紧舵盘,乘风破浪,揭开数据背后的故事吧!
下一篇
DataWorks