Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Excel动画图表示例:Excel也可以创建可视化的随时间而变化的排名

Excel动画图表示例:Excel也可以创建可视化的随时间而变化的排名

作者头像
fanjy
发布于 2022-04-13 05:22:45
发布于 2022-04-13 05:22:45
7.8K0
举报
文章被收录于专栏:完美Excel完美Excel

标签:Excel图表

好的动画图表,能够更生动地讲述数据背后的故事。

本文示例使用Excel图表以动画的方式显示数据随时间的变化。

准备

本文列出的创建动画图表的步骤并不是孤立地考虑的,必须考虑整个过程。需要什么原始数据?如何将其聚合以显示想要什么?在绘制图表之前,是否需要对聚合数据进行进一步处理?使用哪种类型的图表?哪些数据(和其他信息)对查看者有用?需要VBA来自动化所有这些?

在继续之前,以上内容都需要考虑,至少要找到初步答案。如果没有把整个过程考虑清楚,可能会发现遇到了一些障碍,在那里有些东西不会像希望的那样工作。

收集数据

首先要做的是决定需要显示哪些数据,然后将其收集在一起。

这很容易解决,因为知道要显示一支球队在排行榜上的位置,所以需要计算他们在获胜或平局中的得分。

如果球队得分相等,首先计算出他们的进球差(进球数-失球数),然后再看进球数。

如果两支球队都有下图1所示的数据。

图1

两队都赢了3场比赛,获胜得3分,所以得9分;双方都打了一场平局,平局得1分。所以他们的总分是10分。

要决定哪支球队在积分榜上名列前茅,现在需要看一下进球差,如果是相同的,那么就看进球数。两支球队的进球差距都是6,所以需要看看他们的进球情况。United进了12球,Wanderers进了9球,所以United高于Wanderers。

计算排位的公式是:

得分Points+ (进球差GD * 0.001) + (得球GS * 0.0001)

United的排位分是:

10 + 0.006 +0.0012 = 10.0072

Wanderers的排位分是:

10 + 0.006 +0.0009 = 10.0069

具有更大值的United在表中排名更高。

稍后将看到为什么计算出这个值很重要,以及为什么选择了0.001和0.0001的比例因子。

下图2是将每周数据输入表格的情况。

图2

创建数据透视表

数据透视表非常适合此情况,它可以按照图表中需要的方式对数据进行汇总。

图3

球队是按字母顺序排列的,稍后在绘制图表之前会进行整理,可以看到他们的得分、进球差和得球数。

筛选是周数,因此通过更改它,数据透视表将显示季节中该周的数据。

创建要绘制图表的数据

显然,图表需要显示每个队的得分。但正如已经提到的,它还需要能够根据进球差和得球数来区分哪个球队在积分榜上名列前茅。

还想使用每个球队的俱乐部徽章来显示与该俱乐部相关的数据。

使用簇状条形图,可以完成所有这些。系列1是俱乐部的实际得分。系列2是调整后的积分,考虑到进球差和进球得分,可以使用俱乐部的徽章作为本系列的标签。

为了创建所需的数据,创建了一个表,该表使用GETPIVOTDATA从数据透视表中获取值。在这个阶段,表仍然是按俱乐部名称的字母顺序排列的。

图4

然后使用SORT函数,可以根据第三列(得分+球差+得球)得到一个正确排序的表格。

图5

注意到得分(Points)和Points+GD+GS的整数部分是不一样的。

如果只是用公式:

得分Points+ (进球差GD * 0.001) + (得球GS * 0.0001)

计算表中Liverpool的值是86和86.056。但因为在图表上绘制了两个系列,不希望每个系列的标签重叠,所以在Points+GD+GS上添加了一个小值,使其沿x轴稍微移动,这样它就不会位于系列1标签的顶部。

对Points+GD+GS使用的实际公式是:

得分Points+ (进球差GD * 0.001) + (得球GS * 0.0001) + (I1*0.1)

其中,I1是周数。

注意:之前提到,为GD和GS选择了小比例因子。这是因为不希望有明显改变图表上条形图长度的值,只需要一个非常小的差异,让球队在相同的点上被分开。

