日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python3 matplotlib的绘图函数subplot()简介

發(fā)布時(shí)間:2023/12/13 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3 matplotlib的绘图函数subplot()简介 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python3 matplotlib的繪圖函數(shù)subplot()簡(jiǎn)介

一、簡(jiǎn)介

matplotlib下, 一個(gè)?Figure?對(duì)象可以包含多個(gè)子圖(Axes), 可以使用?subplot()?快速繪制, 其調(diào)用形式如下 :

subplot(numRows, numCols, plotNum)
  • 圖表的整個(gè)繪圖區(qū)域被分成?numRows?行和?numCols?列

  • 然后按照從左到右,從上到下的順序?qū)γ總€(gè)子區(qū)域進(jìn)行編號(hào),左上的子區(qū)域的編號(hào)為1

  • plotNum?參數(shù)指定創(chuàng)建的?Axes?對(duì)象所在的區(qū)域

如果?numRows = 2, numCols = 3, 那整個(gè)繪制圖表樣式為?2X3?的圖片區(qū)域, 用坐標(biāo)表示為:

(1, 1), (1, 2), (1, 3) (2, 1), (2, 2), (2, 3)

這時(shí), 當(dāng)?plotNum = 3?時(shí), 表示的坐標(biāo)為(1, 3), 即第一行第三列的子圖

  • 如果?numRows,?numCols?和?plotNum?這三個(gè)數(shù)都小于?10?的話, 可以把它們縮寫(xiě)為一個(gè)整數(shù), 例如?subplot(323)?和?subplot(3,2,3)?是相同的.

  • subplot在?plotNum?指定的區(qū)域中創(chuàng)建一個(gè)軸對(duì)象. 如果新創(chuàng)建的軸和之前創(chuàng)建的軸重疊的話,之前的軸將被刪除.

二、參數(shù)說(shuō)明

1,subplots()參數(shù)

matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

創(chuàng)建一個(gè)畫(huà)像(figure)和一組子圖(subplots)。
這個(gè)實(shí)用程序包裝器可以方便地在單個(gè)調(diào)用中創(chuàng)建子圖的公共布局,包括封閉的圖形對(duì)象。

輸入?yún)?shù)說(shuō)明:
  nrows,ncols:整型,可選參數(shù),默認(rèn)為1。表示子圖網(wǎng)格(grid)的行數(shù)與列數(shù)。
  sharex,sharey:布爾值或者{'none','all','row','col'},默認(rèn):False
? ? ? ?控制x(sharex)或y(sharey)軸之間的屬性共享:
? ? ? ?   1.True或者'all':x或y軸屬性將在所有子圖(subplots)中共享.
? ? ? ?   2.False或'none':每個(gè)子圖的x或y軸都是獨(dú)立的部分
? ? ? ? ?  ? 3.'row':每個(gè)子圖在一個(gè)x或y軸共享行(row)
? ? ? ? ? ? ? ? 4.'col':每個(gè)子圖在一個(gè)x或y軸共享列(column)
  當(dāng)子圖在x軸有一個(gè)共享列時(shí)('col'),只有底部子圖的x tick標(biāo)記是可視的。
  同理,當(dāng)子圖在y軸有一個(gè)共享行時(shí)('row'),只有第一列子圖的y tick標(biāo)記是可視的。
  squeeze:布爾類(lèi)型,可選參數(shù),默認(rèn):True。
? ? ? ? ? ? ? ? * 如果是True,額外的維度從返回的Axes(軸)對(duì)象中擠出。
? ? ? ? ? ? ? ? ? ? 》如果只有一個(gè)子圖被構(gòu)建(nrows=ncols=1),結(jié)果是單個(gè)Axes對(duì)象作為標(biāo)量被返回。
? ? ? ? ? ? ? ? ? ? 》對(duì)于N*1或1*N個(gè)子圖,返回一個(gè)1維數(shù)組。
? ? ? ? ? ? ? ? ? ? 》對(duì)于N*M,N>1和M>1返回一個(gè)2維數(shù)組。
? ? ? ? ? ? ? ? *如果是False,不進(jìn)行擠壓操作:返回一個(gè)元素為Axes實(shí)例的2維數(shù)組,即使它最終是1x1。
  subplot_kw:字典類(lèi)型,可選參數(shù)。把字典的關(guān)鍵字傳遞給add_subplot()來(lái)創(chuàng)建每個(gè)子圖。
  gridspec_kw字典類(lèi)型,可選參數(shù)。把字典的關(guān)鍵字傳遞給GridSpec構(gòu)造函數(shù)創(chuàng)建子圖放在網(wǎng)格里(grid)。
  **fig_kw:把所有詳細(xì)的關(guān)鍵字參數(shù)傳給figure()函數(shù)

