天天看點

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

本文來源于公衆号【程式猿聲】,作者向柯玮

前言

各位看客老爺們,我又來啦。上一期我們利用Python+百度地圖POI抓取了一些高校之間的距離資料,傳送門:

幹貨 | Python爬蟲實戰:兩點間的真實行車時間與路況分析(上)

不知道上一期的爬取資料的内容大家都品嘗的怎麼樣了呢。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

今天給大家帶來的是python中對資料進行

可視化

處理的内容。

可能大家并不是很懂這個可視化的意思,大家可以先在腦海裡面腦補一下那種酷炫的資料分析圖,腦補出來了嗎?

嘿嘿,用Python究竟能做一些什麼樣的圖表呢,可以肯定的告訴大家,隻有你想不到,沒有它做不到!吊了半天胃口,現在上圖!

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表
Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表
Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表
Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

對,我們要做的圖就是和上面這幾張圖檔一樣!酷吧?

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

上面的效果圖都是我們今天要介紹的主角

pyecharts

庫制作的!當然,

pyecharts

的作圖類型肯定不僅僅隻有上述這些圖形,它還有很多很多類型,在這裡我就不多說了。

在這一期推文中呢,我們主要介紹的是第一種圖形,柱狀圖的使用。

目錄

  • pyecharts子產品的下載下傳
  • 模型的建立
  • 資料的導入
  • 圖形的生成
  • 加點更炫的
  • 寫在最後

pyecharts子產品的下載下傳

要使用這個子產品,你必須要下載下傳這個子產品,打開自己電腦的

cmd

,輸入

pip install pyecharts

就可以了,如果本來就有這個子產品的話,就不用下載下傳了。

當然,如果電腦沒有

pip

這個子產品的話,需要自己去下載下傳一個這個子產品,在後續的推文中,小玮會給大家帶來一些python的基本配置應該做的相關推文,幫助大家解決python的安裝問題。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

在安裝這個子產品之後,我們就可以在

編譯器

中引用這個子產品了。

from pyecharts.charts import Bar
           

這裡的

Bar

柱狀圖

的意思。

pyecharts

的庫裡面有很多很多東西,我們沒有必要全部引用,那樣會讓本來簡單的程式運作起來忒慢。

模型的建立

引入了這個子產品當然還不夠,我們還需要資料。

資料的導入

大家還記得我們上一篇推文中生成的

csv檔案

嗎?如果已經忘了,請回去再看看上一篇推文,然後運作程式把相應的csv檔案生成出來。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

那麼,我現在就認為大家已經有這個csv檔案了。在一個程式中,我們想要獲得一個檔案的資料,需要做什麼?想一想。

沒錯,就是讀取這個檔案。那麼大家還記得讀取這個檔案怎麼辦嗎?沒錯,就是加入

pandas

子產品,運用pandas的函數來進行檔案的讀取。

import pandas as pd
           

具體怎麼讀取呢?和之前的也是一模一樣。

