东京奥运会已经圆满结束,中国金牌榜惜居第二,与美国只有一步之遥。

今年奥运是特殊的一年,中美日三方之间的关系不言而喻,从结果就可以隐隐看出,中美金牌之间的争斗非常激烈。于是顺手做了一张可视化图表,看一看中美之间的金牌追逐战全过程,先上图为敬。(动图大小超过上传限制)

一句话原理

利用爬虫技术,在线爬取所有参赛国家每天的金银铜牌数,存到csv文件中,再利用matplotlib根据时间制作可视化图表。

数据获取(各国名称和ID)

数据源选择的是百度奥运专栏,通过F12找到了数据获取接口,再将数据进行清洗保存,这也是这个项目的主要工作量。

随意打开一个国家的奖牌详情,url中包含了一个country_id,所以得先找到所有国家的id才行。

https://tiyu.baidu.com/tokyoly/delegation/8705/tab/奖牌明细

要找id就要先找到哪里可以看到所有国家的名称页面,这样就可以获取到国家名称和id的对应关系。点击奖牌榜“更多”,页面元素可以满足需求。

打开奖牌榜“更多”,找到对应的接口。由于此接口返回的是html,因此需要进一步的数据清洗。即匹配国家的id和name,使用re.findall(pat, response)找出所有匹配项。

https://tiyu.baidu.com/tokyoly/home/tab/奖牌榜/from/pc

数据获取(各国奖牌数)

获取到id后,就可以查询奖牌数了,利用上面讲的url,返回也是一个html,进一步进行数据清洗,获取到时间和奖牌数的对应关系。

但是返回的数据中,由于页面中也有每项项目的奖牌详情,因此后面的数据是不需要关注的(图中3根红线之前的代表金银铜牌详情),需要去除。这边也有个注意点,不是每个国家都有金银铜奖牌的,因此这边匹配的时候要注意一下。

数据存储

经过上述数据清洗后,已经整齐一致,接下来就是保存到csv文件中,为后面的可视化做好准备。

可视化呈现

生成上面的可视化图表,采用的是pandas_alive库,几行代码轻松搞定。

    def chart_create(self):try:covid_df = pd.read_csv('medals_gold.csv', index_col=0, parse_dates=[0])covid_df.plot_animated(filename='medals_gold.gif', n_visible=15)except Exception as e:print(e)

这样执行时,可能会有一些调用matplotlib的一些警告,不影响结果生成,目前还没研究怎么去解决,有兴趣的盆友可以交流指导一下。

