python 繪圖模塊matplotlib的使用簡介

    上周對線上某幾個磁盤進行瞭fio硬盤性能測試,測試完成之後的結果需要繪制成圖像展示出來。我在官網上查找瞭一下fio自帶的命令fio_generate_plot和fio2gnuplot工具的用法,找到瞭圖像的繪制方法,在某一個單一的場景下,確實可以使用這兩個工具來進行硬盤性能圖像繪制,但是問題是,如果要對比多個場景下繪制出來的圖像的差異,fio自帶的繪圖工具實現起來就有些困難瞭,但是確實也能實現。例如下圖:

如圖所示為磁盤iodepth不變,numjobs在(1,8,16)三種不同的場景下繪制出來的結果,具體怎麼繪制的,原諒我暫時也沒找到辦法。這是前人繪制出來的圖像。

那麼為瞭換一種思路解決這個問題,我查找瞭python的繪圖方法,找到瞭使用python matplotlib模塊繪制多條曲線圖的方法。如果你的電腦上沒有自帶這個模塊,請使用:

pip install matplotlib命令來進行安裝。

來看看matplotlib繪制曲線的方法:

# /usr/bin/env python
# -*- coding=utf-8 -*-

import matplotlib.pyplot as plt


def PlotDemo1():
  fig = plt.figure() # figure對象可以看成整個圖表。在figure圖表之上增加多個子圖,然後在子圖之上繪制點和線
  # 通過add_subplot增加子圖(返回瞭一個axes坐標軸),該方法需要三個參數,分別為:numrows, numcols, fignum。其中,一共有numrows*numcols個子圖,
  # 將圖表分為N行*M列,fignum標識瞭該子圖的順序,其范圍從1到numrows*numcols。在上例中1,1,1表示瞭該繪圖對象僅有1個子圖,也就是1*1類型
  ax = fig.add_subplot(1, 1, 1)
  ax.plot([1, 2, 3, 4])  # 指定縱坐標,此時橫坐標數量會自動設置的和縱坐標數量相等,從0開始,也就是橫坐標會變成[0,1,2,3]
  ax.plot([1,2,3,4],[2,3,4,5]) # 指定橫坐標和縱坐標,繪制另外一條曲線
  plt.show()


PlotDemo1()

這裡我繪制瞭最簡單的2條曲線,ax這個變量裡面可以繼續添加需要plot的x數組和y數組,這樣就可以在一張圖裡面繪制若幹條線。來看上面代碼繪制的結果圖:

可以看到有兩條線:

第一條是藍色的線,也就是:

ax.plot([1,2,3,4])

這條命令傳入的參數代表縱坐標的值,因為沒有傳遞橫坐標,因此橫坐標默認從0開始,以1位單位遞增。

第二條是橙色的線條:

ax.plot([1,2,3,4],[2,3,4,5])

這條命令第一個數組是x軸的數組,第二個數組是Y軸的數組

這兩條線出現瞭部分重復的地方,所以看上去像是一條直線一樣。

有瞭這個繪制的思路,我們就可以將我們需要繪制的點,放在兩個list裡面,其中一個作為橫坐標,另外一個作為縱坐標,這樣就可以繪制出來我們想要的圖像瞭,關於圖像的標題、橫縱坐標說明、圖示等等,都可以使用對應的函數來進行豐富。具體的繪制方法,可以參考網上更加詳細的模塊說明,這裡我就提供一個思路,希望對大傢有幫助。

最後,上一下利用python畫出來的幾張磁盤性能的圖,可以跟上面的圖進行對比:

以上就是python 繪圖模塊matplotlib的使用簡介的詳細內容,更多關於python 繪圖模塊matplotlib的資料請關註WalkonNet其它相關文章!

推薦閱讀: