matplotlib作為常見的可視化繪圖工具,在工作當中,應用還是比較的廣泛的,那么,我們要怎么使用python這門語言去進行繪圖呢?下面就給大家詳細解答下。
1、matplotlib之父簡介
matplotlib之父John D.Hunter已經去世,他的一生輝煌而短暫,但是他開發的的該開源庫還在繼續著輝煌。國內介紹的資料太少了,查閱了一番整理如下:
1968出身于美國的田納西州代爾斯堡。
之后求學于普林斯頓大學。
2003年發布Matplotlib 0.1版,初衷是博士研究期間為可視化癲癇患者的腦電圖(ECoG)數據;
之后,美國國家航空航天局(NASA)太空望遠鏡科學研究所的哈勃望遠鏡背后團隊(Hubble Space Telescope),選擇Matplotlib作為了畫圖程序包,并一直為Matplotlib開發團隊提供資金支持,從而大大促進了Matplotlib的發展。
2004年于芝加哥大學獲得神經生物學方向博士學位。
2005年供職于芝加哥的一家投資公司,從事量化分析(真是生物人遍布各行各業)。
之后以董事的身份創立了專為數據科學贊助的非盈利組織NumFOCUS Foundation。
2007年美國鳳凰號探測器(Phoenix spacecraft)登錄火星,NASA使用Matplotlib可視化了第一張黑洞的圖片。
2012年因John D.Hunter個人對Python和數據科學方向的杰出貢獻,被Python社區授予第一屆PSF Distinguished Service Awards獎項。
2012.08因患惡性結腸癌英年早逝,享年44歲。
雖然Matplotlib之父已經去世,但是,大量開源愛好者在fork著這個可視化包,延續著輝煌https://github.com/matplotlib。
NumFOCUS組織每年夏天會贊助1到2個學生,在高級貢獻者的帶領下,為Matplolib全職工作10周左右(2018年獎金多達$6,000):https://numfocus.org/programs/john-hunter-technology-fellowship。
2013年起,SciPy每年舉行可視化比賽:John Hunter Excellence in Plotting Competition,一是為了為了紀念John Hunter的貢獻,二是為了強調數據可視化對科學進步的重要性,并展示開源軟件力量。;2020年報名截止日期為06月01號,獎金優渥(1st prize:$1000;2nd prize:$750;3rd prize:$500):https://jhepc.github.io/index.html。
2、matplotlib圖形結構
figure層
指整張圖,可設置整張圖的分辨率(dpi),長寬(figsize)、標題(title)等特征;
可包含多個axes,可簡單理解為多個子圖(下圖為兩個axes);
figure置于canvas系統層之上,用戶不可見。
axes層
每個子圖,可以繪制各種圖形,例如柱狀圖(bar),餅圖(pie函數),箱圖(boxplot)等;
設置每個圖的外觀網格線(grid)的開關、坐標軸(axis)開關等;
設置每個坐標軸(axis)的名字(label)、子圖標題(title)、圖例(legend)等;
設置坐標軸范圍(scale)、坐標軸刻度(tricks)等;
下圖中具有兩個axes:
一張matplotlib圖的組成
下面這張matplotlib圖包含一張圖的常見元素,例如標題、坐標軸、軸標簽、刻度、文本注釋、圖例等。
3、matplotlib兩種畫繪圖方法
方法一:使用matplotlib.pyplot
matplotlib.pyplot簡介
這種繪圖主要使用pyplot模塊,pyplot.py代碼量有3000多行(windows下存儲于xxxsite-packagesmatplotlibpyplot.py),該腳本里面有大量def定義的函數,繪圖時就是調用pyplot.py中的函數。
pyplot方法繪圖舉例
#matplotlib.pyplot接口 import numpy as np import matplotlib.pyplot as plt#導入pyplot,matplotlib.pyplot簡寫為plt def f(t): return np.exp(-t)*np.cos(2*np.pi*t) t1=np.arange(0.0,5.0,0.1) t2=np.arange(0.0,5.0,0.02) plt.figure(dpi=100) plt.subplot(211) plt.plot(t1,f(t1),color='tab:blue',marker='o') plt.plot(t2,f(t2),color='black') plt.title('demo') plt.subplot(212) plt.plot(t2,np.cos(2*np.pi*t2),color='tab:orange',linestyle='--') plt.suptitle('matplotlib.pyplot api') plt.show()
方法二:面向對象方法
畫比較復雜的圖形時,面向對象方法會更方便。這種繪圖方式主要使用matplotlib的兩個子類:matplotlib.figure.Figure和matplotlib.axes.Axes,畫每張圖時,畫布為matplotlib.figure.Figure的一個實例,每個子圖為matplotlib.axes.Axes的一個實例,分別可以繼承父類的所有方法,也就是說你繪圖時,你想設置的元素(網格線啊,坐標刻度啊等)都可以在二者的屬性中找出來使用。
matplotlib.figure.Figure
該對象主要用于figure的調整
matplotlib.axes.Axes
面向對象方法繪圖舉例
import numpy as np import matplotlib.pyplot as plt def f(t): return np.exp(-t)*np.cos(2*np.pi*t) t1=np.arange(0.0,5.0,0.1) t2=np.arange(0.0,5.0,0.02) fig,axs=plt.subplots(2,dpi=100) #fig為matplotlib.figure.Figure對象的實例figure #axs為matplotlib.axes.Axes對象實例(每個子圖)組成的numpy.ndarray axs[0].plot(t1,f(t1),color='tab:blue',marker='o') axs[0].plot(t2,f(t2),color='black') #兩種設置標題的方法 #axs[0].set_title('haha')#使用matplotlib.axes.Axes的set_title方法設置小標題 axs[0].set(title='demo1') axs[1].plot(t2,np.cos(2*np.pi*t2),color='tab:orange',linestyle='--') fig.suptitle('matplotlib object-oriented')#使用matplotlib.figure.Figure中的suptitle方法設置Figure標題 plt.show()
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128333.html
小編寫這篇文章的主要目的,主要是來給大家解答關于Python Pycharm的一些相關問題,包括涉及到如何調用其maplotlib的相關繪圖問題,另外還涉及到圖像彈出問題等的一些相關介紹。那么,具體問題怎么解答呢?下面就給大家詳細解答下。 問題描述 在PyCharm中調用matplotlib繪制圖像時,默認圖像會在控制臺輸出(如圖),當繪制圖像較多時,控制臺輸出方式很不直觀。 問題解決 ...
摘要:本文作為學習過程中對一些常用知識點的整理,方便查找。所有繪圖操作僅對當前圖和當前坐標有效。表示把圖標分割成的網格。每個對象都是一個擁有自己坐標系統的繪圖區域。避免比例壓縮為橢圓數據可視化入門教程繪圖核心剖析如何調整子圖的大小 本文作為學習過程中對matplotlib一些常用知識點的整理,方便查找。 強烈推薦ipython無論你工作在什么項目上,IPython都是值得推薦的。利用ipyt...
摘要:概述是使用開發的一個繪圖庫,是界進行數據可視化的首選庫。可以通過圖形示例來快速瀏覽所有支持的圖形。最后,調用把繪制好的圖形顯示出來。對應于三個參數,表示行,表示列,表示位置。因此,表示在圖表中總共有個圖形,當前新增的圖形添加到位置。 showImg(https://segmentfault.com/img/bV6EPD?w=542&h=130); 概述 Matplotlib 是使用 P...
摘要:有一些表示常見圖形的對象稱為塊,完整的集合位于。中的繪圖函數在中,有行標簽列標簽分組信息。密度圖通過計算可能會產生觀測數據的連續概率分布的估計而產生的。在探索式數據分析工作中,同時觀察一組變量的散布圖是很有意義的。 我們在上一篇介紹了 pandas,本篇介紹 matplotlib。 繪圖和可視化 一個用于創建出版質量圖表的桌面繪圖包。 Matplotlib API入門 Figure ...
閱讀 917·2023-01-14 11:38
閱讀 888·2023-01-14 11:04
閱讀 747·2023-01-14 10:48
閱讀 2025·2023-01-14 10:34
閱讀 954·2023-01-14 10:24
閱讀 829·2023-01-14 10:18
閱讀 504·2023-01-14 10:09
閱讀 581·2023-01-14 10:02