使用matplotlib實現數據可視化

編程語言 可視化 Python 數據挖掘 機器學習與量化交易 2017-05-01

引言

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軸參數,畫最簡單圖形

圖形輸出結果類似於:

使用matplotlib實現數據可視化

加入新方法:

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軸參數,畫最簡單圖形

圖形輸出結果類似於:

使用matplotlib實現數據可視化

加入新方法:

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()

圖形輸出結果類似於:

使用matplotlib實現數據可視化

修改plot方法,新加入參數:

plt.plot(y,xx,color='red',linewidth=2.5,linestyle='-') # color參數設置曲線顏色,linewidth設置曲線寬度,linestyle設置曲線風格

圖形輸出結果類似於:

使用matplotlib實現數據可視化

最後這張圖,是小編使用matplotlib生成的某隻股票K線圖。關於K線圖詳細的生成,小編會再日後的文章中詳細介紹。

使用matplotlib實現數據可視化

相關推薦

推薦中...