我用Python做了一個編程語言20年的動態排行榜!

--

在編程語言的舞臺上,一直有着誰是最好的語言的競爭,小編雖然一直用着幾種編程語言,但是感覺個人的想法不能代表着大家的想法。雖然關於最好語言的爭論從未停止過,但是關於編程語言的熱度排名,我們可以從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,其熱度卻逐漸的走低。雖然編程語言熱度有高有低,但是不可否認的是,每一門編程語言,都有其應用的價值,能夠在編程語言的歷史長河中歷經洗禮,而沒有被淘汰,只要好好掌握一門語言,都會有用武之地。

文章來源:菜鸟学Python
原文鏈接:https://mp.weixin.qq.com/s/valITYBo4CfS9GqYszm3tw

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。各位也可以關注我的Facebook,按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!期待你與我互動起來~

文章推薦

餅圖變形記,肝了3000字,收藏就是學會!

MySQL必須掌握4種語言!

太實用了!4種方法教你輕鬆製作互動式儀表板!

跟資料打交道的人都得會的這8種資料模型,滿足工作中95%的需求

妙呀!一行Python程式碼

回顧十週入門數據分析系列文:

關注數據君的臉書:

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按贊我的臉書,會有豐富資料包贈送唷!

--

--

數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/