UserWarning: FixedFormatter should only be used together with FixedLocatorax.set_yticklabels(self.df.columns)
UserWarning: FixedFormatter should only be used together with FixedLocatorax.set_xticklabels([max_val] * len(ax.get_xticks()))
UserWarning: Animation was deleted without rendering anything. This is most likely unintended. To prevent deletion, assign the Animation to a variable that exists for as long as you need the Animation.warnings.warn(

总结

这个项目涉及到爬虫数据处理技术,其中涉及正则的匹配清洗,文件保存,pandas文件处理,matplotlib图表生成。

Python新手可以举一反三,做一个奖牌总数的动态图,满满的成就感有没有。有兴趣的盆友,请评论留言交流,多多点赞,共同进步。

中国加油!

奥运金牌追逐战,可视化动态图表炫酷展示相关推荐

  1. 【玩转数据】让您的PPT数据图表炫酷起来吧!

    点击上方,选择星标或置顶,精选干货,第一时间送达! 阅读大概需要11分钟 快来pick小博主吧! [导读]我们经常会发现那些能够把知识.成果讲透的博主很多都会做动态图表.他们的图是怎么做的?难度大吗? ...

  2. 如何在PPT中嵌入交互式图表?LightningChart助力炫酷展示

    我们在PPT演示文稿中嵌入图表很容易,但嵌入交互式图表似乎就没听说过了,接下来我们就一起来看看通过交互式图表在PPT中展示病人心跳的效果: PPT中展示病人心跳 下方是一个实时地图在PPT中的展现实例 ...

  3. 再见Excel,这个Python数据可视化库太炫酷了

    来源:网络 由下面代码生成  from chord import Chordmatrix = [[0, 5, 6, 4, 7, 4],[5, 0, 5, 4, 6, 5],[6, 5, 0, 4, 5 ...

  4. 从繁到简so easy,象形柱图尽显数据可视化直观、炫酷本色

    一提到数据可视化.excel数据生成图表.数据可视化处理等等,大家第一时间想到的是饼图.折线图.柱形图等,有那么一个组件它一直低调的存在着,但却是所有组件中对数据的呈现最形象.最直观的,它就是象形柱图 ...

  5. Qt界面导航插件QtitanNavigation最新版亮点解析:添加按钮灯光效果,动态更炫酷

    QtitanNavigationDesignUI实现了Digia Qt.C++的导航设计和Fluent Design UI概念 QtitanNavigationDesignUI组件是一组GUI控件,这 ...

  6. excel切片器_如何快速做出酷炫的Excel动态图表?

    作为一名天天要跟Excel打交道的 @运营菌 ,反正我认为自己做的图表就挺酷炫的.不信,你们来看看~ 王者之星 进阶の图表 运营之星 智联之薪 由于本文较长,干货较多,建议同学先点赞▲收藏★喜欢❤三连 ...

  7. vue 雷达扫描_GitHub - suneildve/vueDataV: 基于Vue + Echarts 构建的数据可视化平台,酷炫大屏展示模板和组件库,持续更新各行各业实用模板和炫酷小组件。...

    前言 一个基于Vue前端框架和第三方图表库echarts构建的可视化大数据平台,通过vue项目构建.指令的灵活运用.组件封装.组件之间通信,使内部图表组件库可实现自由替换和组合. 项目中部分前端库采用 ...

  8. 不写代码,从0到1教你制作炫酷可视化大屏

    从大屏可视化出现以来,一直深受各界企业的追捧,最典型的就是每年淘宝的双十一销售额大屏,最近我也刚接触了一个大屏项目,借此总结了一些可视化大屏制作经验与大家分享.文章写的比较细,请耐心阅读 可视化大屏制 ...

  9. Excel公式的常见应用(一)——动态图表

    拜托拜托拜托!动态图表超酷的好不好!! 看看下面的动态图表,一点就能更新欸,但这还不是最酷的: 最好看的还是这个!干净又高效: 是不是已经开始感兴趣了? OK,first,我们先看看怎么根据数据来创建 ...

最新文章

  1. java创建对象的过程_Java创建对象的过程
  2. 2020-10-29(Android 的DEX ,ODEX,ELF )
  3. JS replace 回调
  4. 使用 python 的 urllib2和 urllib模块爆破 form 表单的简易脚本
  5. Oracle入门(五D)之如何设置show parameter显示隐含参数
  6. Code Project - Your First C# Web Service
  7. android 动画 图片 内存溢出,Android有效解决加载大图片时内存溢出的问题
  8. jQuery获取URL参数
  9. 速更新!流行的开源邮件客户端 Mozilla Thunderbird 91.3修复多个高危缺陷
  10. C/C++语言函数之strlen函数用法
  11. 这款神器,不仅仅解决你的证件照需求
  12. 云数据库RDS和对象存储OSS
  13. rsem比对_基于二代测序的肿瘤新生抗原检测方法、装置和存储介质与流程
  14. 中国大学MOOC-人工智能实践:Tensorflow笔记-课程笔记 Chapter5
  15. 在同一个数据集中同时更新多表..............
  16. 酷比魔方iWork10pro安卓root+单系统+双系统恢复教程(理论适配所有x86安卓root)
  17. 【生信分析】生物分子网络构建基础——酶动力学
  18. vue地图绘制圆形、椭圆、矩形或其他自定义图案
  19. html防止恶意广告,如何拦截恶意网页和弹窗广告?解决方法
  20. Android触摸事件进行画图简单实现

热门文章

  1. Unity版本与虚拟现实头盔Deepoon大朋版本测试
  2. Centos7安装SonarQube常见问题
  3. python random randint_numpy.random.randint的详细用法 - python
  4. udev的应用案例_2018_lcf
  5. 敏捷领导力 - 修自己(练内功)
  6. IE浏览器内容加载完成,进度条不结束解决
  7. php开发架构设计,基于php的快速搭建SPA开发架构的框架设计与开发
  8. 查看Java字节码内容的几种方式
  9. 乐1 乐视X600_官方线刷包_救砖包_解账户锁
  10. 新周刊:有一种毒药叫成功