来了,Power BI制作GDP动态排行榜详细教程,超级简单!

2023-11-04 10:10

本文主要是介绍来了,Power BI制作GDP动态排行榜详细教程,超级简单!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击关注上方“SQL数据库开发”,

设为“置顶或星标”,第一时间送达干货

之前发布了一篇Power BI的简明教程,在文中发布了一个《1960-2018年全球GDP前十排行榜》的视频,还没看过的小伙伴可以看下效果。

有不少小伙伴留言想知道怎么制作的,今天就教大家如何制作这样一个炫酷的动态排行榜。

这里我们介绍两种方法,每种方法都有优缺点,但是效果都差不多。

数据准备

要制作这样一份动态排行榜,我们需要知道各个国家2016年到2018年间的GDP才行。

我从网上找到了一份这样的数据,在公众号后台回复:GDP 可获取。

我们可以先看下原始数据是什么样的。

前两列是国家名称和国家代码,后面就是每一年的GDP值了。

整理数据

有了这份数据,我们打开Power BI,选择从Excel导入数据,如下图:

找到这份数据文件,然后在弹出的对话框中选择Sheet1,然后点击【转换数据】按钮

这样我们会进入到一个数据处理的界面上。我们在主页的菜单上选择【将第一行作为标题】功能,如下图:

这样第一行就会自动转换成标题行了。

删除多余行

国家代码其实我们用不到,如果你不想要它的话,可以选中国家代码这一列,然后选择主页上的【管理】——【删除】即可,当然你也可以右键国家代码列,在弹出的菜单中选择【删除】选项。

逆透视表

接下来是比较关键的一步了,我们需要逆透视改表的所有年份,具体操作如下,选择国家列,然后点击菜单栏的【转换】——【逆透视列】——【逆透视其他列】,意思就是逆透视除了国家以外的所有年份的列。当然如果你不嫌麻烦也可以选中所有年份的列,然后点击【逆透视列】

我们得到如下结果:

额外调整

双击属性和值这两列,将它们重命名为年份GDP。然后将GDP这一列除以100000000(一亿),然后就它转换成整数。调整完之后的数据如下图:

这就是我们想要的数据,点击主页的【关闭并应用】即可完成数据整理。然后我们回到主窗口可以看到整理后的数据列。

制作动态排行榜

点击中间的【可视化】菜单下的空间,点击控件【簇状条形图】,然后将字段拖放到相应的位置,具体如下图:

这样一个大致的轮廓就出了,但是我们发现得到的图是所有年份的汇总数据,而我们想要的是每年动态变化的数据。

这该怎么办呢?

添加轮播控件

这里我们就要使用到一个新的控件:轮播控件(Play Axis),在可视化窗口那里可以添加,如下图:

在弹出的窗口中我们搜索Play Axis即可找到,然后点击添加即可,如下图:

Power BI有非常丰富的控件资源,很多非常炫酷的功能其实都是借助控件来实现的,即使你不会DAX这门脚本语言也可以做出非常精美的可视化效果。

添加完轮播控件后我们加载到画布上,然后将年份拖放到相应位置,如下图:

年份和排行榜都做好了了,接着要解决它们的联动问题,我们发现点击播放会是下面这个样子:

浅色部分是所有GDP的总和,深色部分才是当你的GDP,这与我们想象的不一样啊。那要怎么解决这个问题呢?

编辑交互性

选中轮播控件(Play Axis),点击菜单栏【格式】——【编辑交互】,会发现可视化窗口的右上角出现了三个小图标,点击最左边的【筛选器】筛选器即可,如下图:

这样你再重新点击轮播控件的开始按钮,左表的条形图就会动态变化了。

添加年份

小伙伴们有没有注意到排行榜的右下角会动态显示年份?这里我们添加一个【卡片图】控件到画布上,如下图:

这样在轮播控件变化时,卡片图上的年份也会跟着变化。

格式美化

为了将这个图做的好看一点,我们可以对条形图进行格式美化,在可视化控件下面有个调整控件格式的按钮,里面可以调整控件的各种属性,如下图:

这里小伙伴们可以自由发挥,下面是我美化后的效果图:

这种方法的优点是可以自定义各种数据项,包括柱形图的颜色,标签位置,字体颜色等,可配置性非常强。

缺点也比较明显,制作比较麻烦,效果不那么流畅。

上面的方法可能会觉得比较复杂,接下来我们再介绍一个视频中的方法,这个是真·超级简单!

获取控件

我们同样需要将原始数据整理成上面的格式:国家,年份,GDP。不同的是我们只需要使用一个控件就可以实现上面的功能,那就是控件:动画条形图(Animated Bar Chart Race)

还是在控件市场里面搜索英文名称添加到画布上,如下图:

然后将相关数据列放到对应的位置,如下图:

拖放好后,效果就是上一个图左侧的效果了

调整控件参数

我们调整一下这个控件的几个参数即可开始运行了。具体如下:

这个插件的参数设置太简单

topN:条形图中的条目数量
duration:动画延迟时间,值越大动画播放越慢
autoPlay:设置是否自动播放
fontFamily:设置条目的字体
fontSize:设置条目的字号
hideGrid:设置是否因此图例
hideNumber:设置是否因此数据值
hidePeriod:设置是否显示日期
periodSize:设置日期的字号

然后再回到画布,你就会看到开始视频里的效果了

这个方法的优缺点和第一种方法正好相反

优点是制作简单,效果炫酷

缺点是数据条目太短而无法显示,名称无法显示在条目外侧,字体颜色无法修改,界面只能展示最多20条信息。

两种方法都各有千秋,小伙伴们都可以动手尝试一下。

图文教程就介绍到这里了,之后我会在我的视频号发布一期视频版的教程,感兴趣的小伙伴们可以关注一下我的视频号。

——End——
后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。
推荐阅读
中国程序员VS美国程序员,太形象了...数据分析利器,Power BI简明教程为Navicat正名,Navicat完全使用手册(下)除了会排序,你对ORDER BY的用法可能一无所知!50 款数据可视化分析工具大集合,总有一款适合你这是一个能学到技术的公众号,欢迎关注

点击「阅读原文」了解SQL训练营

这篇关于来了,Power BI制作GDP动态排行榜详细教程,超级简单!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/345045

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu2289(简单二分)

虽说是简单二分,但是我还是wa死了  题意:已知圆台的体积,求高度 首先要知道圆台体积怎么求:设上下底的半径分别为r1,r2,高为h,V = PI*(r1*r1+r1*r2+r2*r2)*h/3 然后以h进行二分 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#includ

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

usaco 1.3 Prime Cryptarithm(简单哈希表暴搜剪枝)

思路: 1. 用一个 hash[ ] 数组存放输入的数字,令 hash[ tmp ]=1 。 2. 一个自定义函数 check( ) ,检查各位是否为输入的数字。 3. 暴搜。第一行数从 100到999,第二行数从 10到99。 4. 剪枝。 代码: /*ID: who jayLANG: C++TASK: crypt1*/#include<stdio.h>bool h

uva 10387 Billiard(简单几何)

题意是一个球从矩形的中点出发,告诉你小球与矩形两条边的碰撞次数与小球回到原点的时间,求小球出发时的角度和小球的速度。 简单的几何问题,小球每与竖边碰撞一次,向右扩展一个相同的矩形;每与横边碰撞一次,向上扩展一个相同的矩形。 可以发现,扩展矩形的路径和在当前矩形中的每一段路径相同,当小球回到出发点时,一条直线的路径刚好经过最后一个扩展矩形的中心点。 最后扩展的路径和横边竖边恰好组成一个直

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 10130 简单背包

题意: 背包和 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>