0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何制作数据可视化大屏

Linux爱好者 来源:数据分析与统计学之美 作者:黄伟呢 2021-10-12 16:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

经常有小伙伴问,如何制作数据可视化大屏?

今天将手把手带你爬取奥运会相关信息,并利用可视化大屏为你展示奥运详情。让一个没关注过奥运会的朋友,也能够秒懂奥运会。

1、项目背景

奥运会刚刚过去,你是否已经看过2020东京奥运会呢?

2、奥运会相关信息爬取

  • 爬取字段: 国家、国家ID、排名、金牌数、银牌数、铜牌数、奖牌总数、项目名、运动员、获奖类型、获奖时间;
  • 爬取说明: 基于两个接口的数据爬取【json格式的数据】,直接采用键值对的方式获取相关数据;
  • 使用工具: Pandas+requests

本文是基于两个接口的数据爬取,相对容易的多。

#这个链接主要展示:各国的金银铜牌及其总数!
https://app-sc.miguvideo.com/vms-livedata/olympic-medal/total-table/15/110000004609

#这个链接主要展示:每个参赛队员的参赛项目和获得的奖牌情况!
https://app-sc.miguvideo.com/vms-livedata/olympic-medal/total-table/15/110000004609

① 导入相关库

importrequests
importpandasaspd
frompprintimportpprint

requests库用于发起网页请求,获取网页中的源代码;

pandas库用于存储和读取获取到的信息;

pprint库是漂亮的打印,对于json格式的数据,能够很好的展示结构,方便我们解析;

② 爬虫讲解

url='https://app-sc.miguvideo.com/vms-livedata/olympic-medal/total-table/15/110000004609'
data=requests.get(url).json()
pprint(data)

三行代码就可以获取到网页的源代码,利用pprint库,可以清晰的展示json结构,对于我们解析数据很有帮助。

我们要的数据,都存在于body键下面的allMedalData键中,allMedalData键的值是一个列表,里面有很多字典组成的键值对信息,就是我们要爬取的数据。

直接利用键获取对应的值信息,代码如下:

df1=pd.DataFrame()
forinfoindata1['body']['allMedalData']:
name=info['countryName']
name_id=info['countryId']
rank=info['rank']
gold=info['goldMedalNum']
silver=info['silverMedalNum']
bronze=info['bronzeMedalNum']
total=info['totalMedalNum']
#组织数据
orangized_data=[[name,name_id,rank,gold,silver,bronze,total]]
#然后追加df
df1=df1.append(orangized_data)
df1.columns=['名称','ID','排名','金牌','银牌','铜牌','奖牌总数']
df1

对于另外一个网页,我们采取同样的方式。

url='https://app-sc.miguvideo.com/vms-livedata/olympic-medal/detail-total/15/110000004609'
data2=requests.get(url).json()
pprint(data2)

是不是此时感觉结构更清楚了?

df2=pd.DataFrame()
forinfoindata2['body']['medalTableDetail']:
english_name=info['countryName']
name_id=info['countryId']
award_time=info['awardTime']
item_name=info['bigItemName']
sports_name=info['sportsName']
medal_type=info['medalType']
#组织数据
orangized_data=[[english_name,name_id,award_time,item_name,sports_name,medal_type]]
#然后追加df
df2=df2.append(orangized_data)
df2.columns=['英文缩写','ID','获奖时间','项目名','运动员','金牌类型']
df2

3、数据预处理

对于爬取到的数据,往往是有问题的,我们需要提前预处理一下,方便后续做可视化展示。

① 数据拼接

对我们共有三个表格,分别存储着不同的信息。我们需要对其进行合适的拼接,方便最后可视化。

表格df1表示各国奖牌数,数据是这样的:

表格df3表示国家名中英文对照表,数据是这样的:

利用上述两张表,我们可以左连接,将英文名称添加到df1表上。

df4=pd.merge(df1,df3,on="名称",how="left")
df4.head(10)

最终效果如下:

表格df5表示运动项目获奖详情,数据是这样的:

