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

python matplotlib庫的基本使用

 更新時間:2020年09月23日 09:47:14   作者:TechFlow  
這篇文章主要介紹了python matplotlib庫的基本使用,幫助大家繪制圖表,進行數(shù)據(jù)可視化分析,感興趣的朋友可以了解下

matplotlib簡介

如果你在大學里參加過數(shù)學建模競賽或者是用過MATLAB的話,相比會對這一款軟件中的畫圖功能印象深刻。MATLAB可以做出各種函數(shù)以及數(shù)值分布圖像非常的好用和方便。如果你沒用過呢也沒關(guān)系,知道這么回事就好了。MATLAB雖然好用,但畢竟是收費軟件,而且相比于MATLAB,很多人更喜歡Python的語法。

所以呢MATLAB就被惦記上了,后來有大神仿照MATLAB當中的畫圖工具,也在Python當中開發(fā)了一個類似的作圖工具。這也就是我們今天這篇文章要講的matplotlib,也是Python、數(shù)據(jù)分析以及機器學習領(lǐng)域當中使用最廣泛的作圖工具包,幾乎沒有之一。前段時間不是美國政府搞事情,導(dǎo)致MATLAB公司宣布對中國的幾所高校禁止使用MATLAB嘛,有一些人就提出來說我們可以使用Python當中的一些開源工具代替,當然MATLAB當中還有很多其他厲害的功能,Python可能不一定能代替,但至少在作圖這個領(lǐng)域是沒問題的。

matplotlib 基本用法

matplotlib廣泛流行的一個非常主要的原因就是它方便、好用,我們來看幾個經(jīng)典的例子就知道了,短短幾行代碼就可以作出質(zhì)量非常高的圖。

我們使用的是matplotlib這個包下的pyplot這個庫,從名字上我們也看得出來它是Python庫。如果你安裝了Anaconda這樣完整的Python包管理工具的話,那么這個包默認應(yīng)該已經(jīng)裝好了。如果沒有,可以使用pip安裝一下,命令也非常簡單。

pip install matplotlib

裝好了包之后,我們通常的使用慣例是將它重命名成plt,所以如果你閱讀一些源碼以及其他大神的代碼,作圖的時候經(jīng)常會出現(xiàn)plt.xxx,就是這么來的。

import matplotlib.pyplot as plt

plot當中有幾種常用的作圖工具,第一種是作折線圖或者是曲線圖的,叫做plot。第二種是作柱狀圖的叫做hist,第三種是作散點圖的,叫做scatter,第四種是作餅狀圖的。除此之外還可以作一些三維的圖像,但是一般日常當中使用得比較少,大部分是用來炫技的。

曲線圖

plot其實是用來作曲線圖的,采用的方法是描點呈現(xiàn),它會將我們的數(shù)據(jù)點串聯(lián)起來,成為一條光滑的曲線。當然,作折線、直線也都是可以的,最后成圖的效果完全是由我們的數(shù)據(jù)決定的。

它的使用方法很簡單,在最基本的用法當中,我們只需要傳入兩個list,分別代表x軸和y軸的值即可。比如我們要作出一個logistic的函數(shù)圖像。我們可以這樣:

x = np.linspace(-10, 10, 100)
y = 1 / (1 + np.exp(-x))

plt.plot(x, y)
plt.show()

在上面的代碼當中我們首先使用numpy當中的linspace函數(shù)生成了一個-10到10之間的numpy數(shù)組。這個數(shù)組當中有100個點,在-10到10之間均勻分布。我們對它計算對應(yīng)的logistic函數(shù)的值,也就是1 / (1 + np.exp(-x))。這個函數(shù)我想大家都應(yīng)該很熟悉了,x是一個一百個點的list,對應(yīng)的y也是一個一百個點的list。也就是說一個x對應(yīng)一個y構(gòu)成了一個點對,代表圖中的一個坐標。

我們不需要做任何轉(zhuǎn)化,只需要把這兩個數(shù)組傳入plt當中,它會自動替我們完成坐標的映射。最后呈現(xiàn)的效果如下。

我們可以看到作圖的效果還是不錯的,除了把圖像完成的繪制出來之外,還替我們在坐標軸上畫上了點位,方便我們查看數(shù)據(jù)。

直方圖

hist可以用來繪制直方圖,這也是我們非常常見的圖像。在財經(jīng)領(lǐng)域我們經(jīng)常用直方圖反應(yīng)一個數(shù)據(jù)的走勢,在數(shù)據(jù)分析和機器學習當中我們也經(jīng)常用直方圖來反應(yīng)某一個特征或者是值的分布。

在直方圖當中我們只需要傳入一個數(shù)組,就是我們要求分布的數(shù)組,另外我們需要再輸入一個參數(shù)bins,表示我們希望將數(shù)據(jù)分桶的數(shù)量。然后它會繪制出每個桶中數(shù)據(jù)數(shù)量的直方圖,這樣我們就可以很直觀地看出分布來了。

x = np.random.normal(size=200)
plt.hist(x,bins=30)
plt.show()

這里我們調(diào)用numpy當中以正態(tài)分布概率隨機的函數(shù),得到的結(jié)果應(yīng)該是正態(tài)分布的。

我們查看圖像,這個結(jié)果和我們的預(yù)期基本吻合。

點狀圖

