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