本文來源於公眾號【程序猿聲】,作者向柯瑋
前言
各位看客老爺們,我又來啦。上一期我們利用Python+百度地圖POI抓取了一些高校之間的距離數據,傳送門:
干貨 | Python爬蟲實戰:兩點間的真實行車時間與路況分析(上)
不知道上一期的爬取數據的內容大家都品嘗的怎么樣了呢。
今天給大家帶來的是python中對數據進行可視化
處理的內容。
可能大家並不是很懂這個可視化的意思,大家可以先在腦海里面腦補一下那種酷炫的數據分析圖,腦補出來了嗎?
嘿嘿,用Python究竟能做一些什么樣的圖表呢,可以肯定的告訴大家,只有你想不到,沒有它做不到!吊了半天胃口,現在上圖!
對,我們要做的圖就是和上面這幾張圖片一樣!酷吧?
上面的效果圖都是我們今天要介紹的主角pyecharts
庫制作的!當然,pyecharts
的作圖類型肯定不僅僅只有上述這些圖形,它還有很多很多類型,在這里我就不多說了。
在這一期推文中呢,我們主要介紹的是第一種圖形,柱狀圖的使用。
目錄
-
pyecharts模塊的下載
-
模型的建立
-
數據的導入
-
圖形的生成
-
加點更炫的
-
寫在最后
pyecharts模塊的下載
要使用這個模塊,你必須要下載這個模塊,打開自己電腦的cmd
,輸入pip install pyecharts
就可以了,如果本來就有這個模塊的話,就不用下載了。
當然,如果電腦沒有pip
這個模塊的話,需要自己去下載一個這個模塊,在后續的推文中,小瑋會給大家帶來一些python的基本配置應該做的相關推文,幫助大家解決python的安裝問題。
在安裝這個模塊之后,我們就可以在編譯器
中引用這個模塊了。
from pyecharts.charts import Bar
這里的Bar
是柱狀圖
的意思。
pyecharts
的庫里面有很多很多東西,我們沒有必要全部引用,那樣會讓本來簡單的程序運行起來忒慢。
模型的建立
引入了這個模塊當然還不夠,我們還需要數據。
數據的導入
大家還記得我們上一篇推文中生成的csv文件
嗎?如果已經忘了,請回去再看看上一篇推文,然后運行程序把相應的csv文件生成出來。
那么,我現在就認為大家已經有這個csv文件了。在一個程序中,我們想要獲得一個文件的數據,需要做什么?想一想。
沒錯,就是讀取這個文件。那么大家還記得讀取這個文件怎么辦嗎?沒錯,就是加入pandas
模塊,運用pandas的函數來進行文件的讀取。
import pandas as pd
具體怎么讀取呢?和之前的也是一模一樣。
path_data=pd.read_csv(r'F:\my python\123.csv')
這些在上一篇推文中都已經很詳細的介紹過了,這一次就不多說了。要是忘了記得回去看看奧-
圖形的生成
做好了這些之后,我們正式的來介紹一下建立柱狀圖這個函數。
第一步,定義一個變量是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軸值是不起任何作用的。
現在有了第一句的基礎,理解第二句就不困難了,但是x軸和y軸的賦值形式任然有一些差別,這是為什么呢?
其實這是給我們賦的y值起一個名字,當然這個位置不起名字也可以,但是如果如果你有多個y值的時候就會產生意思分歧。
這是啥意思?看下面的圖就知道了。
Pyecharts是支持使用多個y值的。
比如這個圖里面,我們就使用了商家A
和商家B
兩個y值名稱,為了便於分辨,所以我的建議是取一個名字。
在最后,x值賦好了,y值賦好了,輸入代碼。
bar.render()
即可在當前python文件所在的目錄下面看到一個html
文件,點進去就可以看到我們所制作的圖表了。
當然括號里面還可以填生成文件的名字和生成的地址,這些都是可以修改的。
因為當前我們只需要生成這一個文件,當前目錄下也沒有別的render
文件,所以我們就省略了這個步驟。
現在回到我們當前的文件,打開新生成的文件,就可以看到我們剛剛做的圖表啦。
但是,大家看到自己的圖表是不是感覺有一點空盪盪的,不夠酷炫?
不要着急,繼續往下面看,我們還有進階教程~
加點更炫的
想要使用更加酷炫的功能,我們需要再加入兩個模塊。
from pyecharts import options as opts # 導入配置模塊
from pyecharts.globals import ThemeType
這兩個模塊是pyecharts專門提供給使用者對圖表進行進一步完善。
比如說,你對這個圖表的整體顏色有要求,不想是原來的白色,你可以在最開始建立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值的旋轉角度啊,是否有滑塊,等等配置。那實例給大家舉一下例子看看這些具體指的什么。
在這個圖表中左上角的就是我的主標題,下面的就是我的副標題。
X值傾斜的角度我們在這個圖片里也可以很清晰的看出來,當前旋轉的角度是60度,這個角度的旋轉范圍是-90°到90°。
滑塊
就在最下面,那個可以滑動的東西。
因為有的時候可能數據太多,放在一個頁面里看起來太擁擠,這是我們可以用滑塊這個功能,使得我們的圖形更加分散,便於觀察。
寫在最后
當然,關於pyecharts的使用實例還有很多很多,各位看客老爺如果有興趣可以自己去pyecharts的官網進行學習,這個項目是百度研發的,官網是中文的,還有十分詳細的教程免費提供,所以小瑋在這里就不多說了。
在這個位置,我們已經完成了數據的爬取和做成圖表。
當然,這和老師吩咐的任務完成還有一定的距離,我們沒有統計時間,因為最近由於肺炎,道路沒有發生擁堵,統計時間發現並沒有明顯的變化,最終結果趨於一根平行x軸的直線。
所以就不在這里講解時間的統計和回歸分析的步驟了。等一切恢復正常了以后,會專門再寫一篇推文介紹。
最近的肺炎如此嚴重,各位看客老爺們一定要注意防護!
跟着小瑋,帶你一步一步走進數據結構和爬蟲的世界。
代碼可以在后台回復 PC02
獲取