横向柱状图怎么做排行_牛!用Python做编程语言20年动态排行榜!

【文末扫码入群,学习资料等你!】

17cba4aadd8f0ac215fda9a98b79bdcb.png

在编程语言的舞台上,一直有着谁是最好的语言的竞争,小编虽然一直用着几种编程语言,但是感觉个人的想法不能代表着大家的想法。虽然关于最好语言的争论从未停止过,但是关于编程语言的热度排名,我们可以从TIOBE 编程语言排行榜上进行探索。

今天,小编就带领大家爬取一下,自2001年5月至今,TIOBE 编程语言排行榜上编程语言的变化情况,看一下在接近20年的时间里,编程语言的热度是如何变化的。

01

编程语言资料获取

首先我们是进行的是资料的获取,我们打开链接https://www.tiobe.com/tiobe-index/,就可以看到TIOBE编程语言的排行榜,通过查看其网页源代码,可以发现,我们想要爬取的资料,都显示在网页源代码里,如下图所示:

c2ac5fea6c40c16a91180871328ca38a.png

接下来就可以直接利用爬虫来获取网页源代码,并利用正则表达式来匹配我们需要的关键字内容,部分程序如下图所示:

2b28d723575970ba4d6801383b12040d.png

上述程序中,我们对于抓取到的数据,进行正则表达式匹配,然后提取各个编程语言在不同时间段的热度数值,并保存到本地的文件中。

02

清洗数据

接下来,我们要完成的就是利用动态可视化的柱状图来观察各种编程语言随着时间的热度变化。我们先对数据进行清洗,获取编程语言的名字一起设置一个嵌套的字典,程序如下图所示:

3340e2c5d808175c9c361838df1c10c5.png

上述程序中的嵌套字典含义为每一个月份下的每种编程语言的热度值,其结构格式如下所示:

{“2020-1-12”:{“Java”:16, “C++”:14, “python”:10,…}, “2020-2-13”:{“Java”:16.3, “C++”:15.6, …},…}。

03

设置柱状图的颜色

为了在可视化过程中区分每一种编程语言,需要为柱状图中的每一柱都设置不同的颜色,同时,将嵌套字典按照月份的顺序进行排序,程序如下所示:

0d3b4b8c371ba37342a068c053b50e15.png

04

大功告成,动态显示

最后,我们便可以对数据进行可视化的展示,程序如下图所示:

89e38224f4d0a8fedf7df5988b558c63.png

上述程序中,首先需要清除figure 中的活动轴,我们对于嵌套字典的每一个月份,将每一个月份中的编程语言,按照其热度值进行从小到大的排序,然后将排序号的编程语言,关联其对应的柱状图颜色。

05

动态现实图

接下来就可以画出我们的柱状图,然后暂停显示结果,并不断循环,从而达到动态柱状图的功能,其效果如下图所示:

cb382bfd773b3d4c04d1c972d89e1a1a.gif

06

更炫酷的动态图

如果大家觉得图做的不够优美,大家可以利用js进行数据渲染制作,这里小编也为大家利用Flourish制作了一个更加好看的界面,如下图所示:

750c9e521880c9dd9199c79c6f349c37.gif

从上面的可视化动图可以看出,Java和C语言一直是牢牢地掌控着编程语言热度前两名的宝座,而python语言,凭借着人工智能的热潮,逐渐的从排名末尾,一路追赶,排名在第三位,并逐渐拉开了与第四名的差距,可谓是编程语言界的逆袭王者。

而像是C++和PHP,其热度却逐渐的走低。虽然编程语言热度有高有低,但是不可否认的是,每一门编程语言,都有其应用的价值,能够在编程语言的历史长河中历经洗礼,而没有被淘汰,只要好好掌握一门语言,都会有用武之地。

49fd868c17f66527724ab33610e5ef81.png

END

7eff06a4c27b9091f64f7174b3bc06c1.png

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值