一份对过去120年奥运数据的可视化分析报告

0x00 Tableau简介

Tableau是一款定位于数据可视化敏捷开发和实现的商务智能展现工具,可用来实现交互的、可视化的分析和仪表盘应用。

Tableau提供了体验感良好且易用的使用界面,在处理大规模、多维数据时,可以即时从不同角度看到数据呈现的规律。操作简单,大大降低了技术门槛,但其呈现出来的效果却十分优秀。

本文围绕一个使用Tableau进行可视化的实例,介绍了Tableau中一些基础概念和绘图的简单操作,下面一起开始可视化之旅吧~

0x01 奥运会数据集可视化

数据来源:Kaggle"120 years of Olympic history: athletes and results"数据集。

包括athlete_events.csv和noc_regions.csv两个文件,有从1896年雅典奥运会到2016年里约奥运会的每一届奥运会的数据。

athlete_events.csv文件包含15个字段、271116条记录。每一条记录对应一位在一项奥运会项目中参赛的运动员。具体字段及对应含义如下:

  • ID - 运动员ID编号

  • Name - 运动员姓名

  • Sex - 性别

  • Age - 年龄

  • Height - 身高(cm)

  • Weight - 体重(kg)

  • Team - 队伍名称

  • NOC - 国家奥委会编码

  • Games - 奥运会年份和季节

  • Year - 年份

  • Season - 季节

  • City - 主办城市

  • Sport - 体育运动

  • Event - 比赛项目

  • Medal - 获奖情况(金、银、铜、未获奖)

noc_regions.csv描述的是国家奥委会编码与具体的国家(/地区)名称的对应关系。包含3个字段,分别是NOC国家奥委会编码、regions国家(/地区)具体名称及notes备注。

1 数据连接与管理

打开Tableau,会进入到数据源界面,可进行如下几个操作:

数据连接

Tableau可连接Excel、文本文件、JSON文件、空间文件(Shapefile、GeoJSON文件等)、统计文件等多种本地数据源。在连接数据源时,如果仅需要使用部分数据,也可对数据进行筛选。

数据整合

Tableau可对来自不同数据表的数据实现多表合并(行)、多表联接(列)及多个数据源的融合。

行合并通过【新建并集】实现,使用并集合并的表需要有相同的结构,即相同字段数,且相关字段名称和数据类型匹配。

列合并通过【联接】实现,需要选择同名字段作为关联字段,有四种联接类型,即内部、左侧、右侧、完全外部联接,默认是内部联接。

注:在2020.2之后的版本中,数据源使用的数据模型具有两个层:一个逻辑层(在其中关联表),一个物理层(在其中联接或合并表)。更推荐使用【关系】来连接数据,关系是一种更灵活、动态的方式,根据关联字段确定联接可能性,而不创建新的固定表。

数据加载

Tableau有两种加载数据的方式,一是实时连接,从数据源获得查询结果;另一种是数据提取,将数据提取到Tableau数据引擎中进行管理。

一份对过去120年奥运数据的可视化分析报告_第1张图片

将两张表的数据加载至Tableau,会基于NOC字段自动进行连接。在数据源界面可查看前1000行数据,并进行一些重命名、排序等基本操作。数据预处理导入完毕,下面就可以大展身手,正式开始可视化啦!

2 图表绘制

1) 折线图

基于运动员的ID和年份字段,来绘制一个各届参赛运动员数变化的折线图。

新建一个工作表。可以看到如下几个功能区。

一份对过去120年奥运数据的可视化分析报告_第2张图片

数据窗口

导入Tableau的数据会被自动划分为【维度】和【度量】。在连接数据时Tableau会对各个字段评估划分,如果分配与实际情况不符,例如运动员ID被认为是度量,可右键进行转换。

维度通常是分类、时间等定性的离散数据,将其拖放至功能区不会被计算,而会对视图进行分区。度量通常是数值数据,拖放至功能区会默认进行聚合计算(总和、平均值、计数等)。

Tableau支持多种字段类型,维度中包括文本、日期、日期和时间、地理值、布尔值;度量中包括数字、经纬度(当数据包含地理类型名称会自动生成)。

行列功能区