此时,我们又可以将df4和df5做一个左连接,将这两张表合成一张大表,就可以得到不同国家不同项目获得的奖牌数。

df6=pd.merge(df4,df5,on="名称",how="left")
df6.head(10)

② 关于金牌类型的说明

上面得到的表df6,其实还不是最后的表,因为上述表中金牌类型是数字1、2、3,但是我们需要的是金牌、银牌、铜牌。因此,我们自己再定义一个df7。

x={"获奖名次":["金牌","银牌","铜牌"],"金牌类型":[1,2,3]}
df7=pd.DataFrame(x)
df7

效果如下:

af30f8e0-2ac9-11ec-82a8-dac502259ad0.png

因此,我们拿df6与自己构造得到的df7再做一个左连接,就可以的到最后完整的表了。

df8=pd.merge(df6,df7,on="名称",how="left")
df8.head(10)

③ 中英文名映射转换

由于使用pyecharts绘制世界地图时,名称必须是英文的,所以我们需要将这里的中文名称映射为英文名称。于是我在网上找到了下面这个文件:

afec523e-2ac9-11ec-82a8-dac502259ad0.png

我们要做的就是将它与表格中的数据,做个映射转换。先把它转换为一个Excel文件吧,方便我们以后直接使用。

withopen("国家名中英文对照表.txt","r",encoding="utf-8")asf:
x=f.read()

