欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

手把手教你Python yLab的繪制折線圖的畫法

 更新時(shí)間:2019年10月23日 09:58:01   作者:Yngz_Miao  
這篇文章主要介紹了手把手教你Python yLab的繪制折線圖的畫法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Python的可視化工具有很多,數(shù)不勝數(shù),各有優(yōu)劣。本文就對(duì)其中的pylab進(jìn)行介紹。之所以介紹這一款,是因?yàn)樗?code>Matlab的強(qiáng)烈相似度,如果你使用過(guò)Matlab,那么相信pylab你也會(huì)很快上手。

簡(jiǎn)單的plot函數(shù)

pylab繪圖,最基本的函數(shù)就是plot函數(shù),當(dāng)然如果想要將圖片顯示出來(lái),需要額外添加一個(gè)show函數(shù)。

python的繪圖中,numpy是一個(gè)非常常用的工具,不太熟悉的可以參考博主的另一篇博文:【Python】Python之Numpy的超實(shí)用基礎(chǔ)詳細(xì)教程。

例如:

import pylab
import numpy as np

if __name__ == "__main__":
 x = np.arange(0, 1, 0.05)
 y = [i*i for i in np.arange(0, 1, 0.05)]
 pylab.plot(x, y)
 pylab.show()

運(yùn)行生成的圖片為:

規(guī)定兩個(gè)序列,只需要兩個(gè)序列的長(zhǎng)度相等,就可以以其中一個(gè)序列為橫坐標(biāo),零一個(gè)序列為縱坐標(biāo),進(jìn)行繪制。

但是也看得出來(lái),這樣的圖片是比較寒磣的,簡(jiǎn)單樸素。我們可以對(duì)線條進(jìn)行一些修飾,比如線型、顏色、點(diǎn)型等等。只需要在plot函數(shù)中添加一個(gè)參數(shù)即可。這個(gè)參數(shù)用法比較靈活,特可以從下表的值中進(jìn)行組合選擇:

顏色 線型 點(diǎn)型
‘b' (藍(lán)色) ‘-' (實(shí)線) ‘,' (像素)
‘g' (綠色) ‘–' (虛線) ‘o' (圓形)
‘r' (紅色) ‘-.' (虛點(diǎn)線) ‘^' (上三角)
‘y' (黃色) ‘:' (點(diǎn)線) ‘s' (方形)
‘k' (黑色) ‘.' (點(diǎn)) ‘+' (加號(hào))
‘w' (藍(lán)色) ‘x' (叉形)

例如:

import pylab
import numpy as np

if __name__ == "__main__":
 x = np.arange(0, 1, 0.05)
 y = [i*i for i in np.arange(0, 1, 0.05)]
 pylab.plot(x, y, "b-.+")
 pylab.show()

運(yùn)行生成的圖片為:

如果,還想增加圖例,x軸、y軸的含義和刻度,標(biāo)題的信息,也可以通過(guò)添加一些函數(shù)來(lái)進(jìn)行。

例如:

# -*- coding:UTF-8 -*-
import pylab
import numpy as np

if __name__ == "__main__":
 x = np.arange(0, 1, 0.05)
 y = [i*i for i in np.arange(0, 1, 0.05)]
 pylab.plot(x, y, "b-.+", label='line')
 
 pylab.xlabel('x')       # x、y軸的介紹
 pylab.ylabel('y')
 
 pylab.xlim([0, 1])      # x、y軸的長(zhǎng)度區(qū)間
 pylab.ylim([0, 1])
 
 pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)    # x、y軸的刻度
 pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)
 
 pylab.title('x-y')      # x、y的標(biāo)題
 
 pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))     # 圖例的位置
 pylab.show()

運(yùn)行生成的圖片為:

是不是瞬間就感覺(jué)豐富了許多!

多折線繪制

當(dāng)然,在很多時(shí)刻需要繪制多條折線。很明顯,可以選擇將多條直線繪制到同一張圖片上,也可以選擇在圖片上繪制不同的子圖。

多折線同圖

將多條折線繪制到同一張圖片上,這非常簡(jiǎn)單,直接再plot一條直線就可以了。

例如:

# -*- coding:UTF-8 -*-
import pylab
import numpy as np

if __name__ == "__main__":
 x = np.arange(0, 1, 0.05)
 y1 = [i*i for i in np.arange(0, 1, 0.05)]
 y2 = [i+i for i in np.arange(0, 1, 0.05)]
 pylab.plot(x, y1, "b-.+", label='line1')
 pylab.plot(x, y2, "r-.+", label='line2')

 pylab.xlabel('x')
 pylab.ylabel('y')
 pylab.xlim([0, 1])
 pylab.ylim([0, 1])
 pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.title('x-y')
 pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))
 pylab.show()

多折線不同圖

將多條折線繪制到圖片上的不同子圖上,這就需要通過(guò)subplot進(jìn)行區(qū)域分割和指定。

subplot(numRows, numCols, plotNum)

該函數(shù)會(huì)將這個(gè)圖片分為numRows行、nulCols列,然后按照從左到右、從上到下的順序進(jìn)行編號(hào),最左上的編號(hào)為1。plotNum參數(shù)指定子圖的所在區(qū)域。

例如:

# -*- coding:UTF-8 -*-
import pylab
import numpy as np