返回結(jié)果:
  fig:matplotlib.figure.Figure對(duì)象
  ax:Axes(軸)對(duì)象或Axes(軸)對(duì)象數(shù)組。

2,figure()參數(shù)

matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)

創(chuàng)建一個(gè)新的畫(huà)布(figure)。
輸入?yún)?shù):
  num:整型或者字符串,可選參數(shù),默認(rèn):None。
?  ?   如果不提供該參數(shù),一個(gè)新的畫(huà)布(figure)將被創(chuàng)建而且畫(huà)布數(shù)量將會(huì)增加。
? ? ? ?   如果提供該參數(shù),帶有id的畫(huà)布是已經(jīng)存在的,激活該畫(huà)布并返回該畫(huà)布的引用。
? ? ? ? ? ? ? ?如果這個(gè)畫(huà)布不存在,創(chuàng)建并返回畫(huà)布實(shí)例。
? ? ? ? ? ? ? ?如果num是字符串,窗口標(biāo)題將被設(shè)置為該圖的數(shù)字。
  figsize:整型元組,可選參數(shù) ,默認(rèn):None。
? ? ? ? ? ? ? 每英寸的寬度和高度。如果不提供,默認(rèn)值是figure.figsize。
  dpi:整型,可選參數(shù),默認(rèn):None。每英寸像素點(diǎn)。如果不提供,默認(rèn)是figure.dpi。
  facecolor:背景色。如果不提供,默認(rèn)值:figure.facecolor。
  edgecolor:邊界顏色。如果不提供,默認(rèn)值:figure.edgecolor。
  framemon:布爾類(lèi)型,可選參數(shù),默認(rèn)值:True。如果是False,禁止繪制畫(huà)圖框。
  FigureClass:源于matplotlib.figure.Figure的類(lèi)。(可選)使用自定義圖實(shí)例。
  clear:布爾類(lèi)型,可選參數(shù),默認(rèn)值:False。如果為T(mén)rue和figure已經(jīng)存在時(shí),這是清理掉改圖。
返回值:
  figure:Figure。返回的Figure實(shí)例也將被傳遞給后端的new_figure_manager,這允許將自定義的圖類(lèi)掛接到pylab接口中。?

? ? ? ?附加的kwarg將被傳遞給圖形init函數(shù)。

三、示例

1,規(guī)則劃分成3*3

代碼:

import matplotlib import matplotlib.pyplot as pltif __name__ == '__main__':for i,color in enumerate("rgby"):plt.subplot(221+i, facecolor=color) #背景色設(shè)置facecolorplt.show()

效果:

2,不規(guī)則劃分

不規(guī)則劃分

將整個(gè)表按照?2*2?劃分?
前兩個(gè)簡(jiǎn)單, 分別是?(2, 2, 1)?和?(2, 2, 2)

但是第三個(gè)圖呢, 他占用了?(2, 2, 3)?和?(2, 2, 4)

顯示需要對(duì)其重新劃分, 按照?2 * 1?劃分

前兩個(gè)圖占用了?(2, 1, 1)?的位置

因此第三個(gè)圖占用了?(2, 1, 2)?的位置

代碼:

import matplotlib.pyplot as plt import numpy as npdef f(t):return np.exp(-t) * np.cos(2 * np.pi * t)if __name__ == '__main__' :t1 = np.arange(0, 5, 0.1)t2 = np.arange(0, 5, 0.02)plt.figure(12)plt.subplot(221)plt.plot(t1, f(t1), 'bo', t2, f(t2), 'r--')plt.subplot(222)plt.plot(t2, np.cos(2 * np.pi * t2), 'r--')plt.subplot(212)plt.plot([1, 2, 3, 4], [1, 4, 9, 16])plt.show()

效果:

?

轉(zhuǎn)載于:https://www.cnblogs.com/lizm166/p/9667923.html

總結(jié)

以上是生活随笔為你收集整理的Python3 matplotlib的绘图函数subplot()简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。