创建和格式化图表

1.选择要绘制的数据

图6

2.选择簇状条形图

从功能区“插入”选项卡“图表”组中“簇状条形图”,结果如下图7所示。

图7

3.反向分类顺序

选择垂直坐标轴标签,单击鼠标右键,选取“设置坐标轴格式”命令,在“坐标轴选项”中选取“逆序类别”前的复选框,如下图8所示。

图8

现在的图表如下图9所示。系列1(蓝色)将显示每队的得分,系列2的条形比系列1长,将用于显示球队徽章。

图9

4.删除图例。

5.格式化系列2

选择系列2,单击鼠标右键,选取快捷菜单中的“设置数据系列格式”命令,选取“无边框”和“无线条”,如下图10所示。

图10

在“系列选项”中,将系列重叠设置为100%,分类间距设置为45%。

图11

6.对系列2添加标签,如下图12所示。

图12

7.隐藏系列2数据标签中的文本

右键单击数据标签,从快捷菜单中选择“字体”命令,设置字体颜色为白色,字体大小为1。这有效地隐藏了标签中的数字,因此它们不会掩盖将使用的俱乐部徽章。

图13

8.为系列2标签设置图像

仍然选择系列2数据标签,单击鼠标右键,从快捷菜单中选择“设置数据标签格式”命令。在“标签选项”中选取“图片或纹理填充”,如下图14所示。

图14

后面将使用VBA添加球队徽章。

9.格式化系列1

选择系列1,单击添加数据标签,显示每队的得分,如下图15所示。

图15

VBA驱动动画

现在转向VBA,它需要使所有这些都工作起来。

首先希望每个条形都使用球队的颜色。

团队队徽是与该工作簿存储在同一文件夹中的图像。

为了存储所有这些数据,使用了三个集合。颜色集合存储球队主颜色及其高亮颜色的RGB值,第三个集合存储队徽图像文件的名称。

MainColour.Add RGB(253,185, 19), “Wolves”

HighlightColour.AddRGB(0, 0, 0), “Wolves”

Crests.Add “Wolves.png”,“Wolves”

要创建动画,代码需要绘制每周的数据。为了将所选周的数据输入到表中,从而绘制到图表中,代码会更改透视表上的筛选器。此筛选器是工作表中单元格I1中的值。

因此,数据透视表中的数据流入计算表,计算表依次输入排序表。该图表绘制了排序表中的数据。

当然,排序表中团队的顺序与图表中显示的顺序相同。随着代码进度遍历每周,图表数据会发生变化,轴标签会正确反映排行榜。

但应用于条形的格式仍保留在该条形上,它不会仅仅因为球队的位置改变而改变。

使用排序表,代码知道该表中最顶层的球队是图表中的顶层球队。表中第二队在图表中排名第二,等等。

通过从上到下依次检查每个条形,并使用排序表中的球队顺序,可以为每个条形应用正确的颜色和徽章。

联盟中有20支球队,所以代码使用一个从1到20的变量计数器对每支球队进行计算。

从显示球队得分的系列1开始,填充颜色设置为球队的主颜色。

可以使用从S列的排序表中检索球队名称。

Range(“S3”).Offset(counter,0).Value

球队名称是从MainColor系列中获取RBG颜色值的关键。从HighlightColor集合以相同的方式返回条形图轮廓颜色。

‘设置条形颜色

With ActiveChart.FullSeriesCollection(1).Points(counter).Format

.Fill.ForeColor.RGB = MainColour(Range(“S3”).Offset(counter,0).Value)

.Line.Visible = msoTrue

.Line.Weight = 1.2

.Line.ForeColor.RGB = HighlightColour(Range(“S3”).Offset(counter,0).Value)

End With

然后,对于系列2标签,代码使用球队名称从Crests集合返回队徽图像文件的名称。

‘设置球队队徽

ActiveChart.FullSeriesCollection(2).Points(counter).DataLabel.Select

With Selection.Format.Fill

.Visible = msoTrue