if __name__ == "__main__":
 x = np.arange(0, 1, 0.05)
 y1 = [i*i for i in np.arange(0, 1, 0.05)]
 y2 = [i+i for i in np.arange(0, 1, 0.05)]

 pylab.subplot(1, 2, 1)
 pylab.plot(x, y1, "b-.+", label='line1')
 pylab.xlabel('x')
 pylab.ylabel('y1')
 pylab.xlim([0, 1])
 pylab.ylim([0, 1])
 pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.title('x-y1')
 pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

 pylab.subplot(1, 2, 2)
 pylab.plot(x, y2, "r-.+", label='line2')
 pylab.xlabel('x')
 pylab.ylabel('y2')
 pylab.xlim([0, 1])
 pylab.ylim([0, 1])
 pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.title('x-y2')
 pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

 pylab.show()

運(yùn)行生成的圖片為:

這是比較規(guī)整的例子,如果是不規(guī)整的呢?例如,第一行兩張圖,第二行一張圖。這就要稍微變通一下了。

第一行其實(shí)是按照2*2分法的第一個(gè)和第二個(gè),第二行其實(shí)是按照2*1分法的第二行。這樣思考就會(huì)迎刃而解了。

# -*- coding:UTF-8 -*-
import pylab
import numpy as np

if __name__ == "__main__":
 x = np.arange(0, 1, 0.05)
 y1 = [i*i for i in np.arange(0, 1, 0.05)]
 y2 = [i+i for i in np.arange(0, 1, 0.05)]

 pylab.subplot(2, 2, 1)
 pylab.plot(x, y1, "b-.+", label='line1')
 pylab.xlabel('x')
 pylab.ylabel('y1')
 pylab.xlim([0, 1])
 pylab.ylim([0, 1])
 pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.title('x-y1')
 pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

 pylab.subplot(2, 2, 2)
 pylab.plot(x, y2, "r-.+", label='line2')
 pylab.xlabel('x')
 pylab.ylabel('y2')
 pylab.xlim([0, 1])
 pylab.ylim([0, 1])
 pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.title('x-y2')
 pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

 pylab.subplot(2, 1, 2)
 pylab.plot(x, y1, "b-.+", label='line1')
 pylab.plot(x, y2, "r-.+", label='line2')
 pylab.xlabel('x')
 pylab.ylabel('y')
 pylab.xlim([0, 1])
 pylab.ylim([0, 1])
 pylab.xticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.yticks(np.arange(0, 1, 0.05), fontsize=8)
 pylab.title('x-y')
 pylab.legend(loc=3, borderaxespad=0., bbox_to_anchor=(0, 0))

 pylab.show()

運(yùn)行生成的圖片為:

其他函數(shù)

除了上述函數(shù)之外,還有一些其他的常用函數(shù)。

pylab.grid()       # 網(wǎng)格繪制

pylab.savefig(圖片存儲(chǔ)路徑, dpi=200)    # 保存為圖片

掌握了這些基本的折現(xiàn)圖的繪制函數(shù),相信一般的折線圖都可以輕松掌握。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)現(xiàn)CSF地面點(diǎn)濾波算法原理解析

    python實(shí)現(xiàn)CSF地面點(diǎn)濾波算法原理解析

    這篇文章主要介紹了python實(shí)現(xiàn)CSF地面點(diǎn)濾波算法原理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 詳解Python 中的容器 collections

    詳解Python 中的容器 collections

    這篇文章主要介紹了Python 中的容器 collections的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Tornado高并發(fā)處理方法實(shí)例代碼

    Tornado高并發(fā)處理方法實(shí)例代碼

    這篇文章主要介紹了Tornado高并發(fā)處理方法實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 使用PyCharm批量爬取小說(shuō)的完整代碼

    使用PyCharm批量爬取小說(shuō)的完整代碼

    這篇文章主要介紹了使用PyCharm批量爬取小說(shuō),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • JPype實(shí)現(xiàn)在python中調(diào)用JAVA的實(shí)例

    JPype實(shí)現(xiàn)在python中調(diào)用JAVA的實(shí)例

    本篇文章主要介紹了JPype實(shí)現(xiàn)在python中調(diào)用JAVA的實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • opencv python 圖像輪廓/檢測(cè)輪廓/繪制輪廓的方法

    opencv python 圖像輪廓/檢測(cè)輪廓/繪制輪廓的方法

    這篇文章主要介紹了opencv python 圖像輪廓/檢測(cè)輪廓/繪制輪廓的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python?Pandas條件篩選功能

    Python?Pandas條件篩選功能

    這篇文章主要介紹了Python?Pandas條件篩選功能,篩選是在平時(shí)的工作中使用非常頻繁的功能了,下文詳細(xì)的相關(guān)資料介紹,需要的小伙伴可以參考一下
    2022-03-03
  • python 實(shí)現(xiàn)多線程下載視頻的代碼

    python 實(shí)現(xiàn)多線程下載視頻的代碼

    這篇文章主要介紹了python 實(shí)現(xiàn)多線程下載視頻的代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python cx_freeze打包工具處理問(wèn)題思路及解決辦法

    Python cx_freeze打包工具處理問(wèn)題思路及解決辦法

    這篇文章主要介紹了Python cx_freeze打包工具處理問(wèn)題思路及解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Python中的numpy數(shù)組模塊

    Python中的numpy數(shù)組模塊

    這篇文章介紹了Python中的numpy數(shù)組模塊,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05

最新評(píng)論