对应X、Y轴数据。

将Year拖至列,运动员ID拖至行,ID被默认为离散类型,生成的图表如下:

一份对过去120年奥运数据的可视化分析报告_第3张图片

下面将ID的类型改为度量→计数(不同),Y轴即为每届奥运会运动员的总人数。但由于原文件夏季奥运会和冬季奥运会数据是混合的,故折线图形状明显异常。

一份对过去120年奥运数据的可视化分析报告_第4张图片

标记卡

Tableau中,定义图表中的形状、颜色、大小、标签等属性,通过标记卡完成。

【颜色】和【大小】会根据放入字段数值相应改变。颜色和大小只能放入一个字段,但是【标签】可放入多个。

【详细信息】会根据拖放的字段对视图细化。

【工具提示】即可“对当光标移到视图某个标记显示的标记信息”的内容进行编辑。

将Season拖至标记卡中的【颜色】,就能看到夏季和冬季的数据分成了两条折线,每个类型对应一种颜色,并自动生成图例,完成了一幅基本的折线图。

一份对过去120年奥运数据的可视化分析报告_第5张图片

对图表标题、颜色、坐标轴标签、坐标轴范围等进行设置,只需点选预览即可。最终效果如下:

一份对过去120年奥运数据的可视化分析报告_第6张图片

同理绘制各届赛事项目数、各界参与国家数折线图。

一份对过去120年奥运数据的可视化分析报告_第7张图片

一份对过去120年奥运数据的可视化分析报告_第8张图片

2) 堆叠面积图

生成过程与折线图基本相同,只需修改图表类型。在Tableau界面右端有一个【智能推荐】按钮,可快速创建基本图形,光标移动到图形上就会显示字段要求。

效果如下:

一份对过去120年奥运数据的可视化分析报告_第9张图片

3) 柱状图/条形图

以绘制奖牌数排名前15国家的得奖情况的柱状图为例。

首先将Medal和Region分别拖入行列功能区,Medal类型改为度量→计数。因为国家数太多,生成的柱状图太长,图表不便于查看,下面基于新建计算字段对显示的国家进行筛选。

一份对过去120年奥运数据的可视化分析报告_第10张图片

计算字段

计算字段是根据数据源字段使用运算符和函数构造公式来定义字段。

运算符支持加减乘除等所有运算符。函数包括数字、字符串、日期、类型转换等各类Tableau自带计算函数。

因为预处理对Medal的空缺值进行了填充,若直接对其进行计数,实际上结果等于“各国参与运动员数”,与期待的“各国奖牌数”不符。故先基于Medal新建一个计算字段Medal_Num。在数据区域Medal上右击创建→计算字段,输入表达式如下,然后对Medal计数即可。

一份对过去120年奥运数据的可视化分析报告_第11张图片

一份对过去120年奥运数据的可视化分析报告_第12张图片

筛选器

筛选器可对全量数据进行筛选,有常规、通配符、条件、顶部四种,可根据各种需要对数据进行筛选。

这里只筛选显示奖牌数前15的国家。将Region拖入筛选器,自动弹出筛选器对话框,选择顶部。按Medal_Num字段,计数,筛选出前15个国家。然后再将国家基于Medal_Num字段降序排序。

一份对过去120年奥运数据的可视化分析报告_第13张图片

将Medal拖入标记卡中的颜色,即可生成堆叠柱状图,其中金银铜及未获奖按不同颜色显示。再将Medal拖入筛选器,选择不显示"No Medal";在筛选器上右键,选择显示筛选器,筛选器就在视图左侧显示。堆叠柱状图效果如下:

一份对过去120年奥运数据的可视化分析报告_第14张图片

各届男女运动员人数柱状图、奥运会奖牌数条形图绘制类似。由于时间跨度长,可添加一个基于Year的筛选器,只展示特定时间区间的数据。

4) 箱线图

箱线图可以反映数据的基本统计特征,包括最大最小、上下四分位数、中位数等。以绘制各届奥运会运动员身高分布的箱线图为例。

将Year和Height分布拖入行列功能区,在视图右侧智能推荐选择箱线图,会得到一些离散分布的线。

一份对过去120年奥运数据的可视化分析报告_第15张图片

