引言
matplotlib是python上最基礎也是最常用的可視化工具,許多更高級的可視化庫都是在matplotlib上再次封裝提供更簡單易用的功能,比如seaborn庫,而且matplotlib的使用方式,繪製思想已成為python繪圖庫的標杆,其它大多數繪圖庫都會特意使用與matplotlib類似的函數名稱參數及思想,如果你掌握了matplotlib的繪製方式及思想,那麼在python上任何一個可視化庫的使用你都會感到簡單易用。
matplotlib的安裝
如果之前閱讀過小編髮表過的《Anaconda使用總結》併成功安裝成功同學,Anaconda已經內置了matplotlib 和其他依賴庫,所以可以忽略此步。
當然不願意使用Anaconda的同學可以自主安裝。
Matplotlib的官網地址是: http://matplotlib.org/ ,
下載地址為 :https://sourceforge.net/projects/matplotlib/files/
windows 的安裝
只根據自己的系統選擇32位和64位的直接安裝就可以啦。由於也會涉及到相關依賴庫,這個大家可以搜一下相關文章。
mac的安裝
準備部分,如果是全新安裝需要打開任意Terminal工具,詳細安裝流程如下:
#安裝brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 安裝python
brew install python
# 安裝pip
brew install pip
# 安裝numpy
pip install numpy
# 安裝scipy
pip install scipy
# 安裝matplotlib
pip install matplotlib
上面的安裝過程可能會報錯,需要自行解決,這裡就不在擴展,所以小編強烈建議大家使用Anaconda。
matplotlib的使用
實現一個最簡單的plot函數調用:
import matplotlib.pyplot as plt
y=pp.DS.Transac_open # 設置y軸數據,以數組形式提供
x=len(y) # 設置x軸,以y軸數組長度為寬度
x=range(x) # 以0開始的遞增序列作為x軸數據
plt.plot(x,y) # 只提供x軸,y軸參數,畫最簡單圖形
圖形輸出結果類似於:
加入新方法:
plt.figure() :自定義畫布大小
plt.subplot():設置畫布劃分以及圖像在畫布上輸出的位置
import matplotlib.pyplot as plt
y=pp.DS.Transac_open # 設置y軸數據,以數組形式提供
x=len(y) # 設置x軸,以y軸數組長度為寬度
x=range(x) # 以0開始的遞增序列作為x軸數據
#==============================
plt.figure(figsize=(8,8),dpi=80) # 畫圖之前首先設置figure對象,此函數相當於設置一塊自定義大小的畫布,使得後面的圖形輸出在這塊規定了大小的畫布上,其中參數figsize設置畫布大小
plt.subplot(221) # 將figure設置的畫布大小分成幾個部分,參數‘221’表示2(row)x2(colu),即將畫布分成2x2,兩行兩列的4塊區域,1表示選擇圖形輸出的區域在第一塊,圖形輸出區域參數必須在“行x列”範圍 ,此處必須在1和2之間選擇——如果參數設置為subplot(111),則表示畫布整個輸出,不分割成小塊區域,圖形直接輸出在整塊畫布上
plt.plot(y,xx) # 在2x2畫布中第一塊區域輸出圖形
plt.subplot(222)
plt.plot(y,xx) #在2x2畫布中第二塊區域輸出圖形
plt.show()
plt.subplot(223) #在2x2畫布中第三塊區域輸出圖形
plt.plot(y,xx)
plt.subplot(224) # 在在2x2畫布中第四塊區域輸出圖形
plt.plot(y,xx)
#==============================
plt.plot(x,y) # 只提供x軸,y軸參數,畫最簡單圖形
圖形輸出結果類似於:
加入新方法:
plt.xticks():設置x軸刻度的表現方式
plt.xlim():設置x軸刻度的取值範圍
import matplotlib.pyplot as plt
import numpy as nu
y=pp.DS.Transac_open # 設置y軸數據,以數組形式提供
x=len(y) # 設置x軸,以y軸數組長度為寬度
x=range(x) # 以0開始的遞增序列作為x軸數據
plt.figure(figsize=(8,8),dpi=80) # 畫圖之前首先設置figure對象,此函數相當於設置一塊自定義大小的畫布,使得後面的圖形輸出在這塊規定了大小的畫布上,其中參數figsize設置畫布大小
plt.subplot(111) # 將figure設置的畫布大小分成幾個部分,參數‘221’表示2(row)x2(colu),即將畫布分成2x2,兩行兩列的4塊區域,1表示選擇圖形輸出的區域在第一塊,圖形輸出區域參數必須在“行x列”範圍,此處必須在1和2之間選擇——如果參數設置為subplot(111),則表示畫布整個輸出,不分割成小塊區域,圖形直接輸出在整塊畫布上
plt.plot(y,x)
#================================
plt.xlim(0,1000) # 設置x軸刻度範圍,從0~1000
plt.ylim(0,20) # 設置y軸刻度的範圍,從0~20
plt.xticks(nu.linspace(0,1000,15,endpoint=True)) # 設置x軸刻度
plt.yticks(nu.linspace(0,20,10,endpoint=True)) # 設置y軸刻度
#numpy.linspace()方法返回一個等差數列數組,第一個參數表示等差數列的第一個數,第二個參數表示等差數列最後一個數,第三個參數設置組成等差數列的元素個數,endpoint參數設置最後一個數是否包含在該等差數列。數列中相鄰元素間的步長值為隨機
如:nu.linspace(0,1000,15,endpoint=True)表示:第一個元素為0,最後一個數為1000,在這個範圍內,取15個值,構成一個等差數列,步長值隨機,且1000包含在該數列中
#================================
plt.show()
圖形輸出結果類似於:
修改plot方法,新加入參數:
plt.plot(y,xx,color='red',linewidth=2.5,linestyle='-') # color參數設置曲線顏色,linewidth設置曲線寬度,linestyle設置曲線風格
圖形輸出結果類似於:
最後這張圖,是小編使用matplotlib生成的某隻股票K線圖。關於K線圖詳細的生成,小編會再日後的文章中詳細介紹。