最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python matplotlib庫的基本使用

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

matplotlib簡(jiǎn)介

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

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

matplotlib 基本用法

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

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

pip install matplotlib

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

import matplotlib.pyplot as plt

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

曲線圖

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

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

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

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

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

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

我們可以看到作圖的效果還是不錯(cuò)的,除了把圖像完成的繪制出來之外,還替我們?cè)谧鴺?biāo)軸上畫上了點(diǎn)位,方便我們查看數(shù)據(jù)。

直方圖

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

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

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

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

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

點(diǎn)狀圖

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

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

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

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

plt.scatter(x, y)

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

餅狀圖

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

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

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

plt.pie(a)

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

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

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

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

相關(guān)文章

  • Python測(cè)試框架pytest高階用法全面詳解

    Python測(cè)試框架pytest高階用法全面詳解

    這篇文章主要為大家介紹了Python測(cè)試框架pytest高階用法全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python光學(xué)仿真wxpython透鏡演示系統(tǒng)框架

    Python光學(xué)仿真wxpython透鏡演示系統(tǒng)框架

    這篇文章主要為大家介紹了Python光學(xué)仿真UI界面的wxpython透鏡演示系統(tǒng)框架基本講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python開發(fā)之射擊闖關(guān)游戲的實(shí)現(xiàn)

    Python開發(fā)之射擊闖關(guān)游戲的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)射擊闖關(guān)游戲,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的小伙伴可以了解一下
    2023-01-01
  • pycharm 激活碼及使用方式的詳細(xì)教程

    pycharm 激活碼及使用方式的詳細(xì)教程

    這篇文章主要介紹了pycharm 激活碼及使用方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • python入門學(xué)習(xí)筆記分享

    python入門學(xué)習(xí)筆記分享

    這篇文章主要介紹了關(guān)于Python的一些總結(jié),希望自己以后在學(xué)習(xí)Python的過程中可以邊學(xué)習(xí)邊總結(jié),就自己之前的學(xué)習(xí)先做以總結(jié),之后將不斷總結(jié)更新
    2021-10-10
  • Python subprocess模塊功能與常見用法實(shí)例詳解

    Python subprocess模塊功能與常見用法實(shí)例詳解

    這篇文章主要介紹了Python subprocess模塊功能與常見用法,結(jié)合實(shí)例形式詳細(xì)分析了subprocess模塊功能、常用函數(shù)相關(guān)使用技巧,需要的朋友可以參考下
    2018-06-06
  • Python實(shí)現(xiàn)統(tǒng)計(jì)給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法

    Python實(shí)現(xiàn)統(tǒng)計(jì)給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)統(tǒng)計(jì)給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法,涉及Python針對(duì)列表的簡(jiǎn)單遍歷、計(jì)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • python中嵌套函數(shù)的實(shí)操步驟

    python中嵌套函數(shù)的實(shí)操步驟

    在本文里我們給大家分享了關(guān)于python中嵌套函數(shù)的步驟圖文分解,有需要的朋友們跟著學(xué)習(xí)下。
    2019-02-02
  • Python類與實(shí)例的使用詳解

    Python類與實(shí)例的使用詳解

    面向?qū)ο笞钪匾母拍罹褪穷悾–lass)和實(shí)例(Instance),必須牢記類是抽象的模板,比如Student類,而實(shí)例是根據(jù)類創(chuàng)建出來的一個(gè)個(gè)具體的“對(duì)象”,每個(gè)對(duì)象都擁有相同的方法,但各自的數(shù)據(jù)可能不同
    2022-08-08
  • python?多線程threading程序詳情

    python?多線程threading程序詳情

    這篇文章主要介紹了python?多線程threading程序詳情,Thread類表示在單獨(dú)的控制線程中運(yùn)行的活動(dòng),下文相關(guān)資料需要的小伙伴可以參考一下
    2022-04-04

最新評(píng)論

崇仁县| 荣昌县| 阳高县| 临邑县| 乐亭县| 浦东新区| 徐汇区| 玛沁县| 桐城市| 岑巩县| 桐乡市| 广州市| 河源市| 和田县| 车险| 平安县| 定日县| 隆昌县| 普定县| 定安县| 育儿| 浦东新区| 赤水市| 盘锦市| 任丘市| 鹿邑县| 江达县| 奈曼旗| 运城市| 博野县| 云阳县| 柯坪县| 曲靖市| 临澧县| 东丰县| 且末县| 佛学| 峨山| 青神县| 睢宁县| 镇平县|