.UserPicture PictureFile:=Crests(Range(“S3”).Offset(counter,0).Value)

Selection.Width = 20

Selection.Height = 20

End With

完成后,可以更新图表标题,增加周数,它跟踪显示数据的周数,然后代码循环并再次执行所有操作。

ActiveChart.ChartTitle.Text= “Premier League Points: Week” & WeekNum

WeekNum =WeekNum + 1

效果如下图16所示。

图16

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
可视化图表样式使用大全
Severino Ribecca 是一位平面设计师,也是数据可视化的爱好者,他在自己的网站上收录了 60 种可视化图表样式以及它们分别适用于什么样的场景,并且推荐了相应的制作工具。
代码医生工作室
2020/02/20
10.7K0
【数据分析】数据告诉你:梅西究竟厉害在哪里?
(原文来自 FiveThirtyEight,译言 linuxor 翻译) 内特·西尔弗(Nate Silver)是个天才数据分析师,曾经在2012年美国总统大选中准确预测了50个州的选举结果,并为了预测棒球选手的成绩而开发了统计工具PECOTA。就是这个内特·西尔弗,新创办了一个使用统计数据来分析所有现象的新闻网站FiveThirtyEight。近日,该网站的体育数据分析师兼作家Benjamin Morris,在彻底分析了有关里奥内尔·梅西这个被认为是当今世界NO.1的足球运动员的各种数据后发现,梅西身
小莹莹
2018/04/19
1.4K0
【数据分析】数据告诉你:梅西究竟厉害在哪里?
Excel图表学习:创建子弹图
为了尽可能轻松地创建你的第一个图表,将新工作表的名称更改为“GG”,然后设置数据区域如图所示。在创建图表后,可以根据需要重命名工作表或移动数据。
fanjy
2022/11/16
4.2K0
Excel图表学习:创建子弹图
[AI安全论文] 26.基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
前文详细介绍了向量表征系列文章,从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec。这篇文章将描述Excel可视化分析的基本知识,以2022年电影市场为例。在论文中,一个好的图表胜千言万语,而实验数据生成后如何可视化表示至关重要,之前作者通常利用Python、Echarts等编写代码实现,而这篇文章将利用Excel生成,不论是代码、工具还是Office,它们都只是论文的辅助工具,更重要的是论文的创新和实验所生成的结果。
Eastmount
2023/02/28
1.4K0
[AI安全论文] 26.基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
太酷了,用Python制作足球可视化图表!
最近不少小伙伴都会熬夜看欧洲杯。今年的欧洲杯相比起往年的欧洲杯来说,可谓是冷门频出,出乎意料。
小F
2021/07/23
6040
梅西、内马尔谁是全能的五边形战士?教你用BI做出可视化能力图
最近因为XX的原因,好多足球比赛都不得不停止,相信很多球迷现在在家中都没办法看比赛了。
大数据分析不是事儿
2020/03/09
9380
[数据可视化之一]Pandas单变量画图
pandas库是Python数据分析最核心的一个工具库:“杀手级特征”,使整个生态系统融合在一起。除了数据读取、转换之外,也可以进行数据可视化。易于使用和富有表现力的pandas绘图API是pandas流行的重要组成部分。
用户1631856
2018/10/15
2K0
手把手教你用Bokeh进行可视化数据分析(附源码)
上一篇利用交互式可视化分析了一下金州勇士队4年3冠的原因,其中数据处理部分使用了numpy和pandas,可视化部分使用的是Bokeh和Plotly,效果非常赞,链接如下:
Python数据科学
2018/12/24
2.9K0
手把手教你用Bokeh进行可视化数据分析(附源码)
Pandas数据可视化
pandas库是Python数据分析的核心库 它不仅可以加载和转换数据,还可以做更多的事情:它还可以可视化 pandas绘图API简单易用,是pandas流行的重要原因之一
@小森
2024/03/15
5400
Pandas数据可视化
一个案例入门tableau——NBA球队数据可视化实战解析
前两天在公众号发布了一篇「NBA球队数据可视化」的视频案例,对于本赛季东西部30只球队的得失分,胜负场次,胜率排名等进行了可视化展示,并支持实时交互。可点击下方视频查看。本文来分享一下视频中可视化的实现过程。
超哥的杂货铺
2021/03/16
8K6
一个案例入门tableau——NBA球队数据可视化实战解析
52个数据可视化图表鉴赏
一、数据可视化,是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。它是一个处于不断演变之中的概念,其边界在不断地扩大。主要指的是技术上较为高级的技术方法,而这些技术方法允许利用图形、图像处理、计算机视觉以及用户界面,通过表达、建模以及对立体、表面、属性以及动画的显示,对数据加以可视化解释。与立体建模之类的特殊技术方法相比,数据可视化所涵盖的技术方法要广泛得多。
数据STUDIO
2022/02/24
6.8K0
52个数据可视化图表鉴赏
Excel实例:Excel图表可视化:条形图、折线图、散点图和步骤图
Excel提供了相当广泛的功能来创建图形,即Excel所谓的  图表。您可以通过选择插入>图表来访问Excel的图表功能  。我们将在此处描述如何创建条形图和折线图。其他类型的图表以类似的方式创建。创建图表后,可以访问三个新的功能区,分别是  Design,  Layout  和  Format。这些用于完善创建的图表。
拓端
2020/10/24
5.3K0
20个小技巧,让数据可视化图表更专业!
数据可视化是数据展示的常见方式,所谓一图抵千言,好的图表能高效传递信息,让观众一目了然,差的图表往往会不知所云。
派大星的数据屋
2022/04/03
3.1K0
20个小技巧,让数据可视化图表更专业!
数据可视化图表
常听到一句话,“能用图描述的就不用表,能用表就不用文字”。这句话也直接的表明了:在认知上,大家对于图形的敏感度远比文字高。
Python数据科学
2019/06/03
2.3K0
Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!
导读:绘图是数据分析工作中的重要一环,是探索过程的一部分。Matplotlib是当前用于数据可视化的最流行的Python包之一,本文主要介绍数据可视化分析工具:Matplotlib。
IT阅读排行榜
2021/06/01
7.4K0
Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!
数据可视化设计指南
数据可视化是一种将密集复杂数据信息以视觉图形的形式呈现。设计出来的视觉效果简化了数据,让用户分析研究比较数据变得容易以及可以更好地向领导或者团队讲述“故事”——可以帮助用户更好地做出决策。
Banber可视化云平台
2021/07/06
7.1K0
数据可视化设计指南
Excel图表学习:漏斗图2
在前面的文章《Excel图表学习67:4步绘制漏斗图》中,我们讲解了绘制漏斗图的技巧,今天,我们再举一例。这个示例来自于www.sumproduct.com。
fanjy
2022/11/16
2.3K0
Excel图表学习:漏斗图2
60种常用可视化图表的使用场景——(下)
这种图表使用同心圆网格来绘制条形图。每个圆圈表示一个数值刻度,而径向分隔线则用作区分不同类别或间隔(如果是直方图)。
JOYCE_Leo16
2024/03/19
1K0
60种常用可视化图表的使用场景——(下)
5个快速而简单的数据可视化方法和Python代码
数据可视化是数据科学家工作的重要组成部分。在项目的早期阶段,你通常会进行探索性数据分析(EDA),以获得对数据的一些见解。创建可视化确实有助于使事情更清晰和更容易理解,特别是对于更大的、高维的数据集。在项目接近尾声时,以一种清晰、简洁和引人注目的方式展示最终结果是非常重要的,这样你的受众(通常是非技术客户)就更加容易理解。
AI算法与图像处理
2019/05/22
2.4K0
60种常用可视化图表的使用场景——(上)
点阵图表 (Dot Matrix Chart) 以点为单位显示离散数据,每种颜色的点表示一个特定类别,并以矩阵形式组合在一起。
JOYCE_Leo16
2024/03/19
1.4K0
60种常用可视化图表的使用场景——(上)
推荐阅读
相关推荐
可视化图表样式使用大全
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档