版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章
子圖的繪制及坐標(biāo)軸共享·繪制固定區(qū)域的子圖·繪制自定義區(qū)域的子圖·共享子圖的坐標(biāo)軸·子圖的布局掌握掌握掌握
學(xué)習(xí)目標(biāo)掌握繪制固定區(qū)域的子圖12掌握繪制自定義區(qū)域的子圖掌握共享子圖的坐標(biāo)軸34掌握子圖的布局目錄頁(yè)5.5本章小結(jié)5.1繪制固定區(qū)域的子圖5.2繪制自定義區(qū)域的子圖5.3共享子圖的坐標(biāo)軸5.4子圖的布局目錄頁(yè)5.5本章小結(jié)5.1繪制固定區(qū)域的子圖5.2繪制自定義區(qū)域的子圖5.3共享子圖的坐標(biāo)軸5.4子圖的布局5.1.1繪制單子圖用戶為了能深入理解數(shù)據(jù)的含義,通常會(huì)將數(shù)據(jù)以一組相關(guān)圖表的形式并排地顯示到同一平面上,以便于從多個(gè)角度比較和分析數(shù)據(jù)?;谏鲜鲂枨?,matplotlib提供了一些將整個(gè)畫布規(guī)劃成若干區(qū)域,以及在指定區(qū)域上繪制子圖(指每個(gè)區(qū)域上的圖表)的功能。matplotlib可以將整個(gè)畫布規(guī)劃成等分布局的m*n(行*列)的矩陣區(qū)域,并按照先行后列的方式對(duì)每個(gè)區(qū)域進(jìn)行編號(hào)(編號(hào)從1開始),之后在選中的某個(gè)或某些區(qū)域中繪制單個(gè)或多個(gè)子圖。5.1.1繪制單子圖畫布被規(guī)劃成3*2的矩陣區(qū)域及編號(hào)的示意圖。5.1.1繪制單子圖使用pyplot模塊的subplot()函數(shù)可以在規(guī)劃好的某個(gè)區(qū)域中繪制單個(gè)子圖。subplot(nrows,ncols,index,projection,polar,sharex,sharey,label,
**kwargs)nrows:表示規(guī)劃區(qū)域的行數(shù)。ncols:表示規(guī)劃區(qū)域的列數(shù)。index:表示選擇區(qū)域的索引,默認(rèn)從1開始編號(hào)。projection:表示子圖的投影類型。polar:表示是否使用極坐標(biāo),默認(rèn)值為False。若參數(shù)polar設(shè)為True,則作用等同于projection='polar'。語(yǔ)法5.1.1繪制單子圖參數(shù)nrows、ncols、index既支持單獨(dú)傳參,也支持以一個(gè)3位整數(shù)(每位整數(shù)必須小于10)的形式傳參。subplot()函數(shù)會(huì)返回一個(gè)
Axes類的子類SubplotBase的對(duì)象。Figure類對(duì)象可以使用add_subplot()方法繪制單子圖,此方式與subplot()函數(shù)的作用是等價(jià)的。多學(xué)一招:JupyterNotebook的繪圖模式當(dāng)JupyterNotebook工具運(yùn)行matplotlib程序時(shí),默認(rèn)會(huì)以靜態(tài)圖片的形式顯示運(yùn)行結(jié)果,此時(shí)的圖片不支持放大或縮小等交互操作。JupyterNotebook支持兩種繪圖模式,分別為控制臺(tái)繪圖和彈出窗繪圖。多學(xué)一招:JupyterNotebook的繪圖模式控制臺(tái)繪圖是默認(rèn)模式,該模式是將繪制的圖表以靜態(tài)圖片的形式顯示,具有便于存儲(chǔ)圖片、不支持用戶交互的特點(diǎn)。開發(fā)者可以在matplotlib程序中添加“%matplotlibinline”語(yǔ)句,通過(guò)控制臺(tái)來(lái)顯示圖片??刂婆_(tái)繪圖多學(xué)一招:JupyterNotebook的繪圖模式彈出窗繪圖模式是將繪制的圖表以彈出窗口的形式顯示,具有支持用戶交互、支持多種圖片存儲(chǔ)格式的特點(diǎn)。開發(fā)者可以在matplotlib程序中添加“%matplotlibauto”或“%matplotlibnotebook”語(yǔ)句,通過(guò)彈出窗口來(lái)顯示圖片。彈出窗繪圖多學(xué)一招:JupyterNotebook的繪圖模式matplotlib程序添加完設(shè)置繪圖模式的語(yǔ)句后,很有可能出現(xiàn)延遲設(shè)置繪圖模式的現(xiàn)象。因此這里建議大家重啟服務(wù),即在JupyterNotebook工具的菜單欄中選擇【Kernel】->【Restart】,之后在彈出的“重啟服務(wù)?”窗口中選擇【重啟】即可。本實(shí)例要求根據(jù)下表的數(shù)據(jù),先將畫布規(guī)劃成2*1的矩陣區(qū)域,并在索引為1的區(qū)域中繪制反映產(chǎn)品A和產(chǎn)品B銷售額趨勢(shì)的折線圖;再將畫布規(guī)劃成2*2的矩陣區(qū)域,并在索引為3的區(qū)域中繪制反映產(chǎn)品A銷售額占比的餅圖;最后將畫布規(guī)劃成2*2的矩陣區(qū)域,并在索引為4的區(qū)域中繪制反映產(chǎn)品B銷售額占比的餅圖。5.1.2實(shí)例1:某工廠產(chǎn)品A與產(chǎn)品B去年的銷售額分析由圖可知,通過(guò)在同一畫布中顯示多個(gè)子圖的方式可以從多個(gè)角度傳遞數(shù)據(jù)的信息。5.1.2實(shí)例1:某工廠產(chǎn)品A與產(chǎn)品B去年的銷售額分析規(guī)劃2*1的矩陣區(qū)域,選中索引為1的區(qū)域規(guī)劃2*2的矩陣區(qū)域,分別選中索引為3、4的區(qū)域5.1.3繪制多子圖使用pyplot模塊的subplots()函數(shù)可以在規(guī)劃好的所有區(qū)域中一次繪制多個(gè)子圖。subplots(nrows=1,ncols=1,sharex=False,sharey=False,squeeze=True,subplot_kw=None,gridspec_kw=None,**fig_kw)nrows:表示規(guī)劃區(qū)域的行數(shù),默認(rèn)為1。ncols:表示規(guī)劃區(qū)域的列數(shù),默認(rèn)為1。sharex,sharey:表示是否共享子圖的x軸或y軸。語(yǔ)法subplots()函數(shù)會(huì)返回包含兩個(gè)元素的元組,其中該元組的第一個(gè)元素為Figure對(duì)象,第二個(gè)元素為Axes對(duì)象或Axes對(duì)象數(shù)組。隨著人們生活水平的提高,許多人都會(huì)在家里養(yǎng)一些萌寵,有時(shí)還會(huì)在抖音上分享萌寵日常的可愛視頻。5.1.4實(shí)例2:部分國(guó)家養(yǎng)貓與養(yǎng)狗人群比例分析5.1.4實(shí)例2:部分國(guó)家養(yǎng)貓與養(yǎng)狗人群比例分析本實(shí)例要求根據(jù)下表的數(shù)據(jù),將整個(gè)畫布規(guī)劃成1*2的矩陣區(qū)域,并在索引為1和索引為2的區(qū)域中分別繪制反映養(yǎng)貓人群比例與養(yǎng)狗人群比例的條形圖
。5.1.4實(shí)例2:部分國(guó)家養(yǎng)貓與養(yǎng)狗人群比例分析由圖可知,俄羅斯養(yǎng)貓人群的比例最高,墨西哥養(yǎng)狗人群的比例最高。規(guī)劃1*2的矩陣區(qū)域,依次在每個(gè)區(qū)域中繪制子圖目錄頁(yè)5.5本章小結(jié)5.1繪制固定區(qū)域的子圖5.2繪制自定義區(qū)域的子圖5.3共享子圖的坐標(biāo)軸5.4子圖的布局5.2.1繪制單子圖使用pyplot模塊的subplot2grid()函數(shù)可以將整個(gè)畫布規(guī)劃成非等分布局的區(qū)域,并可在選中的某個(gè)區(qū)域中繪制單個(gè)子圖。subplot2grid(shape,
loc,
rowspan=1,
colspan=1,
fig=None,
**kwargs)shape:表示規(guī)劃的區(qū)域結(jié)構(gòu),該參數(shù)接收一個(gè)包含兩個(gè)整型數(shù)據(jù)的元組,元組中第1個(gè)元素表示規(guī)劃區(qū)域的行數(shù),第2個(gè)元素代表規(guī)劃區(qū)域的列數(shù)。loc:表示選擇區(qū)域的位置,該參數(shù)接收一個(gè)包含兩個(gè)整型數(shù)據(jù)的元組,元組中第1個(gè)元素表示子圖所在的行數(shù)(行數(shù)從0開始),第2個(gè)元素表示子圖所在的列數(shù)(列數(shù)從0開始)。rowspan:表示向下跨越的行數(shù),默認(rèn)為1。colspan:表示向右跨越的列數(shù),默認(rèn)為1。語(yǔ)法抖音是一款音樂(lè)創(chuàng)意短視頻社交軟件,該軟件自2016年9月上線以來(lái)受到越來(lái)越多年輕人的歡迎。用戶可以通過(guò)這款軟件選擇歌曲,拍攝音樂(lè)短視頻,生成自己的作品。5.2.2實(shí)例3:2017年與2018年抖音用戶分析本實(shí)例要求根據(jù)下表的數(shù)據(jù),使用3個(gè)子圖進(jìn)行展示:在第0~1行第0~1列的區(qū)域中,繪制說(shuō)明2018年相比于2017年人群增長(zhǎng)倍數(shù)的柱形圖;在第2行第0列、第2行第1列的區(qū)域中,分別繪制說(shuō)明2017年、2018年抖音用戶地區(qū)分布比例的餅圖。5.2.2實(shí)例3:2017年與2018年抖音用戶分析5.2.2實(shí)例3:2017年與2018年抖音用戶分析第0~1行第0~1列的區(qū)域第2行第0列的區(qū)域第2行第1列的區(qū)域目錄頁(yè)5.5本章小結(jié)5.1繪制固定區(qū)域的子圖5.2繪制自定義區(qū)域的子圖5.3共享子圖的坐標(biāo)軸5.4子圖的布局當(dāng)使用subplots()函數(shù)繪制子圖時(shí),可以通過(guò)該函數(shù)的sharex或sharey參數(shù)控制是否共享x軸或y軸。sharex或sharey參數(shù)支持False或'none'、True或'all'、'row'、'col'中任一取值。5.3.1共享相鄰子圖的坐標(biāo)軸True或'all':表示所有子圖之間共享x軸或y軸。False或'none':表示所有子圖之間不共享x軸或y軸。'row':表示每一行的子圖之間共享x軸或y軸。'col':表示每一列的子圖之間共享x軸或y軸。5.3.1共享相鄰子圖的坐標(biāo)軸'all'—所有子圖共享x軸'none'—所有子圖不共享x軸row:每行子圖共享x軸col:每列子圖共享x軸5.3.2共享非相鄰子圖的坐標(biāo)軸當(dāng)使用pyplot的subplot()函數(shù)繪制子圖時(shí),也可以將代表其它子圖的變量賦值給該函數(shù)的sharex或sharey參數(shù),此時(shí)可以共享非相鄰子圖之間的坐標(biāo)軸。單個(gè)子圖也可以共享坐標(biāo)軸,它通常會(huì)將y軸作為一組圖形參考的坐標(biāo)軸,將右側(cè)的垂直坐標(biāo)軸作為另一組圖形參考的坐標(biāo)軸。多學(xué)一招:共享同一子圖的坐標(biāo)軸多學(xué)一招:共享同一子圖的坐標(biāo)軸twinx()函數(shù)用于共享同一子圖的坐標(biāo)軸。twinx()函數(shù)會(huì)返回共享x軸的新繪圖區(qū)域(Axes類的對(duì)象),新創(chuàng)建的繪圖區(qū)域具有不可見的x軸和獨(dú)立的、位于右側(cè)的y軸。twinx(ax=None)以上函數(shù)的ax函數(shù)表示要共享坐標(biāo)軸的子圖。語(yǔ)法5.3.3實(shí)例4:某地區(qū)全年氣溫和水量的關(guān)系氣候是地球上某一地區(qū)大氣的多年平均狀況,主要有光照、氣溫、降水等氣候要素,其中氣溫、降水是反映一個(gè)地區(qū)氣候特征的重要指標(biāo)。5.3.3實(shí)例4:某地區(qū)全年氣溫和水量的關(guān)系本實(shí)例要求根據(jù)下表的數(shù)據(jù),將月份列的數(shù)據(jù)作為x軸的刻度標(biāo)簽,將平均氣溫、降水量、蒸發(fā)量三列的數(shù)據(jù)作為y軸的數(shù)據(jù),在同一繪圖區(qū)域中分別繪制反映平均氣溫、降水量、蒸發(fā)量關(guān)系的圖表
。5.3.3實(shí)例4:某地區(qū)全年氣溫和水量的關(guān)系由圖可知,隨著氣溫的升高,蒸發(fā)量也有所增加,降水量與蒸發(fā)量大致相等。折線圖參照的坐標(biāo)軸堆積柱形圖參照的坐標(biāo)軸目錄頁(yè)5.5本章小結(jié)5.1繪制固定區(qū)域的子圖5.2繪制自定義區(qū)域的子圖5.3共享子圖的坐標(biāo)軸5.4子圖的布局5.4.1約束布局當(dāng)帶有標(biāo)題的多個(gè)子圖并排顯示時(shí),多個(gè)子圖會(huì)因區(qū)域過(guò)于緊湊而出現(xiàn)標(biāo)題和坐標(biāo)軸之間相互重疊的問(wèn)題,而且子圖元素的擺放過(guò)于緊湊,影響用戶的正常查看。matplotlib中提供了一些調(diào)整子圖布局的方法,包括約束布局、緊密布局和自定義布局,通過(guò)這些方法可以合理布局多個(gè)子圖。5.4.1約束布局什么是約束布局?5.4.1約束布局約束布局是指通過(guò)一系列限制來(lái)確定畫布中元素的位置的方式,它預(yù)先會(huì)確定一個(gè)元素的絕對(duì)定位,之后以該元素的為基點(diǎn)將其它元素進(jìn)行絕對(duì)定位,從而靈活地定位和調(diào)整元素的位置。5.4.1約束布局matplotlib在繪制多子圖時(shí)默認(rèn)并未啟用約束布局,它提供了兩種方式啟用約束布局:第一種方式是使用subplots()或figure()函數(shù)的constrained_layout參數(shù),第二種方式是修改figure.constrained_layout.use配置項(xiàng)。
5.4.1約束布局第1種在使用subplots()或figure()函數(shù)創(chuàng)建子圖或畫布時(shí),可以將這些函數(shù)的constrained_layout參數(shù)的值設(shè)置為True,以啟用約束布局來(lái)調(diào)整圖表元素的位置。plt.subplots(constrained_layout=True)示例第2種matplotlib可以通過(guò)rcParams字典或rc()函數(shù)修改figure.constrained_layout.use配置項(xiàng)的值為True,以啟用約束布局來(lái)調(diào)整圖表元素的位置。plt.rcParams['figure.constrained_layout.use']=True示例5.4.1約束布局除此之外,通過(guò)以下配置項(xiàng)或者是Figure類對(duì)象的方法可以使用約束布局或者手動(dòng)調(diào)整子圖的內(nèi)邊距。figure.constrained_layout.w_pad/h_pad:表示繪圖區(qū)域的內(nèi)邊距。figure.constrained_layout.wspace/hspace:表示子圖之間的間隙,默認(rèn)為
0.02。set_constrained_layout():設(shè)置是否使用約束布局。若該方法傳入?yún)?shù)None,則說(shuō)明使用配置文件中rcParams['figure.constrained_layout.use']指定的值。set_constrained_layout_pads():設(shè)置子圖的內(nèi)邊距。5.4.1約束布局約束布局僅適用于調(diào)整刻度標(biāo)簽、軸標(biāo)簽、標(biāo)題和圖例的位置,而不會(huì)調(diào)整子圖其他元素的位置。因此,使用約束布局后的子圖之間仍然會(huì)出現(xiàn)圖表元素被裁剪或重疊的問(wèn)題。5.4.2緊密布局什么是緊密布局?5.4.2緊密布局緊密布局采用緊湊的形式將子圖排列到畫布中,僅適用于刻度標(biāo)簽、坐標(biāo)軸標(biāo)簽和標(biāo)題位置的調(diào)整。pyplot中提供了兩種實(shí)現(xiàn)緊密布局的方式。第一種:使用tight_layout()函數(shù)。第二種:修改figure.autolayoutrcParam
配置項(xiàng)。5.4.2緊密布局matplotlib在1.1版本中引入了tight_layout()函數(shù),通過(guò)該函數(shù)可以調(diào)整子圖的內(nèi)邊距及子圖的間隙,使子圖能適應(yīng)畫布的繪圖區(qū)域。使用tight_layout()函數(shù)tight_layout(pad=1.08,
h_pad=None,
w_pad=None,
rect=None)
語(yǔ)法pad:表示畫布邊緣與子圖邊緣之間的空白區(qū)域的大小,默認(rèn)為1.08。h_pad,w_pad:表示相鄰子圖之間的空白區(qū)域的大小。rect:表示調(diào)整所有子圖位置的矩形區(qū)域的四元組(left,bottom,right,top),默認(rèn)為
(0,0,1,1)。當(dāng)pad參數(shù)設(shè)為0時(shí),空白區(qū)域的文本會(huì)出現(xiàn)被裁剪的現(xiàn)象,之所以產(chǎn)生文本部分缺失的情況,可能是因?yàn)樗惴ㄥe(cuò)誤或受到算法的限制。因此,官方建議pad參數(shù)的取值應(yīng)至少大于0.3。
5.4.2緊密布局pyplot可以通過(guò)rcParams字典或rc()函數(shù)修改figure.autolayoutrcParam配置項(xiàng)的值為True,使子圖元素能適應(yīng)畫布的繪圖區(qū)域。修改figure.autolayoutrcParam
配置項(xiàng)plt.rcParams['figure.autolayoutrcParam']=True示例matplotlib的gridspec模塊是專門指定畫布中子圖位置的模塊,該模塊中包含一個(gè)GridSpec類,通過(guò)顯式地創(chuàng)建GridSpec類對(duì)象來(lái)自定義畫布中子圖的布局結(jié)構(gòu),使得子圖能夠更好地適應(yīng)畫布。5.4.3自定義布局GridSpec(nrows,
ncols,
figure=None,
left=None,
bottom=None,
right=None,
top=None,
wspace=None,
hspace=None,
width_ratios=None,
height_ratios=None)nrows:表示行數(shù)。ncols:表示列數(shù)。figure:表示布局的畫布。語(yǔ)法left,bottom,right,top:表示子圖的范圍。wspace:表示子圖之間預(yù)留的寬度量。hspace:表示子圖之間預(yù)留的高度量。5.4.3自定義布局GridSpec類對(duì)象的使用方式與數(shù)組的使用方式相似,它采用索引或切片的形式訪問(wèn)每個(gè)布局元素。matplotlib中還為Figure對(duì)象提供了快速添加布局結(jié)構(gòu)的方法add_gridspec()。5
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川西南航空職業(yè)學(xué)院《視傳藝術(shù)考察》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年花卉產(chǎn)業(yè)扶貧項(xiàng)目合作合同協(xié)議3篇
- 二零二五年度按揭貸款房屋改造貸款合同范本2篇
- 2024影視行業(yè)人才中介服務(wù)合同
- 二零二五版戶外廣告牌制作、安裝與維護(hù)全流程服務(wù)合同3篇
- 紹興文理學(xué)院元培學(xué)院《影視動(dòng)畫海報(bào)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 個(gè)人所得稅代扣代繳協(xié)議(2024年版)
- 二零二五年度水泥管行業(yè)市場(chǎng)競(jìng)爭(zhēng)策略合同
- 二零二五年度專業(yè)安保公司員工勞動(dòng)合同范本2篇
- 山東輕工職業(yè)學(xué)院《期貨投資》2023-2024學(xué)年第一學(xué)期期末試卷
- 《胃癌靶向治療》課件
- 2024-2025學(xué)年遼寧省沈陽(yáng)市高一上學(xué)期1月期末質(zhì)量監(jiān)測(cè)數(shù)學(xué)試題(含解析)
- 《少兒主持人》課件
- 北京市朝陽(yáng)區(qū)2024-2025學(xué)年高二上學(xué)期期末考試生物試卷(含答案)
- 2025年西藏拉薩市柳梧新區(qū)城市投資建設(shè)發(fā)展集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 2025年部編版一年級(jí)語(yǔ)文上冊(cè)期末復(fù)習(xí)計(jì)劃
- 儲(chǔ)罐維護(hù)檢修施工方案
- 地理2024-2025學(xué)年人教版七年級(jí)上冊(cè)地理知識(shí)點(diǎn)
- 2024 消化內(nèi)科專業(yè) 藥物臨床試驗(yàn)GCP管理制度操作規(guī)程設(shè)計(jì)規(guī)范應(yīng)急預(yù)案
- 2024-2030年中國(guó)電子郵箱行業(yè)市場(chǎng)運(yùn)營(yíng)模式及投資前景預(yù)測(cè)報(bào)告
- 基礎(chǔ)設(shè)施零星維修 投標(biāo)方案(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論