第三種圖像叫做散點圖,它反應(yīng)的是每個點的分布情況。比如我們之前在介紹KNN和Kmeans模型的時候曾經(jīng)都作過散點圖,一個點代表一個樣本,通過散點圖我們觀察的也是樣本和數(shù)據(jù)分布的情況。但是和直方圖相比它更加得直觀,我們能直接看到分布,而不是一個分布的統(tǒng)計結(jié)果。

但是它也有缺點,缺點就是我們只能觀察二維平面當中的點的分布,畢竟超過3維的維度就沒辦法繪制了。而且3維的數(shù)據(jù)分布也不是很好觀察。

同樣散點圖的繪制也很簡單,我們只需要調(diào)用scatter函數(shù)傳入x和y的數(shù)組即可。

x = np.random.rand(100)
y = np.random.rand(100)

plt.scatter(x, y)

這里我們的x和y都是隨機分布,所以得到的結(jié)果是散亂沒有規(guī)律的點。

餅狀圖

最后我們來看下餅狀圖,餅狀圖也很常用,雖然也是反映的數(shù)據(jù)分布,但是它更多是體現(xiàn)某一個值占的比例。通過餅狀圖,我們可以很直觀地了解到這點。

我們可以傳入一個list進入pie函數(shù),plot會根據(jù)list當中值在總體的占比繪制餅狀圖。我們來看個很簡單的例子:

a = np.array([0.5, 0.3, 0.2, 0.1, 0.8])

plt.pie(a)

得到的結(jié)果如下:

和之前的結(jié)果相比餅狀圖稍稍不清晰一些,因為它雖然用不同顏色區(qū)分了不同的區(qū)域的,但是我們很難直觀地看出來每一個區(qū)域分別代表什么。這個問題是可以解決的,我們可以通過傳入一些參數(shù)和設(shè)定來讓它展示更多的信息,讓數(shù)據(jù)變得更加生動以及清晰。

今天的文章到這里就結(jié)束了,如果喜歡本文的話,請來一波素質(zhì)三連,給我一點支持吧(關(guān)注、轉(zhuǎn)發(fā)、點贊)。

以上就是python matplotlib庫的基本使用的詳細內(nèi)容,更多關(guān)于python matplotlib的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python的type?hints(類型標注、類型注解、類型提示)示例詳解

    python的type?hints(類型標注、類型注解、類型提示)示例詳解

    在Python編程中,類型提示(Type Hints)是一種強大的工具,它能夠幫助開發(fā)者在編寫代碼時明確表達變量、函數(shù)參數(shù)和返回值的預(yù)期類型,這篇文章主要給大家介紹了關(guān)于python的type?hints(類型標注、類型注解、類型提示)的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • 基于python的itchat庫實現(xiàn)微信聊天機器人(推薦)

    基于python的itchat庫實現(xiàn)微信聊天機器人(推薦)

    這篇文章主要介紹了基于python的itchat庫實現(xiàn)微信聊天機器人,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 中秋陰天看不見月亮只好用python寫賞月工具

    中秋陰天看不見月亮只好用python寫賞月工具

    女神約我去賞月!我一看中秋節(jié)可能會下雨,立馬用Python寫了款賞月工具!本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下
    2021-09-09
  • 畫pytorch模型圖,以及參數(shù)計算的方法

    畫pytorch模型圖,以及參數(shù)計算的方法

    今天小編就為大家分享一篇畫pytorch模型圖,以及參數(shù)計算的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 基于python+pandoc實現(xiàn)html批量轉(zhuǎn)word

    基于python+pandoc實現(xiàn)html批量轉(zhuǎn)word

    pandoc是一個強大的文檔格式轉(zhuǎn)換工具,支持豐富的格式轉(zhuǎn)換,并盡可能的保留原來的排版,號稱文檔格式轉(zhuǎn)換的瑞士軍刀,本文將給大家介紹一下使用python搭配pandoc實現(xiàn)html批量轉(zhuǎn)word,感興趣的朋友可以參考閱讀下
    2023-09-09
  • python編碼總結(jié)(編碼類型、格式、轉(zhuǎn)碼)

    python編碼總結(jié)(編碼類型、格式、轉(zhuǎn)碼)

    這篇文章主要介紹了python編碼操作,包括編碼類型、格式、轉(zhuǎn)碼等,并結(jié)合實例分析了相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2016-07-07
  • python中cv2模塊如何安裝使用

    python中cv2模塊如何安裝使用

    這篇文章主要給大家介紹了關(guān)于python中cv2模塊如何安裝的相關(guān)資料,CV2指的是OpenCV2(Open?Source?Computer?Vision?Library),是一個開源的庫平臺計算機視覺庫,有很強大的圖片處理功能,可實現(xiàn)圖像處理和計算機視覺方面的很多通用算法,需要的朋友可以參考下
    2023-10-10
  • 關(guān)于pycharm卡死原因分析

    關(guān)于pycharm卡死原因分析

    這篇文章主要介紹了關(guān)于pycharm卡死原因分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 如何在Python?中獲取單成員集合中的唯一元素

    如何在Python?中獲取單成員集合中的唯一元素

    這篇文章主要介紹了如何在Python?中獲取單成員集合中的唯一元素,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Python實現(xiàn)通過文件路徑獲取文件hash值的方法

    Python實現(xiàn)通過文件路徑獲取文件hash值的方法

    這篇文章主要介紹了Python實現(xiàn)通過文件路徑獲取文件hash值的方法,結(jié)合實例形式分析了Python針對文件進行hash運算的實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-04-04

最新評論