Python筆記 · 基於72萬知乎用戶信息的數據可視化

之前寫過一個獲取知乎用戶主頁信息的多線程爬蟲: Python筆記 · 一個多線程知乎用戶爬蟲的實現 ,大概獲取了72萬知乎用戶的主頁信息。

這幾天試著用這些數據和Python的一些工具,比如jupyter,numpy,matplotlib和wordcloud等做了一些數據可視化,下面把一些成果分享給大家。

數據可視化的代碼主要使用jupyter notebook編寫,也放在了之前的爬蟲項目下的analysis文件夾中:moranzcw/Zhihu-Spider 。

首先是使用常規的直方圖統計了一些信息。

贊同數和感謝數分布:

橫坐標是贊同數或感謝數,縱坐標是在這個贊同數或感謝數上的用戶人數。可以看到,理所當然是一個長尾分布,人們更喜歡用贊同而不是感謝。

為什麼分成六幅圖而不是一幅圖,原因在於,隨著贊同數或感謝數升高,用戶數量衰減得太快,若畫在一幅圖中,趨勢非常貼近坐標系,效果會非常差。

另外,第六幅圖右下角獲得三百多萬贊同的用戶,大家應該可以很容易猜到是誰了。

贊同數和感謝數的空間分布:

現在,可以更進一步,使用x軸表示贊同數,y軸表示感謝數,z軸表示用戶數量,這樣我們得到了一個「空間直方圖」。

這裡注意,為了更好的展示效果,z軸不是等比例的,而是指數遞增的。

可以看到,用戶分布非常貼近x軸,也就是說點贊的使用率要遠高於感謝。

關注數和被關注數分布:

用戶的關注數和被關注數的趨勢大致相近,但是高被關注數的用戶要多於高關注數的用戶。這也確實符合一般常識:一般用戶通常至多關注幾百用戶,而一個熱門用戶往往可以被數萬用戶關注。

另外,我們也能注意到一個很有意思的細節,第一幅圖中,關注者數為0的用戶不存在,這顯然不符合常理,但是數據是沒有問題的,問題在數據的篩選上。之前講爬蟲的文章中,我們獲取用戶的策略是廣度優先搜索,並且是使用用戶的關注列表來搜索,這就決定了獲取到的用戶都至少有一個關注者。

關注數和被關注數空間分布:

可以看出,原點存在一個峰值,數據分布貼近x軸和y軸向兩邊延展,存在一定的極化,由此判斷,可以不嚴謹地將用戶分幾類:熱門用戶(高關注者數,低關注數),普通用戶(低關注者數,低關注數),重度用戶(低關注者數,高關注數)。

同時,我們可以注意到,在x軸 ,關注數5000的位置,存在一個峰值,關注數高於5000的用戶幾乎沒有,這是因為知乎對每個用戶的關注數限制為5000,導致一些重度用戶集中在5000這個位置,無法繼續關注更多用戶。

還有一些例如回答數,收藏數等的統計,個人認為過於單調,不一一放上來了。

全國知乎用戶地理分布:

這個圖沒有用更好的工具做,是直接用matplotlib硬來的,其實用一些如Echarts,Plotly等更高級的工具反倒更簡單,但是之前都用的matplotlib,這裡畢竟只為了一個圖就引入其他庫了。

這個圖製作流程大致就是,用百度地圖API截取一張自己需要的地圖作為背景,然後依然使用百度地圖API將用戶信息里的中文地名批量轉換到經緯度,再依次經緯度繪製在圖上就可以了。

從圖上看,這個分布確實很符合常理,大量用戶集中在沿海發達城市。知乎以年輕用戶為主。

然後使用了詞雲工具展示一些數據,效果也還不錯。

(鑒於有人說圖片晃眼睛,於是改了一下配色)

獲得贊同最多的用戶:

這一堆ID大家應該很熟悉,都是各位時間線的主要構成。

獲得感謝最多的用戶:

獲得關注最多的用戶:

答案被收藏最多的用戶:

感謝數,關注數,贊同數和收藏數基本上就是幾個大V霸屏了,比如 @張佳瑋 @肥肥貓 等。

回答數最多的用戶:

文章數最多的用戶:

提問最多的用戶:

提問,文章和回答數的熱門用戶就和之前的區別大了,反正這上面大多數ID我都不認識,看來,往往大V們喜歡回答,而喜歡寫文章和提問的往往又不是普通用戶熟悉的大V。

最後統計了用戶的一些標籤信息。

最熱門的學校:

都說知乎985起步,常春藤平均水平,看起來好像不是開玩笑哈哈哈。不過這個圖依然只能當作參考,首先是爬取的用戶只有72萬,不代表整個知乎,其次爬取策略上,也會優先爬取熱門用戶,最後,也是評論區提到的,往往學歷較高的用戶都會認真填寫學歷信息。這些都會影響統計結果。

最熱門的專業:

IT依舊是最熱門的行業,大家都知道了。

最熱門的公司:

BAT,華為,網易等非常熱門,這圖看起來不像是統計熱門公司,而是統計熱門IT公司。

最熱門的職位:

在知乎上被黑出翔的產品經理居然是最熱門的。

最熱門的行業:

可以說知乎就是一個程序員次文化社區。

(以上統計結果僅僅基於72萬用戶數據,僅作參考。)


推薦閱讀:

Python爬蟲實戰之使用Scrapy爬起點網的完本小說
第四章:動態網頁抓取 (解析真實地址 + selenium)
汽車之家字體反爬破解實踐
爬取張佳瑋138萬知乎關注者:數據可視化
python爬蟲之圖片下載APP1.0

TAG:Python | 数据可视化 | python爬虫 |