path_data=pd.read_csv(r\'F:\my python\123.csv\')
           

這些在上一篇推文中都已經很詳細的介紹過了,這一次就不多說了。要是忘了記得回去看看奧-

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

圖形的生成

做好了這些之後,我們正式的來介紹一下建立柱狀圖這個函數。

第一步,定義一個變量是

bar

型變量。

bar=Bar()
           

這一句代碼的意思就是使

bar

Bar

型變量。接下裡就是為這個變量賦x軸值和y軸值。

bar.add_xaxis(path_data[\'地點\'].tolist())bar.add_yaxis(\'用時\',path_data[\'time\'].tolist())bar.add_yaxis(\'距離\',path_data[\'distance\'].tolist())
           

讓我們一句一句研究代碼。第一句,函數為

add_xaxis()

,就是添加x軸資料,給x軸添加什麼資料呢?

Path_data

中的

‘出發時間’

這一列資料。

在這個位置我們要注意,劃重點,一定要注意,在後面加上

.tolist()

因為

path_data

是最開始讀取csv檔案的,裡面的資料儲存形式和csv形式保持一緻,是以我們要把她轉化為python中清單的形式,即使用

.tolist

這個函數,否則的話在這個位置添加x軸值是不起任何作用的。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

現在有了第一句的基礎,了解第二句就不困難了,但是x軸和y軸的指派形式任然有一些差别,這是為什麼呢?

其實這是給我們賦的y值起一個名字,當然這個位置不起名字也可以,但是如果如果你有多個y值的時候就會産生意思分歧。

這是啥意思?看下面的圖就知道了。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

Pyecharts是支援使用多個y值的。

比如這個圖裡面,我們就使用了

商家A

商家B

兩個y值名稱,為了便于分辨,是以我的建議是取一個名字。

在最後,x值賦好了,y值賦好了,輸入代碼。

bar.render()
           

即可在目前python檔案所在的目錄下面看到一個

html

檔案,點進去就可以看到我們所制作的圖表了。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

當然括号裡面還可以填生成檔案的名字和生成的位址,這些都是可以修改的。

因為目前我們隻需要生成這一個檔案,目前目錄下也沒有别的

render

檔案,是以我們就省略了這個步驟。

現在回到我們目前的檔案,打開新生成的檔案,就可以看到我們剛剛做的圖表啦。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

但是,大家看到自己的圖表是不是感覺有一點空蕩蕩的,不夠酷炫?

不要着急,繼續往下面看,我們還有進階教程~

加點更炫的

想要使用更加酷炫的功能,我們需要再加入兩個子產品。

from pyecharts import options as opts  # 導入配置子產品
from pyecharts.globals import ThemeType
           

這兩個子產品是pyecharts專門提供給使用者對圖表進行進一步完善。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

比如說,你對這個圖表的整體顔色有要求,不想是原來的白色,你可以在最開始建立bar的時候這樣寫。

bar=Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION,width=\'1280px\',height=\'720px\'))
           

Init_opts=opts.InitOpts()

函數是給這個圖表設定一些初始參數,比如說背景的顔色,分辨率等等的。

想設定主題色就用以下代碼。

theme=themeType.xxxx
           

這個xxx就是主題的顔色,我在這裡寫的是紫色,當然還有其他的顔色,看客老爺可以自己去官網進行了解。後面分辨率的參數看客老爺可以根據自己需要進行調整。

這些是在建立圖表的時候進行的一些配置,那麼在輸入資料以後,我們可以進行哪些步驟?

bar.set_global_opts(title_opts=opts.TitleOpts(title=\'武漢各高校之間的距離與乘車所需時間\',subtitle=\'副标題\'),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=60)),datazoom_opts=[opts.DataZoomOpts()])
           

我們可以使用

set_global_opts

函數進行我們所需要的個性化設定。

比如說主标題啊,副标題啊,x值的旋轉角度啊,是否有滑塊,等等配置。那執行個體給大家舉一下例子看看這些具體指的什麼。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

在這個圖表中左上角的就是我的主标題,下面的就是我的副标題。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

X值傾斜的角度我們在這個圖檔裡也可以很清晰的看出來,目前旋轉的角度是60度,這個角度的旋轉範圍是-90°到90°。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

滑塊

就在最下面,那個可以滑動的東西。

因為有的時候可能資料太多,放在一個頁面裡看起來太擁擠,這是我們可以用滑塊這個功能,使得我們的圖形更加分散,便于觀察。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

寫在最後

當然,關于pyecharts的使用執行個體還有很多很多,各位看客老爺如果有興趣可以自己去pyecharts的官網進行學習,這個項目是百度研發的,官網是中文的,還有十分詳細的教程免費提供,是以小玮在這裡就不多說了。

Python爬蟲實戰(中):資料可視化-教你做出漂亮的圖表

在這個位置,我們已經完成了資料的爬取和做成圖表。

當然,這和老師吩咐的任務完成還有一定的距離,我們沒有統計時間,因為最近由于肺炎,道路沒有發生擁堵,統計時間發現并沒有明顯的變化,最終結果趨于一根平行x軸的直線。

是以就不在這裡講解時間的統計和回歸分析的步驟了。等一切恢複正常了以後,會專門再寫一篇推文介紹。

最近的肺炎如此嚴重,各位看客老爺們一定要注意防護!

跟着小玮,帶你一步一步走進資料結構和爬蟲的世界。

代碼可以在背景回複 

PC02

 擷取