成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

詳解Python中matplotlib模塊的繪圖方式

89542767 / 577人閱讀

  matplotlib作為常見的可視化繪圖工具,在工作當中,應用還是比較的廣泛的,那么,我們要怎么使用python這門語言去進行繪圖呢?下面就給大家詳細解答下。


  1、matplotlib之父簡介


  matplotlib之父John D.Hunter已經(jīng)去世,他的一生輝煌而短暫,但是他開發(fā)的的該開源庫還在繼續(xù)著輝煌。國內(nèi)介紹的資料太少了,查閱了一番整理如下:


  1968出身于美國的田納西州代爾斯堡。


  之后求學于普林斯頓大學。


  2003年發(fā)布Matplotlib 0.1版,初衷是博士研究期間為可視化癲癇患者的腦電圖(ECoG)數(shù)據(jù);


  之后,美國國家航空航天局(NASA)太空望遠鏡科學研究所的哈勃望遠鏡背后團隊(Hubble Space Telescope),選擇Matplotlib作為了畫圖程序包,并一直為Matplotlib開發(fā)團隊提供資金支持,從而大大促進了Matplotlib的發(fā)展。


  2004年于芝加哥大學獲得神經(jīng)生物學方向博士學位。


  2005年供職于芝加哥的一家投資公司,從事量化分析(真是生物人遍布各行各業(yè))。


  之后以董事的身份創(chuàng)立了專為數(shù)據(jù)科學贊助的非盈利組織NumFOCUS Foundation。


  2007年美國鳳凰號探測器(Phoenix spacecraft)登錄火星,NASA使用Matplotlib可視化了第一張黑洞的圖片。


  2012年因John D.Hunter個人對Python和數(shù)據(jù)科學方向的杰出貢獻,被Python社區(qū)授予第一屆PSF Distinguished Service Awards獎項。


  2012.08因患惡性結腸癌英年早逝,享年44歲。


  雖然Matplotlib之父已經(jīng)去世,但是,大量開源愛好者在fork著這個可視化包,延續(xù)著輝煌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的貢獻,二是為了強調數(shù)據(jù)可視化對科學進步的重要性,并展示開源軟件力量。;2020年報名截止日期為06月01號,獎金優(yōu)渥(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系統(tǒng)層之上,用戶不可見。

01.png

  axes層


  每個子圖,可以繪制各種圖形,例如柱狀圖(bar),餅圖(pie函數(shù)),箱圖(boxplot)等;


  設置每個圖的外觀網(wǎng)格線(grid)的開關、坐標軸(axis)開關等;


  設置每個坐標軸(axis)的名字(label)、子圖標題(title)、圖例(legend)等;


  設置坐標軸范圍(scale)、坐標軸刻度(tricks)等;


  下圖中具有兩個axes:

02.png

  一張matplotlib圖的組成

03.png

  下面這張matplotlib圖包含一張圖的常見元素,例如標題、坐標軸、軸標簽、刻度、文本注釋、圖例等。


  3、matplotlib兩種畫繪圖方法


  方法一:使用matplotlib.pyplot


  matplotlib.pyplot簡介


  這種繪圖主要使用pyplot模塊,pyplot.py代碼量有3000多行(windows下存儲于xxxsite-packagesmatplotlibpyplot.py),該腳本里面有大量def定義的函數(shù),繪圖時就是調用pyplot.py中的函數(shù)。


  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()

  

04.png

      方法二:面向對象方法


  畫比較復雜的圖形時,面向對象方法會更方便。這種繪圖方式主要使用matplotlib的兩個子類:matplotlib.figure.Figure和matplotlib.axes.Axes,畫每張圖時,畫布為matplotlib.figure.Figure的一個實例,每個子圖為matplotlib.axes.Axes的一個實例,分別可以繼承父類的所有方法,也就是說你繪圖時,你想設置的元素(網(wǎng)格線啊,坐標刻度啊等)都可以在二者的屬性中找出來使用。


  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()

05.png

  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/128333.html

相關文章

  • PyCharm調用matplotlib繪圖時圖像彈出問題詳解

      小編寫這篇文章的主要目的,主要是來給大家解答關于Python Pycharm的一些相關問題,包括涉及到如何調用其maplotlib的相關繪圖問題,另外還涉及到圖像彈出問題等的一些相關介紹。那么,具體問題怎么解答呢?下面就給大家詳細解答下?! 栴}描述  在PyCharm中調用matplotlib繪制圖像時,默認圖像會在控制臺輸出(如圖),當繪制圖像較多時,控制臺輸出方式很不直觀。  問題解決 ...

    89542767 評論0 收藏0
  • Python--matplotlib繪圖可視化知識點整理

    摘要:本文作為學習過程中對一些常用知識點的整理,方便查找。所有繪圖操作僅對當前圖和當前坐標有效。表示把圖標分割成的網(wǎng)格。每個對象都是一個擁有自己坐標系統(tǒng)的繪圖區(qū)域。避免比例壓縮為橢圓數(shù)據(jù)可視化入門教程繪圖核心剖析如何調整子圖的大小 本文作為學習過程中對matplotlib一些常用知識點的整理,方便查找。 強烈推薦ipython無論你工作在什么項目上,IPython都是值得推薦的。利用ipyt...

    nifhlheimr 評論0 收藏0
  • 快速入門 Matplotlib 繪圖

    摘要:概述是使用開發(fā)的一個繪圖庫,是界進行數(shù)據(jù)可視化的首選庫??梢酝ㄟ^圖形示例來快速瀏覽所有支持的圖形。最后,調用把繪制好的圖形顯示出來。對應于三個參數(shù),表示行,表示列,表示位置。因此,表示在圖表中總共有個圖形,當前新增的圖形添加到位置。 showImg(https://segmentfault.com/img/bV6EPD?w=542&h=130); 概述 Matplotlib 是使用 P...

    Hujiawei 評論0 收藏0
  • 【數(shù)據(jù)科學系統(tǒng)學習】Python # 數(shù)據(jù)分析基本操作[三] matplotlib

    摘要:有一些表示常見圖形的對象稱為塊,完整的集合位于。中的繪圖函數(shù)在中,有行標簽列標簽分組信息。密度圖通過計算可能會產(chǎn)生觀測數(shù)據(jù)的連續(xù)概率分布的估計而產(chǎn)生的。在探索式數(shù)據(jù)分析工作中,同時觀察一組變量的散布圖是很有意義的。 我們在上一篇介紹了 pandas,本篇介紹 matplotlib。 繪圖和可視化 一個用于創(chuàng)建出版質量圖表的桌面繪圖包。 Matplotlib API入門 Figure ...

    BDEEFE 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<