版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第6章
坐標軸的定制·向任意位置添加坐標軸·定制刻度·隱藏軸脊·移動軸脊熟悉熟悉掌握掌握
學(xué)習(xí)目標熟悉坐標軸的結(jié)構(gòu)12掌握坐標軸的創(chuàng)建方式,移動軸脊的位置掌握定制刻度的位置和格式,定制刻度的樣式34熟悉隱藏全部軸脊,隱藏部分軸脊目錄頁6.5移動軸脊6.1坐標軸概述6.2向任意位置添加坐標軸6.3定制刻度6.4隱藏軸脊6.6本章小結(jié)目錄頁6.5移動軸脊6.1坐標軸概述6.2向任意位置添加坐標軸6.3定制刻度6.4隱藏軸脊6.6本章小結(jié)6.1坐標軸概述前文中使用的坐標軸會因位置和大小的限制、樣式的固定而顯得圖表既單一且又不夠靈活。matplotlib中提供了定制坐標軸的高級知識,包括添加坐標軸、定制坐標軸的刻度、隱藏坐標軸的軸脊、修改軸脊的位置等,便于用戶靈活地操作坐標軸,使坐標軸能很好地配合圖表。在繪制圖表的過程中,matplotlib會根據(jù)所繪圖表的種類決定是否使用坐標系,或者顯示哪種類型的坐標系,比如餅圖無坐標系、雷達圖使用極坐標系、折線圖使用直角坐標系等。6.1坐標軸概述直角坐標系極坐標系matplotlib中的直角坐標系由兩條水平坐標軸、兩條垂直坐標軸以及圍成的繪圖區(qū)域構(gòu)成,以限制圖形顯示的區(qū)域,其左方和下方的坐標軸(叫做y軸和x軸)經(jīng)常被使用。坐標軸主要包括軸脊、刻度兩大部分,其中刻度又可以細分為刻度線和刻度標簽,刻度線又可以細分為主刻度線和次刻度線。6.1坐標軸概述坐標軸及其組成部分對應(yīng)著matplotlib中一些類的對象:坐標軸是axis.Axis類的對象,x軸是axis.Xaxis類的對象,y軸是axis.Yaxis類的對象;軸脊是spines.Spine類的對象;刻度是axis.Ticker類的對象。6.1坐標軸概述Xaxis類的對象Yaxis類的對象Spine類的對象Ticker類的對象6.1坐標軸概述xaxis:獲取x軸。yaxis:獲取y軸。spines:獲取包含全部軸脊的字典。前面剛剛介紹的一些類的對象均屬于Axes類的對象,可通過Axes類提供的一些屬性進行獲取。6.1坐標軸概述使用Axes類的對象訪問spines屬性后,會返回一個OrderedDict類的對象。OrderedDict類是dict的子類,它可以維護添加到字典中鍵值對的順序。示例print(ax.spines)
OrderedDict([('left',<matplotlib.spines.Spineobjectat0x0000000007F0F860>),('right',<matplotlib.spines.Spineobjectat0x0000000007F0FCF8>),('bottom',<matplotlib.spines.Spineobjectat0x0000000007F0F6D8>),('top',<matplotlib.spines.Spineobjectat0x0000000007EFB6D8>)])從輸出結(jié)果可以看出,字典中有4個包含Spine類對象的元組,它以元組的第一個元素為鍵,使用'left'、'right'、'bottom'、'top'分別可獲取位于坐標軸左方、右方、下方和上方的Spine類對象。
目錄頁6.5移動軸脊6.1坐標軸概述6.2向任意位置添加坐標軸6.3定制刻度6.4隱藏軸脊6.6本章小結(jié)matplotlib支持向畫布的任意位置添加自定義大小的坐標系統(tǒng),同時顯示坐標軸,而不再受規(guī)劃區(qū)域的限制。通過pyplot模塊的axes()函數(shù)創(chuàng)建一個Axes類的對象,并將Axes類的對象添加到當前畫布中。6.2向任意位置添加坐標軸axes(arg=None,projection=None,polar=False,aspect,frame_on,**kwargs)語法arg:支持None、4-tuple中任一取值,其中None表示使用subplot(111)添加的與畫布同等大小的Axes
對象,4-tuple表示由4個浮點型元素(取值范圍為0~1)組成的元組
(left,
bottom,
width,
height)。projection:表示坐標軸的類型,可以是None、'aitoff'、'hammer'、'lambert'、'mollweide'、'polar'或'rectilinear'中的任一取值,也可以是自定義的類型。polar:表示是否使用極坐標,若設(shè)為True,則其作用等價于projection='polar'。6.2向任意位置添加坐標軸還可以使用Figure類對象的add_axes()方法向當前畫布的任意位置上添加Axes類對象。目錄頁6.5移動軸脊6.1坐標軸概述6.2向任意位置添加坐標軸6.3定制刻度6.4隱藏軸脊6.6本章小結(jié)matplotlib.ticker模塊中提供了兩個類:Locator和Formatter,分別代表刻度定位器和刻度格式器,用于指定刻度線的位置和刻度標簽的格式。6.3.1定制刻度的位置和格式6.3.1定制刻度的位置和格式Locator是刻度定位器的基類,它派生了很多子類,通過這些子類構(gòu)建的刻度定位器可以調(diào)整刻度的間隔、選擇刻度的位置??潭榷ㄎ黄?.3.1定制刻度的位置和格式matplotlib.dates模塊中還提供了很多與日期時間相關(guān)的定位器,關(guān)于這些定位器的說明如下表所示。刻度定位器6.3.1定制刻度的位置和格式刻度定位器matplotlib也支持自定義刻度定位器,我們只需要定義一個Locator
的子類,并在該子類中重寫___call__()方法即可。6.3.1定制刻度的位置和格式使用matplotlib的set_major_locator()或set_minor_locator()方法設(shè)置坐標軸的主刻度或次刻度的定位器??潭榷ㄎ黄魇纠?
創(chuàng)建一個HourLocator定位器,間隔為2小時hour_loc=HourLocator(interval=2)#將hour_loc設(shè)為x軸的主刻度定位器ax.xaxis.set_major_locator(hour_loc)6.3.1定制刻度的位置和格式Formatter是刻度格式器的基類,它派生了很多子類,通過這些子類構(gòu)建的刻度格式器可以調(diào)整刻度標簽的格式。Formatter的常見子類如右表所示??潭雀袷狡?.3.1定制刻度的位置和格式matplotlib.dates模塊中還提供了很多與日期時間相關(guān)的格式器,關(guān)于這些格式器的說明如下表所示??潭雀袷狡?.3.1定制刻度的位置和格式刻度格式器matplotlib也支持自定義刻度格式器,只需要定義一個Formatter的子類,并在該子類中重寫___call__()方法即可。6.3.1定制刻度的位置和格式使用matplotlib的set_major_formatter()或set_minor_formatter()方法可以設(shè)置坐標軸的主刻度或次刻度的格式器。示例#
創(chuàng)建一個DateFormatter格式器,格式為x/x/xdate_fmt=DateFormatter('%Y/%m/%d')#將date_fmt設(shè)為x軸的主刻度格式器ax.xaxis.set_major_formatter(date_fmt)刻度格式器在matplotlib中,坐標軸的刻度有著固定的樣式,例如,刻度線的方向是朝外的,刻度線的顏色是黑色的等。使用tick_params()函數(shù)可以定制刻度的樣式。6.3.2定制刻度的樣式tick_params(axis='both',
**kwargs)語法axis:表示選擇操作的軸,可以取值為'x'、'y'或'both',默認為'both'。which:表示刻度的類型,可以取值為'major'、'minor'或'both',默認為'major'。direction:表示刻度線的方向,可以取值為'in'、'out'或'inout'。length:表示刻度線的長度。width:表示刻度線的寬度。color:表示刻度線的顏色。6.3.2定制刻度的樣式pad:表示刻度線與刻度標簽的距離。labelsize:表示刻度標簽的字體大小。labelcolor:表示刻度標簽的顏色。bottom,top,left,right:表示是否顯示下方、上方、左方、右方的刻度線。labelrotation:表示刻度標簽旋轉(zhuǎn)的角度。在matplotlib中,坐標軸的刻度有著固定的樣式,例如,刻度線的方向是朝外的,刻度線的顏色是黑色的等。使用tick_params()函數(shù)可以定制刻度的樣式。tick_params(axis='both',
**kwargs)語法6.3.3實例1:深圳市24小時的平均風(fēng)速本實例要求根據(jù)下表的數(shù)據(jù),將時間列的數(shù)據(jù)作為x軸的刻度標簽,將風(fēng)速列的數(shù)據(jù)作為y軸的數(shù)據(jù),使用plot()方法繪制反映深圳市24小時平均風(fēng)速的折線圖
。6.3.3實例1:深圳市24小時的平均風(fēng)速由圖可知,中午12點的風(fēng)速最強,約為22km/h;0點的風(fēng)速最弱,約為8km/h
。X軸刻度標簽為固定格式的時間刻度線方向朝內(nèi),長度為6,寬度為2,標簽大小為12目錄頁6.5移動軸脊6.1坐標軸概述6.2向任意位置添加坐標軸6.3定制刻度6.4隱藏軸脊6.6本章小結(jié)6.4.1隱藏全部軸脊坐標軸一般將軸脊作為刻度的載體,在軸脊上顯示刻度標簽和刻度線。matplotlib中的坐標系默認有4個軸脊,分別是上軸脊、下軸脊、左軸脊和右軸脊,其中上軸脊和右軸脊并不經(jīng)常使用,大多數(shù)情況下可以將上軸脊和右軸脊隱藏。6.4.1隱藏全部軸脊使用pyplot的axis()函數(shù)可以設(shè)置或獲取一些坐標軸的屬性,包括顯示或隱藏坐標軸的軸脊。axis(option,*args,
**kwargs)語法以上函數(shù)的參數(shù)option可以接收布爾值或字符串,其中布爾值True或False表示顯示或隱藏軸脊及刻度;字符串通常是以下任一取值:‘on’:顯示軸脊和刻度,效果等同于True。‘off’:隱藏軸脊和刻度,效果等同于False。'equal':通過更改軸限設(shè)置等比例。'scaled':通過更改繪圖框的尺寸設(shè)置等比例。'tight':設(shè)置足夠大的限制以顯示所有的數(shù)據(jù)。'auto':自動縮放。Axes類的對象也可以使用axis()方法隱藏坐標軸的軸脊。matplotlib.patches是專門用于繪制路徑和形狀的模塊,該模塊中提供了一些表示形狀(諸如箭頭、圓形、長方形等)的類,通過創(chuàng)建這些類的對象可以快速繪制常見的形狀。常見形狀對應(yīng)的類及說明如下表所示。多學(xué)一招:patches模塊多學(xué)一招:patches模塊以創(chuàng)建正多邊形為例,RegularPolygon類構(gòu)造方法的語法格式如下所示:RegularPolygon(xy,
numVertices,
radius=5,
orientation=0,
**kwargs)語法xy:表示中心點的元組(x,y)
。numVertices:表示多邊形頂點的數(shù)量。radius:表示從中心點到每個頂點的距離。orientation:表示多邊形旋轉(zhuǎn)的角度(以弧度為單位)。多學(xué)一招:patches模塊示例polygon=mpathes.RegularPolygon((0.5,0.5),numVertices=5,radius=0.3,color='y')示例ax=plt.axes([0.3,0.3,0.5,0.5])ax.add_patch(polygon)matplotlib可以只隱藏坐標軸的部分軸脊,只需要訪問spines屬性先獲取相應(yīng)的軸脊,再調(diào)用set_color()方法將軸脊的顏色設(shè)為none即可。6.4.2隱藏部分軸脊示例#依次隱藏上軸脊、左軸脊和右軸脊ax.spines['top'].set_color('none')ax.spines['left'].set_color('none')ax.spines['right'].set_color('none')matplotlib可以通過set_ticks_position()方法設(shè)置刻度線的顏色為’none’,通過set_yticklabels()方法設(shè)置刻度標簽為空列表。6.4.2隱藏部分軸脊示例ax.yaxis.set_ticks_position('none')ax.set_yticklabels([])在6.3.3節(jié)的實例中,折線圖顯示了全部的軸脊,但其內(nèi)部的右軸脊和上軸脊并未起到任何作用,因此本實例要求隱藏折線圖的右軸脊和上軸脊。6.4.3實例2:深圳市24小時的平均風(fēng)速目錄頁6.5移動軸脊6.1坐標軸概述6.2向任意位置添加坐標軸6.3定制刻度6.4隱藏軸脊6.6本章小結(jié)6.5.1移動軸脊的位置matplotlib的Spine類中提供了一個可以設(shè)置軸脊位置的set_position()方法,通過這個方法可以將軸脊放置到指定的位置,以滿足一些特定場景的需求。set_position(self,
position)語法以上方法的position參數(shù)表示軸脊的位置,該參數(shù)可以接收包含兩元素的元組(position_type,amount),其中元素position_type代表位置類型,元素amount代表位置。position參數(shù)還可以接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度駕駛員勞動合同解除條件與雇傭合同范本3篇
- 二零二五年度車輛買賣居間與車輛保險代理合同2篇
- 襄陽科技職業(yè)學(xué)院《產(chǎn)品質(zhì)量先期策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度大型活動組織與管理服務(wù)合同3篇
- 二零二五年酒店入股與民宿產(chǎn)業(yè)合作協(xié)議3篇
- 二零二五年度高端醫(yī)療設(shè)備采購與銷售合作協(xié)議2篇
- 2024版有關(guān)物業(yè)管理合同范文
- 二零二五年電子商務(wù)平臺建設(shè)外包合同3篇
- 銅仁學(xué)院《銷售管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024瑜伽館投資入股與瑜伽用品供應(yīng)合同3篇
- 廣東省惠州市2024-2025學(xué)年高一上學(xué)期期末考試英語試題(含答案)
- 醫(yī)院骨科2025年帶教計劃(2篇)
- 環(huán)境保護應(yīng)急管理制度執(zhí)行細則
- 2024-2030年中國通航飛行服務(wù)站(FSS)行業(yè)發(fā)展模式規(guī)劃分析報告
- 機械制造企業(yè)風(fēng)險分級管控手冊
- 地系梁工程施工方案
- 藏文基礎(chǔ)-教你輕輕松松學(xué)藏語(西藏大學(xué))知到智慧樹章節(jié)答案
- 2024電子商務(wù)平臺用戶隱私保護協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語 含答案
- 醫(yī)學(xué)教程 常見體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
評論
0/150
提交評論