Python資料視覺化常用4大繪相簿原理詳解
今天我們就用一篇文章,帶大家梳理matplotlib、seaborn、plotly、pyecharts的繪圖原理,讓大家學起來不再那麼費勁!
1. matplotlib繪圖原理
關於matplotlib更詳細的繪圖說明,大家可以參考下面這篇文章,相信你看了以後一定學得會。
matplotlib繪圖原理:http://suo.im/678FCo
1)繪圖原理說明
通過我自己的學習和理解,我將matplotlib繪圖原理高度總結為如下幾步:
導庫;建立figure畫布物件;獲取對應位置的axes座標系物件;呼叫axes物件,進行對應位置的圖形繪製;顯示圖形;
2)案例說明
# 1.匯入相關庫 import matplotlib as mpl import matplotlib.pyplot as plt # 2.建立figure畫布物件 figure = plt.figure() # 3.獲取對應位置的axes座標系物件 axes1 = figure.add_subplot(2,1,1) axes2 = figure.add_subplot(2,2) # 4.呼叫axes物件,進行對應位置的圖形繪製 axes1.plot([1,3,5,7],[4,9,6,8]) axes2.plot([1,2,4,5],[8,2]) # 5.顯示圖形 figure.show()
結果如下:
2. seaborn繪圖原理
在這四個繪相簿裡面,只有matplotlib和seaborn存在一定的聯絡,其餘繪相簿之間都沒有任何聯絡,就連繪圖原理也都是不一樣的。
seaborn是matplotlib的更高階的封裝。因此學習seaborn之前,首先要知道matplotlib的繪圖原理。由於seaborn是matplotlib的更高階的封裝,對於matplotlib的那些調優引數設定,也都可以在使用seaborn繪製圖形之後使用。
我們知道,使用matplotlib繪圖,需要調節大量的繪圖引數,需要記憶的東西很多。而seaborn基於matplotlib做了更高階的封裝,使得繪圖更加容易,它不需要了解大量的底層引數,就可以繪製出很多比較精緻的圖形。不僅如此,seaborn還相容numpy、pandas資料結構,在組織資料上起了很大作用,從而更大程度上的幫助我們完成資料視覺化。
由於seaborn的繪圖原理,和matplotlib的繪圖原理一致,這裡也就不詳細介紹了,大家可以參考上面matplotlib的繪圖原理,來學習seaborn究竟如何繪圖,這裡還是提供一個網址給大家。
seaborn繪圖原理:http://suo.im/5D3VPX
1)案例說明
# 1.匯入相關庫 import seaborn as sns import matplotlib.pyplot as plt df = pd.read_excel("data.xlsx",sheet_name="資料來源") sns.set_style("dark") plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False # 注意:estimator表示對分組後的銷售數量求和。預設是求均值。 sns.barplot(x="品牌",y="銷售數量",data=df,color="steelblue",orient="v",estimator=sum) plt.show()
結果如下:
注意:可以看到在上述的繪圖程式碼中,你應該有這樣一個感受,圖中既有matplotlib的繪圖程式碼,也有seaborn的繪圖程式碼。其實就是這樣的,我們就是按照matplobt的繪圖原理進行圖形繪製,只是有些地方改成seaborn特有的程式碼即可,剩下的調整格式,都可以使用matplotlib中的方法進行調整
3. plotly繪圖原理
首先在介紹這個圖的繪圖原理之前,我們先簡單介紹一下plotly這個繪相簿。
- plotly是一個基於javascript的繪相簿,plotly繪圖種類豐富,效果美觀;
- 易於儲存與分享plotly的繪圖結果,並且可以與Web無縫整合;
- ploty預設的繪圖結果,是一個HTML網頁檔案,通過瀏覽器可以直接檢視;
它的繪圖原理和matplotlib、seaborn沒有任何關係,你需要單獨去學習它。同樣我還是提供了一個網址給你,讓你更詳細的學習plotly。
plotly繪圖原理:http://suo.im/5vxNTu
1)繪圖原理說明
通過我自己的學習和理解,我將plotly繪圖原理高度總結為如下幾步:
- 繪製圖形軌跡,在ployly裡面叫做trace,每一個軌跡是一個trace。
- 將軌跡包裹成一個列表,形成一個“軌跡列表”。一個軌跡放在一個列表中,多個軌跡也是放在一個列表中。
- 建立畫布的同時,並將上述的軌跡列表,傳入到Figure()中。
- 使用Layout()新增其他的繪圖引數,完善圖形。
- 展示圖形。
2)案例說明
import numpy as np import pandas as pd import plotly as py import plotly.graph_objs as go import plotly.expression as px from plotly import tools df = pd.read_excel("plot.xlsx") # 1.繪製圖形軌跡,在ployly裡面叫做`trace`,每一個軌跡是一個trace。 trace0 = go.Scatter(x=df["年份"],y=df["城鎮居民"],name="城鎮居民") trace1 = go.Scatter(x=df["年份"],y=df["農村居民"],name="農村居民") # 2.將軌跡包裹成一個列表,形成一個“軌跡列表”。一個軌跡放在一個列表中,多個軌跡也是放在一個列表中。 data = [trace0,trace1] # 3.建立畫布的同時,並將上述的`軌跡列表`,傳入到`Figure()`中。 fig = go.Figure(data) # 4.使用`Layout()`新增其他的繪圖引數,完善圖形。 fig.update_layout( title="城鄉居民家庭人均收入",xaxis_title="年份",yaxis_title="人均收入(元)" ) # 5.展示圖形。 fig.show()
結果如下:
4. pyecharts繪圖原理
Echarts是一個由百度開源的資料視覺化工具,憑藉著良好的互動性,精巧的圖表設計,得到了眾多開發者的認可。而python是一門富有表達力的語言,很適合用於資料處理。當資料分析遇上了資料視覺化時,pyecharts誕生了。
pyecharts分為v0.5和v1兩個大版本,v0.5和v1兩個版本不相容,v1是一個全新的版本,因此我們的學習儘量都是基於v1版本進行操作。
和plotly一樣,pyecharts的繪圖原理也是完全不同於matplotlib和seaborn,我們需要額外的去學習它們的繪圖原理,基於此,同樣提供一個網址給你,讓你更詳細的學習pyecharts。
pyecharts的繪圖原理:http://suo.im/5S1PF1
1)繪圖原理說明
通過我自己的學習和理解,我將plotly繪圖原理高度總結為如下幾步:
- 選擇圖表型別;
- 宣告圖形類並新增資料;
- 選擇全域性變數;
- 顯示及儲存圖表;
2)案例說明
# 1.選擇圖表型別:我們使用的是線圖,就直接從charts模組中匯入Line這個模組; from pyecharts.charts import Line import pyecharts.options as opts import numpy as np x = np.linspace(0,2 * np.pi,100) y = np.sin(x) ( # 2.我們繪製的是Line線圖,就需要例項化這個圖形類,直接Line()即可; Line() # 3.新增資料,分別給x,y軸新增資料; .add_xaxis(xaxis_data=x) .add_yaxis(series_name="繪製線圖",y_axis=y,label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts(title="我是標題",subtitle="我是副標題",title_link="https://www.baidu.com/"),tooltip_opts=opts.TooltipOpts()) ).render_notebook() # 4.render_notebook()用於顯示及儲存圖表;
結果如下:
小結
通過上面的學習,我相信肯定會讓大家對於這些庫的繪圖原理,一定會有一個新的認識。
其實其實不管是任何程式設計軟體的繪相簿,都有它的繪圖原理。我們與其盲目的去繪製各種各樣的圖形,不如先搞清楚它們的套路後,再去進行繪相簿的圖形練習,這樣下去,我覺得大家會有一個很大的提高。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。