需要在菜单分析栏,取消聚合度量,即可生成一幅箱线图。观察到数据集中于图表上部,对纵轴的坐标范围进行设置,还可添加基于性别的筛选器,最终效果如下:

一份对过去120年奥运数据的可视化分析报告_第16张图片

5) 饼图

以男女运动员比例饼图为例。

在标记卡中选择饼图,将字段ID拖入角度,数据类型改为度量→计数(不同),会生成一个圆形,但是还未显示男女比。继续将Sex拖入颜色和标签,添加Year筛选器,效果如下:

一份对过去120年奥运数据的可视化分析报告_第17张图片

3 图表组合、布局

将上面绘制的图表,按照相似主题,组合成仪表板。

仪表板支持在单一面板多个工作表的集合,便于同时比较监测数据,通过添加筛选器、突出显示等操作,还可实现数据的下钻,交互性更强。

在Tableau中,文本、图像、网页、空白都可被当作对象添加至仪表板中。

【布局容器】是仪表板布局的框架,分为水平和垂直两种,用来放置工作表、筛选器、图例、文本等。

【布局方式】有平铺和浮动两者。默认的平铺方式,即所选工作表或对象平行分布,互不遮盖。浮动布局则更为自由,可随意调整对象大小及位置,以实现更好效果。

布局流程一般是,添加布局容器,然后在容器中添加内容,再添加另一布局容器。

一份对过去120年奥运数据的可视化分析报告_第18张图片

下面以各项目运动员分布情况仪表板为例,其余布局类似。

首先新建仪表板,拖入一个水平容器,添加"参与人数前15的运动项目"气泡图,会默认添加气泡图及图例。然后在下面再添加一个水平容器,添加各届男女运动员人数条形图及比例饼图,如下:

一份对过去120年奥运数据的可视化分析报告_第19张图片

注:Tableau布局容器和工作表间的包含、并列关系需要小心琢磨,有时候看似一样的布局结构,但是其背后的布局逻辑却是不相同的。

设置仪表板上筛选器的作用范围,应用于仪表板上的所有表,单一筛选器即可对该仪表板上的所用表进行筛选。

一份对过去120年奥运数据的可视化分析报告_第20张图片

还可对仪表板上的某一工作表"使用筛选器",那么单击该表部分,其余表则会相应显示该部分的数据。如选中"Swimming",那么另外两个图表则会相应显示Swimming项目各届男女运动员参与人数及比例。

一份对过去120年奥运数据的可视化分析报告_第21张图片

4 可视化结果

经过上面一系列简单的图表绘制、组合的操作,主要围绕奥运会总体情况概览、奖牌总数前15名国家情况、各项目运动员分布情况、运动员身体情况四个主题来创建仪表板,就可以得到以下结果啦!

a. 总体情况概览

一份对过去120年奥运数据的可视化分析报告_第22张图片

b. 奖牌总数前15名国家情况

一份对过去120年奥运数据的可视化分析报告_第23张图片

c. 各项目运动员分布情况

一份对过去120年奥运数据的可视化分析报告_第24张图片

d. 运动员身体情况

一份对过去120年奥运数据的可视化分析报告_第25张图片

0x0F 总结

Tableau对数据的管理、呈现类似Excel中的数据透视表,操作简单、易上手,仅需要拖拽字段就可进行可视化分析,效果美观,因此广受欢迎。

本文仅介绍了最基础的部分,实际上Tableau还可进行创建分组、集、聚类分析、回归分析、时间序列等高级操作,大家可以继续探索学习~

其官网提供了丰富的学习资源,对初学者非常友好。不仅如此,学习的另一途径就是模仿优秀作品,Tableau还拥有活跃的、高质量的社群,各路可视化大神都会在上面交流分享自己的作品,对我们开拓思路、精进可视化效果都有很大帮助。

注:本文的Tableau工作簿已经上传至Tableau Public,感兴趣的朋友可以前往查看~

网址:https://public.tableau.com/profile/meetywy#!/vizhome/120yearsofOlympichistory_16069878256050/120yearsofOlympichistory

你可能感兴趣的:(可视化,数据分析,python,数据可视化,大数据)