python 繪圖模塊matplotlib的使用簡介
上周對(duì)線上某幾個(gè)磁盤進(jìn)行了fio硬盤性能測(cè)試,測(cè)試完成之后的結(jié)果需要繪制成圖像展示出來。我在官網(wǎng)上查找了一下fio自帶的命令fio_generate_plot和fio2gnuplot工具的用法,找到了圖像的繪制方法,在某一個(gè)單一的場(chǎng)景下,確實(shí)可以使用這兩個(gè)工具來進(jìn)行硬盤性能圖像繪制,但是問題是,如果要對(duì)比多個(gè)場(chǎng)景下繪制出來的圖像的差異,fio自帶的繪圖工具實(shí)現(xiàn)起來就有些困難了,但是確實(shí)也能實(shí)現(xiàn)。例如下圖:
如圖所示為磁盤iodepth不變,numjobs在(1,8,16)三種不同的場(chǎng)景下繪制出來的結(jié)果,具體怎么繪制的,原諒我暫時(shí)也沒找到辦法。這是前人繪制出來的圖像。
那么為了換一種思路解決這個(gè)問題,我查找了python的繪圖方法,找到了使用python matplotlib模塊繪制多條曲線圖的方法。如果你的電腦上沒有自帶這個(gè)模塊,請(qǐng)使用:
pip install matplotlib
命令來進(jìn)行安裝。
來看看matplotlib繪制曲線的方法:
# /usr/bin/env python # -*- coding=utf-8 -*- import matplotlib.pyplot as plt def PlotDemo1(): fig = plt.figure() # figure對(duì)象可以看成整個(gè)圖表。在figure圖表之上增加多個(gè)子圖,然后在子圖之上繪制點(diǎn)和線 # 通過add_subplot增加子圖(返回了一個(gè)axes坐標(biāo)軸),該方法需要三個(gè)參數(shù),分別為:numrows, numcols, fignum。其中,一共有numrows*numcols個(gè)子圖, # 將圖表分為N行*M列,fignum標(biāo)識(shí)了該子圖的順序,其范圍從1到numrows*numcols。在上例中1,1,1表示了該繪圖對(duì)象僅有1個(gè)子圖,也就是1*1類型 ax = fig.add_subplot(1, 1, 1) ax.plot([1, 2, 3, 4]) # 指定縱坐標(biāo),此時(shí)橫坐標(biāo)數(shù)量會(huì)自動(dòng)設(shè)置的和縱坐標(biāo)數(shù)量相等,從0開始,也就是橫坐標(biāo)會(huì)變成[0,1,2,3] ax.plot([1,2,3,4],[2,3,4,5]) # 指定橫坐標(biāo)和縱坐標(biāo),繪制另外一條曲線 plt.show() PlotDemo1()
這里我繪制了最簡單的2條曲線,ax這個(gè)變量里面可以繼續(xù)添加需要plot的x數(shù)組和y數(shù)組,這樣就可以在一張圖里面繪制若干條線。來看上面代碼繪制的結(jié)果圖:
可以看到有兩條線:
第一條是藍(lán)色的線,也就是:
ax.plot([1,2,3,4])
這條命令傳入的參數(shù)代表縱坐標(biāo)的值,因?yàn)闆]有傳遞橫坐標(biāo),因此橫坐標(biāo)默認(rèn)從0開始,以1位單位遞增。
第二條是橙色的線條:
ax.plot([1,2,3,4],[2,3,4,5])
這條命令第一個(gè)數(shù)組是x軸的數(shù)組,第二個(gè)數(shù)組是Y軸的數(shù)組
這兩條線出現(xiàn)了部分重復(fù)的地方,所以看上去像是一條直線一樣。
有了這個(gè)繪制的思路,我們就可以將我們需要繪制的點(diǎn),放在兩個(gè)list里面,其中一個(gè)作為橫坐標(biāo),另外一個(gè)作為縱坐標(biāo),這樣就可以繪制出來我們想要的圖像了,關(guān)于圖像的標(biāo)題、橫縱坐標(biāo)說明、圖示等等,都可以使用對(duì)應(yīng)的函數(shù)來進(jìn)行豐富。具體的繪制方法,可以參考網(wǎng)上更加詳細(xì)的模塊說明,這里我就提供一個(gè)思路,希望對(duì)大家有幫助。
最后,上一下利用python畫出來的幾張磁盤性能的圖,可以跟上面的圖進(jìn)行對(duì)比:
以上就是python 繪圖模塊matplotlib的使用簡介的詳細(xì)內(nèi)容,更多關(guān)于python 繪圖模塊matplotlib的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python裝飾器相當(dāng)于函數(shù)的調(diào)用方式
今天小編就為大家分享一篇python裝飾器相當(dāng)于函數(shù)的調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12python中的字符轉(zhuǎn)運(yùn)算符、字符串處理方式
這篇文章主要介紹了python中的字符轉(zhuǎn)運(yùn)算符、字符串處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07讓python json encode datetime類型
python2.6+ 自帶的json模塊,不支持datetime的json encode,每次都需要手動(dòng)轉(zhuǎn)為字符串,很累人,我們可以自己封裝一個(gè)簡單的方法處理此問題。2010-12-12針對(duì)Pandas的總結(jié)以及數(shù)據(jù)讀取_pd.read_csv()的使用詳解
這篇文章主要針對(duì)Pandas總結(jié)以及數(shù)據(jù)讀取_pd.read_csv()的使用詳解做出了實(shí)例,講解非常全面,值得收藏,需要的朋友可以參考下2023-03-03python2與python3爬蟲中g(shù)et與post對(duì)比解析
這篇文章主要介紹了python2與python3爬蟲中g(shù)et與post對(duì)比解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09Python 如何將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))
這篇文章主要介紹了Python 將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06python初步實(shí)現(xiàn)word2vec操作
這篇文章主要介紹了python初步實(shí)現(xiàn)word2vec操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06