您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關python Matplotlib數據可視化,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
matplotlib是Python科學計算中使用最多的一個可視化庫,功能豐富,提供了非常多的可視化方案,基本能夠滿足各種場景下的數據可視化需求。但功能豐富從另一方面來說也意味著概念、方法、參數繁多,讓許多新手望而卻步。
據我了解,大部分人在對matplotlib接觸不深時都是邊畫圖邊百度,諸如這類的問題,我想大家都似曾相識:Python如何畫散點圖,matplotlib怎么將坐標軸標簽旋轉45度,怎么設置圖例字體大小等等。無論針對哪一個問題,往往都有多種解決方法,搜索引擎這時候當然會很熱情得將各種五花八門、看似合理、各不相同的解決方案推給我們,對于新手往往就迷失在這些紛雜的答案中,然后覺得matplotlib好復雜。matplotlib設計原則就是追求對每一個圖表細節的完全控制,所以matplotlib源碼中各種對象很多,甚至各對象間相互應用,錯綜復雜,對同一個對象的設置經常可以調用不同的方法來實現,這是matplotlib入門難的原因之一。
對于matplotlib入門階段學習曲線陡峭,我認為還有一個更加重要的原因。無論是在各種出版書籍還是網絡博客中,都少有資料對matplotlib進行深入的系統介紹,大多淺嘗輒止。這些流于表層的資料對于如何用matplotlib作圖沒有進行深入的分析,大多只介紹如何調用pyplot模塊中的方法進行作圖。pyplot是matplotlib中提供的一個頂層模塊,提供許多方法實現了快速、簡便作圖,幾行代碼就可以完成一幅圖的創作,但是,這種方法作圖卻讓新手對matplotlib圖形的認識變得粗淺,也很難實現對圖形的更加精細控制,底層定制能力有限,最終讓新手對matplotlib咬牙切齒。這種方法就想吃快餐,快速方便,但是吃多了難免營養不良。
面對matplotlib入門階段的這兩個問題,怎么辦呢?
matplotlib其實提供了兩類接口實現作圖。第一類基于狀態的接口,就是上文中提到的pyplot進行作圖,這類接口對matplotlib中更加底層的對象進行封裝,以仿MATLAB作圖風格的方式讓作圖更加簡單方便。至于為什么叫基于狀態,我的觀點是pyplot所有作圖動作都是默認在當前出于激活的元素上進行,要切換到其他元素作圖,就要使另一元素激活。第二類接口是基于對象的接口,這種方法是使用買你想對象的方法來作圖,認為圖形中每一個元素都是一種對象,通過調用更加底層對象來實現作圖。這種方法代碼量更多,但是讓用戶對matplotlib圖形的構成有了更深的認識,也讓用戶對圖形的每一個元素有更強的掌控力。
所以,在使用matplotlib作圖過程中,本文建議在學習階段多使用基于對象的方法進行作圖,只要掌握了基于對象的方法作圖,后面使用pyplot作圖自然水到渠成。本文后續大部分介紹也是基于這一種方法。
matplotlib的安裝與Python中其他第三方庫安裝方法無異
pip install -i https://pypi.douban.com/simple matplotlib
進行導入操作時通常不會直接將整個matplotlib包導入,而是導入matplotlib包中最為常用的pyplot模塊,一般的,我們習慣將pyplot導入時起一個簡稱plt。
import matplotlib.pyplot as plt
在使用matplotlib進行繪圖之前,理解matplotlib圖表構成是非常有必要的。matplotlib圖表有三個非常重要的概念:figure、axes、axies。 三者之間的關系構成了matplotlib圖表的整體布局,如下圖所示。
在matplotlib圖表中,至少有一個figure,figure可以理解為一張畫布,畫布上面可以畫多個axes,這里的axes我理解為坐標系,每個坐標系可以有多個axis,也就是有多條坐標軸。
下圖是在matplotlib官方文檔中展示的一張圖片,進一步的很清晰展示了matplotlib圖表布局上的組件構成:
上圖中,藍色部分文本是各組件的名稱,請牢記各組件的名稱,方便在對各組件進行設置是調用函數,因為組件的名稱與函數名是相似的。其實,在matplotlib中,在figure中的所有組件,包括圖一中的axes、axies甚至是figure和圖中出現的所有組件都稱為artist,因為這些組件均繼承于一個名為Artist的父類。根據所在位置和作用,我們可以將matplotlib所有artist可以劃分到三個層次:
(1)figure層:畫布,這是最低層的容器,用于容納axes。
(2)axes層:坐標系,也成為軸域,第二層容器,用于容納axis。
(3)axis層:坐標軸,也包含坐標軸上更加細微的組件。
使用matplotlib進行作圖時,按照這個層次結構順序進行創建完成作圖。接下來,我們分別對figure、axes、axis進行展開介紹。
看完上述內容,你們對python Matplotlib數據可視化有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。