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

python Matplotlib數(shù)據(jù)可視化(1):簡(jiǎn)單入門

 更新時(shí)間:2020年09月30日 09:43:45   作者:奧辰  
這篇文章主要介紹了python Matplotlib的相關(guān)資料,幫助大家入門matplotlib,繪制各種圖表,感興趣的朋友可以了解下

1 matplot入門指南

matplotlib是Python科學(xué)計(jì)算中使用最多的一個(gè)可視化庫(kù),功能豐富,提供了非常多的可視化方案,基本能夠滿足各種場(chǎng)景下的數(shù)據(jù)可視化需求。但功能豐富從另一方面來(lái)說(shuō)也意味著概念、方法、參數(shù)繁多,讓許多新手望而卻步。

據(jù)我了解,大部分人在對(duì)matplotlib接觸不深時(shí)都是邊畫圖邊百度,諸如這類的問(wèn)題,我想大家都似曾相識(shí):Python如何畫散點(diǎn)圖,matplotlib怎么將坐標(biāo)軸標(biāo)簽旋轉(zhuǎn)45度,怎么設(shè)置圖例字體大小等等。無(wú)論針對(duì)哪一個(gè)問(wèn)題,往往都有多種解決方法,搜索引擎這時(shí)候當(dāng)然會(huì)很熱情得將各種五花八門、看似合理、各不相同的解決方案推給我們,對(duì)于新手往往就迷失在這些紛雜的答案中,然后覺得matplotlib好復(fù)雜。matplotlib設(shè)計(jì)原則就是追求對(duì)每一個(gè)圖表細(xì)節(jié)的完全控制,所以matplotlib源碼中各種對(duì)象很多,甚至各對(duì)象間相互應(yīng)用,錯(cuò)綜復(fù)雜,對(duì)同一個(gè)對(duì)象的設(shè)置經(jīng)??梢哉{(diào)用不同的方法來(lái)實(shí)現(xiàn),這是matplotlib入門難的原因之一。

對(duì)于matplotlib入門階段學(xué)習(xí)曲線陡峭,我認(rèn)為還有一個(gè)更加重要的原因。無(wú)論是在各種出版書籍還是網(wǎng)絡(luò)博客中,都少有資料對(duì)matplotlib進(jìn)行深入的系統(tǒng)介紹,大多淺嘗輒止。這些流于表層的資料對(duì)于如何用matplotlib作圖沒有進(jìn)行深入的分析,大多只介紹如何調(diào)用pyplot模塊中的方法進(jìn)行作圖。pyplot是matplotlib中提供的一個(gè)頂層模塊,提供許多方法實(shí)現(xiàn)了快速、簡(jiǎn)便作圖,幾行代碼就可以完成一幅圖的創(chuàng)作,但是,這種方法作圖卻讓新手對(duì)matplotlib圖形的認(rèn)識(shí)變得粗淺,也很難實(shí)現(xiàn)對(duì)圖形的更加精細(xì)控制,底層定制能力有限,最終讓新手對(duì)matplotlib咬牙切齒。這種方法就想吃快餐,快速方便,但是吃多了難免營(yíng)養(yǎng)不良。

面對(duì)matplotlib入門階段的這兩個(gè)問(wèn)題,怎么辦呢?

matplotlib其實(shí)提供了兩類接口實(shí)現(xiàn)作圖。第一類基于狀態(tài)的接口,就是上文中提到的pyplot進(jìn)行作圖,這類接口對(duì)matplotlib中更加底層的對(duì)象進(jìn)行封裝,以仿MATLAB作圖風(fēng)格的方式讓作圖更加簡(jiǎn)單方便。至于為什么叫基于狀態(tài),我的觀點(diǎn)是pyplot所有作圖動(dòng)作都是默認(rèn)在當(dāng)前出于激活的元素上進(jìn)行,要切換到其他元素作圖,就要使另一元素激活。第二類接口是基于對(duì)象的接口,這種方法是使用買你想對(duì)象的方法來(lái)作圖,認(rèn)為圖形中每一個(gè)元素都是一種對(duì)象,通過(guò)調(diào)用更加底層對(duì)象來(lái)實(shí)現(xiàn)作圖。這種方法代碼量更多,但是讓用戶對(duì)matplotlib圖形的構(gòu)成有了更深的認(rèn)識(shí),也讓用戶對(duì)圖形的每一個(gè)元素有更強(qiáng)的掌控力。

所以,在使用matplotlib作圖過(guò)程中,本文建議在學(xué)習(xí)階段多使用基于對(duì)象的方法進(jìn)行作圖,只要掌握了基于對(duì)象的方法作圖,后面使用pyplot作圖自然水到渠成。本文后續(xù)大部分介紹也是基于這一種方法。

2 安裝與導(dǎo)入

  • 安裝

matplotlib的安裝與Python中其他第三方庫(kù)安裝方法無(wú)異

pip install -i https://pypi.douban.com/simple matplotlib
  • 導(dǎo)入

進(jìn)行導(dǎo)入操作時(shí)通常不會(huì)直接將整個(gè)matplotlib包導(dǎo)入,而是導(dǎo)入matplotlib包中最為常用的pyplot模塊,一般的,我們習(xí)慣將pyplot導(dǎo)入時(shí)起一個(gè)簡(jiǎn)稱plt。

import matplotlib.pyplot as plt

3 圖的構(gòu)成

在使用matplotlib進(jìn)行繪圖之前,理解matplotlib圖表構(gòu)成是非常有必要的。matplotlib圖表有三個(gè)非常重要的概念:figure、axes、axies。 三者之間的關(guān)系構(gòu)成了matplotlib圖表的整體布局,如下圖所示。

在matplotlib圖表中,至少有一個(gè)figure,figure可以理解為一張畫布,畫布上面可以畫多個(gè)axes,這里的axes我理解為坐標(biāo)系,每個(gè)坐標(biāo)系可以有多個(gè)axis,也就是有多條坐標(biāo)軸。

下圖是在matplotlib官方文檔中展示的一張圖片,進(jìn)一步的很清晰展示了matplotlib圖表布局上的組件構(gòu)成:

上圖中,藍(lán)色部分文本是各組件的名稱,請(qǐng)牢記各組件的名稱,方便在對(duì)各組件進(jìn)行設(shè)置是調(diào)用函數(shù),因?yàn)榻M件的名稱與函數(shù)名是相似的。其實(shí),在matplotlib中,在figure中的所有組件,包括圖一中的axes、axies甚至是figure和圖中出現(xiàn)的所有組件都稱為artist,因?yàn)檫@些組件均繼承于一個(gè)名為Artist的父類。根據(jù)所在位置和作用,我們可以將matplotlib所有artist可以劃分到三個(gè)層次:

