站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        從此駕馭圖表的神器matplotlib,Python強(qiáng)大的作圖工具

        從此駕馭圖表的神器matplotlib,Python強(qiáng)大的作圖工具

        相關(guān)學(xué)習(xí)推薦:python教程

        先來(lái)給大家介紹一下另外一個(gè)很有用的數(shù)據(jù)分析庫(kù)——matplotlib

        matplotlib簡(jiǎn)介

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

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

        matplotlib 基本用法

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

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

        pip install matplotlib復(fù)制代碼

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

        import matplotlib.pyplot as plt復(fù)制代碼

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

        曲線(xiàn)圖

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

        在上面的代碼當(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ù)的值,也就是。這個(gè)函數(shù)我想大家都應(yīng)該很熟悉了,x是一個(gè)一百個(gè)點(diǎn)的list,對(duì)應(yīng)的y也是一個(gè)一百個(gè)點(diǎn)的list。也就是說(shuō)一個(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)的效果如下。

        從此駕馭圖表的神器matplotlib,Python強(qiáng)大的作圖工具

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

        直方圖

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

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

        x = np.random.normal(size=200)plt.hist(x,bins=30)plt.show()復(fù)制代碼

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

        從此駕馭圖表的神器matplotlib,Python強(qiáng)大的作圖工具

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

        點(diǎn)狀圖

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

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

        同樣散點(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)復(fù)制代碼

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

        從此駕馭圖表的神器matplotlib,Python強(qiáng)大的作圖工具

        餅狀圖

        最后我們來(lái)看下餅狀圖,餅狀圖也很常用,雖然也是反映的數(shù)據(jù)分布,但是它

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 国产亚洲精品免费视频播放| 老司机69精品成免费视频| 国产91久久精品一区二区| 香蕉依依精品视频在线播放| 国产精品视频一区二区三区| 午夜DY888国产精品影院| 欧美精品播放| 国产精品部在线观看| 精品乱人伦一区二区三区| 黑人巨大精品欧美| 久热这里只有精品视频6| 中文字幕精品无码久久久久久3D日动漫| 国产精品亚洲专区无码WEB| 欧美精品1区2区| 国产精品久久99| 6一12呦女精品| 国产精品无码久久久久久| 日韩国产成人精品视频| 亚洲综合精品网站在线观看| 青青青青久久精品国产h久久精品五福影院1421 | 精品无码久久久久久尤物| 亚洲精品中文字幕无码蜜桃| 亚洲一区二区精品视频| 偷拍精品视频一区二区三区| 精品免费久久久久国产一区| 国产精品极品美女自在线观看免费| 国产原创精品视频| 亚洲综合一区二区精品导航| 911亚洲精品国产自产| 成人国内精品久久久久影院VR| 91精品啪在线观看国产电影| 国产A√精品区二区三区四区| 国产99视频精品专区| 国产在线精品一区二区不卡麻豆 | 无码精品人妻一区二区三区免费 | 日韩亚洲精品福利| 亚洲精品欧美精品日韩精品 | 亚洲av永久无码精品漫画| 无码人妻精品一区二区三区99仓本 | 亚洲精品偷拍视频免费观看 | 亚洲精品国产综合久久一线|