牛逼操作!我用Python做了一个编程语言20年的动态排行榜!

优采云 发布时间: 2022-05-29 16:35

  牛逼操作!我用Python做了一个编程语言20年的动态排行榜!

  

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

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

  01.编程语言资料获取

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

  

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

  

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

  02.清洗数据

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

  

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

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

  03.设置柱状图的颜色

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

  

  04.大功告成,动态显示

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

  

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

  05.动态现实图

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

  

  06.更炫酷的动态图

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

  

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

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

  感谢阅读

<p style="max-width: 100%;min-height: 1em;box-sizing: border-box !important;overflow-wrap: break-word !important;">推荐阅读:

  1真实的上海IT圈:张江男vs漕河泾男

  2:真实的北京IT圈:后厂村姑 vs 后厂村花?

  3:为什么你的提问没人解答?

  4:Python爱好者社区历史文章合集

  <br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />

  <br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />

  重磅!Python交流已成立<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />公众号运营至今,离不开小伙伴们的支持。<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />为了给小伙伴们提供一个互相交流的技术平台,特地开通了Python交流群。群里有不少技术大神,不时会分享一些技术要点,更有一些资源收藏爱好者不时分享一些优质的学习资料。(免费,不卖课!)

  需要进群的朋友,可长按扫描下方二维码。

  

<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" />

  ▲长按扫码</p>

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线