(1)figure層:畫布,這是最低層的容器,用于容納axes。
(2)axes層:坐標(biāo)系,也成為軸域,第二層容器,用于容納axis。
(3)axis層:坐標(biāo)軸,也包含坐標(biāo)軸上更加細(xì)微的組件。
使用matplotlib進(jìn)行作圖時(shí),按照這個(gè)層次結(jié)構(gòu)順序進(jìn)行創(chuàng)建完成作圖。接下來(lái),我們分別對(duì)figure、axes、axis進(jìn)行展開介紹。

3 總結(jié)

本篇博客主要是為matplotlib如何入門以及matplotlib宏觀層面的容器布局做了一番介紹,希望這番介紹能夠讓各位讀者對(duì)matplotlib有一個(gè)更加正確、深入的認(rèn)識(shí)。

最后,還是想說(shuō)一句,matplotlib很強(qiáng),只不過(guò)目前無(wú)論是網(wǎng)絡(luò)上還是市場(chǎng)上的matplotlib資料大多屬于快餐類別,吃多了就容易營(yíng)養(yǎng)不良,造成后繼無(wú)力。當(dāng)然,pyplot只是快餐,卻不是毒藥,因?yàn)閜yplot中確實(shí)提供了很多強(qiáng)大的方法實(shí)習(xí)縣對(duì)圖形的管理。本文強(qiáng)烈建議(官方文檔中也提出了),如果只是簡(jiǎn)單得對(duì)數(shù)據(jù)進(jìn)行展示,那么當(dāng)然可以使用pyplot完成,但是如果需要更加精細(xì)的對(duì)圖片進(jìn)行設(shè)置,那么建議使用pyplot中的方法來(lái)創(chuàng)建matplotlib圖形的容器對(duì)象,因?yàn)閜yplot創(chuàng)建容器對(duì)象可以方便得納入matplotlib序列中進(jìn)行管理,有了容器對(duì)象之后,后續(xù)的畫圖,請(qǐng)勿通過(guò)再pyplot進(jìn)行,最好是通過(guò)容器對(duì)象進(jìn)行操作。

