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

2024-05-15 13:38

本文主要是介绍牛逼操作!我用 Python 做了一个编程语言 20 年的动态排行榜!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阅读本文大概需要 4 分钟。

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

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

01.编程语言资料获取

首先我们是进行的是资料的获取,我们打开链接https://www.tiobe.com/tiobe-index/,就可以看到 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,其热度却逐渐的走低。虽然编程语言热度有高有低,但是不可否认的是,每一门编程语言,都有其应用的价值,能够在编程语言的历史长河中历经洗礼,而没有被淘汰,只要好好掌握一门语言,都会有用武之地。

推荐阅读

1

Python 中更优雅的日志记录方案

2

别再造假数据了,来试试 Faker 这个库吧!

3

200 行代码实现一个滑动验证码

4‍‍

如何用一条命令将网页转成电脑 App

好文和朋友一起看~

这篇关于牛逼操作!我用 Python 做了一个编程语言 20 年的动态排行榜!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

RedHat运维-Linux文本操作基础-AWK进阶

你不用整理,跟着敲一遍,有个印象,然后把它保存到本地,以后要用再去看,如果有了新东西,你自个再添加。这是我参考牛客上的shell编程专项题,只不过换成了问答的方式而已。不用背,就算是我自己亲自敲,我现在好多也记不住。 1. 输出nowcoder.txt文件第5行的内容 2. 输出nowcoder.txt文件第6行的内容 3. 输出nowcoder.txt文件第7行的内容 4. 输出nowcode

20.Spring5注解介绍

1.配置组件 Configure Components 注解名称说明@Configuration把一个类作为一个loC容 器 ,它的某个方法头上如果注册7@Bean , 就会作为这个Spring容器中的Bean@ComponentScan在配置类上添加@ComponentScan注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <context:component-scan>@Sc

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

SQL Server中,always on服务器的相关操作

在SQL Server中,建立了always on服务,可用于数据库的同步备份,当数据库出现问题后,always on服务会自动切换主从服务器。 例如192.168.1.10为主服务器,12为从服务器,当主服务器出现问题后,always on自动将主服务器切换为12,保证数据库正常访问。 对于always on服务器有如下操作: 1、切换主从服务器:假如需要手动切换主从服务器时(如果两个服务

JavaWeb系列二十: jQuery的DOM操作 下

jQuery的DOM操作 CSS-DOM操作多选框案例页面加载完毕触发方法作业布置jQuery获取选中复选框的值jQuery控制checkbox被选中jQuery控制(全选/全不选/反选)jQuery动态添加删除用户 CSS-DOM操作 获取和设置元素的样式属性: css()获取和设置元素透明度: opacity属性获取和设置元素高度, 宽度: height(), widt

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

python 喷泉码

因为要完成毕业设计,毕业设计做的是数据分发与传输的东西。在网络中数据容易丢失,所以我用fountain code做所发送数据包的数据恢复。fountain code属于有限域编码的一部分,有很广泛的应用。 我们日常生活中使用的二维码,就用到foutain code做数据恢复。你遮住二维码的四分之一,用手机的相机也照样能识别。你遮住的四分之一就相当于丢失的数据包。 为了实现并理解foutain

python 点滴学

1 python 里面tuple是无法改变的 tuple = (1,),计算tuple里面只有一个元素,也要加上逗号 2  1 毕业论文改 2 leetcode第一题做出来