df3=pd.DataFrame()
foriinx.split("
"):
x=i.split(":")[0].strip()
y=i.split(":")[1].strip()
orangined_data=[[x,y]]
df3=df3.append(orangined_data)
df3.columns=["名称","英文名称"]
df3.to_excel("国家名中英文对照表.xlsx",index=None)

然后,在和上述的df2表格做一个左连接即可。

df4=pd.merge(df2,df3,on="名称",how="left")
df4

结果如下:

adedc3a0-2ac9-11ec-82a8-dac502259ad0.png

4、可视化展示

关于可视化部分,使用的是pyecharts库。这部分一共分以下8个主题:

  • ① 2020东京奥运会各国奖牌分布图;
  • ② 2020东京奥运会奖牌榜详情;
  • ③ 2020东京奥运会奖牌榜总数前十名;
  • ④ 2020东京奥运会金牌榜总数前十名;
  • ⑤ 2020东京奥运会中国各项目获奖详情;
  • ⑥ 中国选手每日获得奖牌数;
  • ⑦ 中国选手每日获得金牌数;
  • ⑧ 中国选手夺金详细数据;

说明: 这里就不做结果分析了,因为通过上图,相信大家应该能够很清晰的了解到2020东京奥运会,哪怕你没看过。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 可视化
    +关注

    关注

    1

    文章

    1363

    浏览量

    22894
  • python
    +关注

    关注

    58

    文章

    4884

    浏览量

    90300

原文标题:用 Python 制作可视化大屏,特简单!

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    高质量可视化应该这样设计

    数据驱动决策的当下,可视化已成为企业数据呈现、业务监控的核心载体,图扑软件基于自研 HT for Web 前端可视化引擎,打造无需依赖
    的头像 发表于 04-23 14:22 60次阅读
    高质量<b class='flag-5'>可视化</b>大<b class='flag-5'>屏</b>应该这样设计

    3D系统可视化

    本身的深入描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化,因此可以用于检查元件的位置,以及快速了解系统内部的光
    发表于 03-30 09:25

    物联网平台赋能可视化数据与决策,打造工厂“智慧大脑”

    ,无法形成全局视图,更难以支撑快速、精准的管理决策。 打造一个集中、直观、智能的数据可视化平台,让关键信息一目了然,让管理决策有数可依,成为企业运营管理的迫切需求。数之能物联网平台具备高效可靠的数据整合与
    的头像 发表于 02-04 14:52 222次阅读

    工业物联网可视化平台是什么?有什么功能?

    工业物联网可视化平台是基于物联网、大数据、人工智能等技术,将工业生产中的设备、系统、流程等数据以图形方式呈现,实现实时监控、智能分析与交互式管理的数字化工具。 其核心功能涵盖
    的头像 发表于 11-17 17:49 1453次阅读

    工业可视化平台是什么

    工业可视化平台是一种基于信息技术和可视化技术,将工业生产过程中的数据、信息、流程等以直观、动态的图形方式呈现,并实现交互式管理与分析的数字化工具。它通过整合工业物联网(IIoT)、大
    的头像 发表于 10-24 18:00 1223次阅读

    光伏电站可视化的实现

    实现光伏电站可视化,核心是在于通过直观的视觉界面,解决传统运维中低效巡检、数据孤岛、被动响应等痛点,从而提升运营效率并提供决策支持。这是一种有效的技术手段,通过数字孪生、三维建模、数据
    的头像 发表于 10-21 17:29 1332次阅读
    光伏电站<b class='flag-5'>可视化</b>的实现

    【产品介绍】Altair HyperView用于仿真和CAE分析的后处理和数据可视化

    详细的交互式3D数据可视化以及FEA和多体系统仿真结果的探索。轻松管理大型结果文件,并将数据转换为综合动画。HyperView的多学科查看器增强了用户对复杂仿真的
    的头像 发表于 09-19 17:02 1042次阅读
    【产品介绍】Altair HyperView用于仿真和CAE分析的后处理和<b class='flag-5'>数据</b><b class='flag-5'>可视化</b>

    数字孪生可视化系统构建行业数字智能管理生态!

    数字孪生可视化系统具备丰富的模型组件,包括二维平面组件及3D模型组件,可根据用户需求进行定制。数字孪生可视化系统在行业数字升级、数字管理中有着重要的意义,充分利用大
    的头像 发表于 09-19 11:45 863次阅读
    数字孪生<b class='flag-5'>可视化</b>系统构建行业数字<b class='flag-5'>化</b>智能管理生态!

    智慧用电安全解决方案:打造全流程可视化管控

    预警、可视管控”的闭环管理体系,其核心在于实现对电气安全风险的全流程、可视化、主动性管控。 一、 全域感知与数据采集:可视化管控的数据基石
    的头像 发表于 09-04 16:17 913次阅读
    智慧用电安全解决方案:打造全流程<b class='flag-5'>可视化</b>管控

    如何使用协议分析仪进行数据分析与可视化

    使用协议分析仪进行数据分析与可视化,需结合数据捕获、协议解码、统计分析及可视化工具,将原始数据转化为可解读的图表和报告。以下是详细步骤及关键
    发表于 07-16 14:16

    工业设备可视化管理系统是什么

    工业设备可视化管理系统是一种基于物联网(IoT)、大数据、云计算、数字孪生等技术,对工业设备的运行状态、性能参数、维护信息等进行实时监测、数据整合与可视化呈现的智能管理平台。它通过将复
    的头像 发表于 05-27 14:56 1321次阅读
    工业设备<b class='flag-5'>可视化</b>管理系统是什么

    光伏电站可视化这种技术的难点有哪些?

    通过数字孪生、三维建模、数据融合等技术,将光伏电站的物理环境、设备状态、发电数据等信息以图形、动态的形式呈现,这便是光伏电站可视化,其核
    的头像 发表于 05-15 10:56 727次阅读

    结构可视化:利用数据编辑器剖析数据内在架构​

    结构可视化聚焦于展示数据的内部结构和各部分之间的关系,使企业能够深入理解数据的组织方式和层次体系,从而更好地进行数据管理和分析。通过结构可视化
    的头像 发表于 05-07 18:42 896次阅读

    工业设备数据集中监控可视化管理平台是什么

    工业设备数据集中监控可视化管理平台是一种用于整合、监控和可视化工业设备数据的综合性系统,旨在帮助企业实现设备数据的集中管理、实时监控和
    的头像 发表于 05-06 11:10 1211次阅读

    VirtualLab Fusion应用:3D系统可视化

    描述和F-Theta透镜的应用示例。 光学系统的3D-可视化 VirtualLab Fusion提供的工具可以实现光学系统的3D可视化,因此可以用于检查元件的位置,以及快速了解系统内部的光传播情况
    发表于 04-30 08:47