入門學(xué)習(xí)階段,無(wú)論如何,請(qǐng)走基于對(duì)象作圖這條路?。?!

在下一篇博客中,我將對(duì)這三層容器對(duì)象開始,循序漸進(jìn)地介紹基于對(duì)象的作圖方式。

作者:奧辰

微信號(hào):chb1137796095

Github:https://github.com/ChenHuabin321

歡迎加V交流,共同學(xué)習(xí),共同進(jìn)步!

以上就是python Matplotlib數(shù)據(jù)可視化(1):簡(jiǎn)單入門的詳細(xì)內(nèi)容,更多關(guān)于python Matplotlib數(shù)據(jù)可視化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python?操作Excel-openpyxl模塊用法實(shí)例

    Python?操作Excel-openpyxl模塊用法實(shí)例

    openpyxl 模塊是一個(gè)讀寫 Excel 2010 文檔的 Python 庫(kù),如果要處理更早格式的 Excel 文 檔,需要用到額外的庫(kù),openpyxl 是一個(gè)比較綜合的工具,能夠同時(shí)讀取和修改 Excel 文檔,這篇文章主要介紹了Python?操作Excel-openpyxl模塊使用,需要的朋友可以參考下
    2023-05-05
  • Python queue模塊的用法

    Python queue模塊的用法

    本文主要介紹了Python queue模塊的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 用Python將mysql數(shù)據(jù)導(dǎo)出成json的方法

    用Python將mysql數(shù)據(jù)導(dǎo)出成json的方法

    今天小編就為大家分享一篇用Python將mysql數(shù)據(jù)導(dǎo)出成json的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • 詳解如何用Flask中的Blueprints構(gòu)建大型Web應(yīng)用

    詳解如何用Flask中的Blueprints構(gòu)建大型Web應(yīng)用

    Blueprints是Flask中的一種模式,用于將應(yīng)用程序分解為可重用的模塊,這篇文章主要為大家詳細(xì)介紹了如何使用Blueprints構(gòu)建大型Web應(yīng)用,需要的可以參考下
    2024-03-03
  • Django 自動(dòng)生成api接口文檔教程

    Django 自動(dòng)生成api接口文檔教程

    今天小編就為大家分享一篇Django 自動(dòng)生成api接口文檔教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Django中modelform組件實(shí)例用法總結(jié)

    Django中modelform組件實(shí)例用法總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于Django中modelform組件實(shí)例用法內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。
    2020-02-02
  • Pyqt QImage 與 np array 轉(zhuǎn)換方法

    Pyqt QImage 與 np array 轉(zhuǎn)換方法

    今天小編就為大家分享一篇Pyqt QImage 與 np array 轉(zhuǎn)換方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • python列表和字符串的三種逆序遍歷操作

    python列表和字符串的三種逆序遍歷操作

    這篇文章主要介紹了python列表和字符串的三種逆序遍歷操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Pyhton模塊和包相關(guān)知識(shí)總結(jié)

    Pyhton模塊和包相關(guān)知識(shí)總結(jié)

    文中詳細(xì)整理了關(guān)于Python模塊和包的相關(guān)知識(shí)點(diǎn),剛?cè)腴TPython的小伙伴們可以學(xué)習(xí)一下,有助于加深Python基礎(chǔ)的理解.而且有詳細(xì)說(shuō)明及代碼示例,需要的朋友可以參考下
    2021-05-05
  • Python實(shí)例分享:快速查找出被掛馬的文件

    Python實(shí)例分享:快速查找出被掛馬的文件

    網(wǎng)站被入侵,擔(dān)心被掛馬,因此就想自己寫個(gè)腳本來(lái)查找那些被掛馬的文件
    2014-06-06

最新評(píng)論