Python數(shù)據(jù)可視化PPT全套完整教學(xué)課件_第1頁
Python數(shù)據(jù)可視化PPT全套完整教學(xué)課件_第2頁
Python數(shù)據(jù)可視化PPT全套完整教學(xué)課件_第3頁
Python數(shù)據(jù)可視化PPT全套完整教學(xué)課件_第4頁
Python數(shù)據(jù)可視化PPT全套完整教學(xué)課件_第5頁
已閱讀5頁,還剩558頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第1章

數(shù)據(jù)可視化與matplotlib

·

數(shù)據(jù)可視化概述·常見的數(shù)據(jù)可視化庫·初識matplotlib

·使用matplotlib繪制第一個(gè)圖表第1章數(shù)據(jù)可視化與matplotlib

第2章使用matplotlib繪制簡單圖表

第3章圖表輔助元素的定制

第4章圖表樣式美化

第5章子圖的繪制及坐標(biāo)軸共享第6章坐標(biāo)軸的定制第7章繪制3D圖表和統(tǒng)計(jì)圖第8章使用matplotlib繪制高級圖表第9章可視化后起之秀——pyecharts了解掌握熟悉掌握學(xué)習(xí)目標(biāo)了解什么是數(shù)據(jù)可視化,常見數(shù)據(jù)可視化庫,matplotlib

12熟悉數(shù)據(jù)可視化方式,選擇正確的可視化圖表掌握安裝matplotlib

34掌握使用matplotlib

繪制第一個(gè)圖表目錄頁1.1數(shù)據(jù)可視化概述1.2常見的數(shù)據(jù)可視化庫1.3初識matplotlib1.4使用matplotlib繪制圖表目錄頁1.1數(shù)據(jù)可視化概述1.2常見的數(shù)據(jù)可視化庫1.3初識matplotlib1.4使用matplotlib繪制圖表1.1.1什么是數(shù)據(jù)可視化數(shù)據(jù)可視化有著非常久遠(yuǎn)的歷史,最早可以追溯至10世紀(jì),至今已經(jīng)應(yīng)用和發(fā)展了數(shù)百年。10世紀(jì)18世紀(jì)20-21世紀(jì)19世紀(jì)14-17世紀(jì)什么是數(shù)據(jù)可視化?數(shù)據(jù)可視化旨在借助圖形化的手段,將一組數(shù)據(jù)以圖形的形式表示,并利用數(shù)據(jù)分析和開發(fā)工具發(fā)現(xiàn)其中未知信息的處理過程。1.1.1什么是數(shù)據(jù)可視化可視化其實(shí)是一個(gè)抽象的過程,它可以簡單地理解為將一個(gè)不易描述的事物形成一個(gè)可感知畫面的過程,也就是從數(shù)據(jù)空間到圖形空間的映射。

1.1.1什么是數(shù)據(jù)可視化數(shù)據(jù)可視化的過程無論原始數(shù)據(jù)被映射為哪種圖形數(shù)據(jù),最終要達(dá)到的目的只有一個(gè),便是準(zhǔn)確地、高效地、全面地傳遞信息,進(jìn)而建立起數(shù)據(jù)間的關(guān)系,使人們發(fā)現(xiàn)數(shù)據(jù)間的規(guī)律和特征,并挖掘出有價(jià)值的信息,提高數(shù)據(jù)溝通的效率。1.1.1什么是數(shù)據(jù)可視化假設(shè)某公司員工在整理全年KPI報(bào)告時(shí)準(zhǔn)備了表格和圖形這兩種形式的數(shù)據(jù)。

表格可以幫助公司領(lǐng)導(dǎo)快速地知道各季度的具體數(shù)值,但無法快速地了解各季度之間的比較情況。圖形可以幫助公司高層準(zhǔn)確地了解各季度之間的比較情況,方便對公司下一年的工作做出有效地決策。1.1.1什么是數(shù)據(jù)可視化1.1.1什么是數(shù)據(jù)可視化總綜上所述,數(shù)據(jù)可視化是數(shù)據(jù)分析工作中重要的一環(huán),對數(shù)據(jù)潛在價(jià)值的挖掘有著深遠(yuǎn)的影響。隨著數(shù)據(jù)可視化平臺的拓展、表現(xiàn)形式的變化,以及實(shí)時(shí)動態(tài)效果、用戶交互使用等功能的增加,數(shù)據(jù)可視化的內(nèi)涵正在不斷擴(kuò)大,相信數(shù)據(jù)可視化的應(yīng)用領(lǐng)域會越來越廣泛。結(jié)折線圖是將數(shù)據(jù)標(biāo)注成點(diǎn),并通過直線將這些點(diǎn)按某種順序連接而成的圖表,它以折線的傾斜程度來形象地反映事物沿某一維度的變化趨勢,能夠清晰地展示數(shù)據(jù)增減的趨勢、速率、規(guī)律及峰值等特征。折線圖1.1.2常見的數(shù)據(jù)可視化方式??谑?月23—29日的最高氣溫和最低氣溫的變化情況

柱形圖是由一系列寬度相等的縱向矩形條組成的圖表,它使用矩形條的高度表示數(shù)值,以此反映不同分類數(shù)據(jù)之間的差異。1.1.2常見的數(shù)據(jù)可視化方式柱形圖以此反映不同分類數(shù)據(jù)之間的差異。

2015—2018年阿里巴巴公司的營業(yè)收入情況條形圖是橫置的柱形圖,由一系列高度相等、長短不一的橫向矩形條組成。1.1.2常見的數(shù)據(jù)可視化方式條形圖2019年上半年快手用戶對各類商品廣告的關(guān)注率堆積圖可分為堆積面積圖、堆積柱形圖和堆積條形圖。其中堆積面積圖是由若干條折線與折線或水平坐標(biāo)軸之間的填充區(qū)域組成的圖表,用于強(qiáng)調(diào)每個(gè)部分變化的趨勢;堆積柱形圖和堆積條形圖是由若干個(gè)以顏色或線條填充、高度不一的縱向矩形條或橫向矩形條堆疊而成的圖表,主要用于反映各構(gòu)成部分在總體中的比重。1.1.2常見的數(shù)據(jù)可視化方式堆積圖2017年全球及各地區(qū)一次性能源的消費(fèi)結(jié)構(gòu)某物流公司2014年各運(yùn)輸方式的運(yùn)費(fèi)情況運(yùn)費(fèi)(萬元)直方圖又稱質(zhì)量分布圖,是由一系列高低不等的縱向矩形條或線段組成的圖表,用于反映數(shù)據(jù)的分布和波動情況。1.1.2常見的數(shù)據(jù)可視化方式直方圖某廠商對100個(gè)抽樣產(chǎn)品的質(zhì)量級別評定情況柱形圖與直方圖的區(qū)別包括以下兩點(diǎn):柱形圖用于展示離散型數(shù)據(jù)的分布,而直方圖用于展示連續(xù)型數(shù)據(jù)的分布;柱形圖的各矩形條之間具有固定的間隙,而直方圖的各矩形條之間沒有任何間隙。1.1.2常見的數(shù)據(jù)可視化方式箱形圖又稱盒須圖、箱線圖,是一種利用數(shù)據(jù)中的5個(gè)統(tǒng)計(jì)量——最小值、下四分位數(shù)、中位數(shù)、上四分位數(shù)和最大值-——描述數(shù)據(jù)的圖表,主要用于反映一組或多組數(shù)據(jù)的對稱性、分布程度等信息,因形狀如箱子而得名。1.1.2常見的數(shù)據(jù)可視化方式箱形圖不同廠家所產(chǎn)地毯的耐用性箱形圖中每個(gè)圖形的結(jié)構(gòu)是相同的,包括一個(gè)矩形箱體、上下兩條豎線、上下兩條橫線。箱體代表數(shù)據(jù)的集中范圍;上下兩條豎線分別代表數(shù)據(jù)向上和向下的延伸范圍;上下兩條橫線分別代表最大值和最小值;圓圈代表異常值(也稱為離群值)。1.1.2常見的數(shù)據(jù)可視化方式餅圖是由若干個(gè)面積大小不一、顏色不同的扇形組成的圓形圖表,它使用圓表示數(shù)據(jù)的總量,組成圓的每個(gè)扇形表示數(shù)據(jù)中各項(xiàng)占總量的比例大小,主要用于顯示數(shù)據(jù)中各項(xiàng)大小與各項(xiàng)總和的比例。1.1.2常見的數(shù)據(jù)可視化方式餅圖2018年全國居民的人均消費(fèi)支出情況圓環(huán)圖也能反映各項(xiàng)與整體之間的關(guān)系,但它使用圓環(huán)表示整體,組成圓環(huán)的每個(gè)楔形表示各項(xiàng)占整體的比例大小,外形像空心的圓餅。1.1.2常見的數(shù)據(jù)可視化方式散點(diǎn)圖又稱X-Y圖,是由若干個(gè)數(shù)據(jù)點(diǎn)組成的圖表,主要用于判斷兩變量之間是否存在某種關(guān)聯(lián),或者總結(jié)數(shù)據(jù)點(diǎn)的分布模式。1.1.2常見的數(shù)據(jù)可視化方式散點(diǎn)圖股票回報(bào)率與基金回報(bào)率的投資分析情況散點(diǎn)圖中數(shù)據(jù)點(diǎn)的分布情況可以體現(xiàn)變量之間的相關(guān)性。

若所有的數(shù)據(jù)點(diǎn)在一條直線附近呈波動趨勢,說明變量之間是線性相關(guān)的。若數(shù)據(jù)點(diǎn)在曲線附近呈波動趨勢,說明變量之間是非線性相關(guān)的。若數(shù)據(jù)點(diǎn)沒有顯示任何關(guān)系,說明變量之間是不相關(guān)的。

1.1.2常見的數(shù)據(jù)可視化方式氣泡圖是散點(diǎn)圖的變形,它是一種能夠展示多變量關(guān)系的圖表。氣泡圖一般使用兩個(gè)變量標(biāo)注氣泡在坐標(biāo)系中的位置,使用第3個(gè)變量標(biāo)注氣泡的面積,適用于分類數(shù)據(jù)對比、多變量相關(guān)性等情況。1.1.2常見的數(shù)據(jù)可視化方式氣泡圖第1梯隊(duì)和第2梯隊(duì)主流App用戶量與上線時(shí)間的分布情況誤差棒圖是使用誤差棒注明被測量數(shù)據(jù)的不確定度大小的圖表,用于表示測量數(shù)據(jù)中客觀存在的測量偏差。誤差棒是在表示測量值大小的方向上的一條線段,它以被測量數(shù)據(jù)的平均值為中點(diǎn),線段長度的一半為不確定度。1.1.2常見的數(shù)據(jù)可視化方式誤差棒圖某城市上半年的降雨量雷達(dá)圖又稱蜘蛛網(wǎng)圖、星狀圖、極區(qū)圖,由一組坐標(biāo)軸和多個(gè)等距同心圓或多邊形組成,是一種表現(xiàn)多維(4維以上)數(shù)據(jù)的圖表。1.1.2常見的數(shù)據(jù)可視化方式雷達(dá)圖某人通過霍蘭德職業(yè)興趣測試的結(jié)果統(tǒng)計(jì)地圖是一種以地圖為背景,使用各種線紋、色彩、幾何圖形或?qū)嵨镄蜗髽?biāo)注指標(biāo)數(shù)值的大小及其在不同地理位置的分布狀況的圖表。1.1.2常見的數(shù)據(jù)可視化方式統(tǒng)計(jì)地圖2021年2月1日中國新型冠狀病毒肺炎疫情地圖3D圖表是一類在三維坐標(biāo)系中呈現(xiàn)數(shù)據(jù)的圖表,常用的圖表包括3D散點(diǎn)圖、3D折線圖、3D曲面圖、3D直方圖、3D柱形圖等。1.1.2常見的數(shù)據(jù)可視化方式3D圖表豆粕期權(quán)隱含波動率數(shù)據(jù)通常包含4種關(guān)系:比較、分布、構(gòu)成和聯(lián)系。

比較比較關(guān)系主要關(guān)注數(shù)據(jù)中各類別或時(shí)間變化的情況。

分布分布關(guān)系主要關(guān)注不同數(shù)值范圍內(nèi)包含多少數(shù)據(jù)的情況。

構(gòu)成構(gòu)成關(guān)系主要關(guān)注各部分與整體占比的情況。聯(lián)系聯(lián)系關(guān)系主要關(guān)注兩個(gè)及兩個(gè)以上的變量之間關(guān)系的情況。1.1.3選擇正確的可視化圖表基于比較關(guān)系可選擇的圖表1.1.3選擇正確的可視化圖表非循環(huán)數(shù)據(jù)基于分布關(guān)系可選擇的圖表1.1.3選擇正確的可視化圖表基于構(gòu)成關(guān)系可選擇的圖表1.1.3選擇正確的可視化圖表基于聯(lián)系關(guān)系可選擇的圖表1.1.3選擇正確的可視化圖表目錄頁1.1數(shù)據(jù)可視化概述1.2常見的數(shù)據(jù)可視化庫1.3初識matplotlib1.4使用matplotlib繪制圖表Python作為數(shù)據(jù)分析的首選語言,它針對數(shù)據(jù)分析的每個(gè)環(huán)節(jié)都提供了很多庫。常見的數(shù)據(jù)可視化庫包括matplotlib、seaborn、ggplot、bokeh、pygal、pyecharts。1.2常見的數(shù)據(jù)可視化庫1.2常見的數(shù)據(jù)可視化庫matplotlib是眾多Python數(shù)據(jù)可視化庫的鼻祖,其設(shè)計(jì)風(fēng)格與20世紀(jì)80年代設(shè)計(jì)的商業(yè)化程序語言MATLAB十分接近,具有很多強(qiáng)大且復(fù)雜的可視化功能。matplotlib包含多種類型的API,可以采用多種方式繪制圖表并對圖表進(jìn)行定制。1.2常見的數(shù)據(jù)可視化庫seaborn是基于matplotlib進(jìn)行高級封裝的可視化庫,它支持交互式界面,使得繪制圖表的功能變得愈加容易,且圖表的色彩更具吸引力,可以畫出豐富多樣的統(tǒng)計(jì)圖表。ggplot是基于matplotlib并旨在以簡單方式提高matplotlib可視化感染力的庫,它采用疊加圖層的形式繪制圖形,例如先繪制坐標(biāo)軸所在的圖層,再繪制點(diǎn)所在的圖層,最后繪制線所在的圖層,但其并不適用于個(gè)性化定制圖形。1.2常見的數(shù)據(jù)可視化庫bokeh是一個(gè)交互式的可視化庫,它支持使用Web瀏覽器展示,可使用快速簡單的方式將大型數(shù)據(jù)集轉(zhuǎn)換成高性能的、可交互的、結(jié)構(gòu)簡單的圖表。pygal是一個(gè)可縮放矢量圖表庫,用于生成可在瀏覽器中打開的SVG格式的圖表,這種圖表可以在不同比例的屏幕上自動縮放,方便用戶交互。pyecharts是一個(gè)生成EchartsEnterpriseCharts,商業(yè)產(chǎn)品圖表)圖表的庫,它生成的Echarts圖表憑借良好的交互性、精巧的設(shè)計(jì)得到了眾多開發(fā)者的認(rèn)可。目錄頁1.1數(shù)據(jù)可視化概述1.2常見的數(shù)據(jù)可視化庫1.3初識matplotlib1.4使用matplotlib繪制圖表matplotlib支持numpy、pandas的數(shù)據(jù)結(jié)構(gòu),具有繪制豐富的圖表、定制圖表元素或樣式的功能。matplotlib還可用于繪制一些3D圖表

。matplotlib是一個(gè)由JohnD.Hunter等人員開發(fā)的、主要用于繪制2D圖表的Python庫。1.3.1matplotlib概述matplotlib官網(wǎng)提供了三種API:pyplotAPI、object-orientedAPI、pylabAPI

。pyplotAPIpyplotAPI是使用pyplot模塊開發(fā)的接口,該接口封裝了一系列與MATLAB命令同名的函數(shù),使用這些函數(shù)可以像使用MATLAB命令一樣快速地繪制圖表。

object-orientedAPIobject-orientedAPI是面向?qū)ο蟮慕涌冢摻涌诜庋b了一系列對應(yīng)圖表元素的類,只有創(chuàng)建這些類的對象并按照隸屬關(guān)系組合到一起才能完成一次完整的繪圖。pylabAPIpylabAPI是使用pylab模塊開發(fā)的接口,它最初是為了模仿MATLAB的工作方式而設(shè)計(jì)的,包括pyplot、numpy模塊及一些其它附加功能,適用于Python交互環(huán)境中。1.3.1matplotlib概述1.3.1matplotlib概述matplotlib官方不建議使用pylabAPI進(jìn)行開發(fā),并在最新的版本中棄用了pylabAPI。用戶在使用時(shí)可以根據(jù)自身的實(shí)際情況進(jìn)行選擇,若只是需要快速地繪制圖表,可以選擇pyplotAPI進(jìn)行開發(fā);若需要自定義圖表,可以選擇object-orientedAPI進(jìn)行開發(fā)。安裝matplotlib的方式有多種,既可以直接使用pip命令安裝,也可以使用Anaconda工具進(jìn)行安裝。1.3.2安裝matplotlibAnaconda是一個(gè)開源的Python發(fā)行版本,包括conda、Python環(huán)境,以及諸如numpy、pandas、matplotlib、scipy等180多個(gè)科學(xué)計(jì)算包,既可以在同一臺計(jì)算機(jī)上安裝不同版本的軟件包和依賴項(xiàng),也能在不同環(huán)境之間進(jìn)行切換,非常適合初學(xué)者使用。安裝Anaconda工具

(1)從Anaconda官網(wǎng)下載的安裝文件,雙擊啟動安裝程序,進(jìn)入歡迎使用Anaconda3的界面,如右圖所示。

1.3.2安裝matplotlib安裝Anaconda工具

(2)單擊【Next】按鈕進(jìn)入要求用戶接受許可協(xié)議的界面,如右圖所示。

1.3.2安裝matplotlib安裝Anaconda工具

(3)單擊【IAgree】按鈕進(jìn)入用戶選擇安裝類型的界面,如右圖所示

。這里選擇采用“JustMe”方式進(jìn)行安裝。1.3.2安裝matplotlib安裝Anaconda工具

(4)單擊【Next】按鈕進(jìn)入用戶選擇Anaconda安裝位置的界面,默認(rèn)安裝路徑為“C:\Users\admin\Anaconda3”,如右圖所示

。

1.3.2安裝matplotlib安裝Anaconda工具

(5)保持默認(rèn)配置。單擊【Next】按鈕進(jìn)入設(shè)置高級安裝選項(xiàng)的界面,如右圖所示

。

第1個(gè)選項(xiàng)為將Anaconda添加到計(jì)算機(jī)的環(huán)境變量中,第2個(gè)選項(xiàng)為是否允許Anaconda使用Python3.7,這里保持默認(rèn)配置。1.3.2安裝matplotlib安裝Anaconda工具

(6)單擊【Install】按鈕進(jìn)入開始安裝的界面,待安裝完成后直接進(jìn)入安裝完成的界面,如右圖所示

。

1.3.2安裝matplotlib安裝Anaconda工具

(7)單擊【Next】按鈕,進(jìn)入介紹Anaconda3信息的界面,再次單擊【Next】按鈕進(jìn)入謝謝安裝Anaconda3的界面,如右圖所示

1.3.2安裝matplotlib此時(shí),Anaconda工具已經(jīng)自動安裝了matplotlib庫。安裝Anaconda工具

(8)單擊【Finish】按鈕,之后在默認(rèn)的瀏覽器中打開了登錄或注冊“AnacondaCloud”的界面,大家直接關(guān)閉即可。1.3.2安裝matplotlib驗(yàn)證matplotlib是否安裝成功

(1)單擊計(jì)算機(jī)的【開始】→【所有程序】→【Anaconda3(64-bit)】,可以看到“Anaconda3(64-bit)”目錄中包含多個(gè)組件。

1.3.2安裝matplotlib驗(yàn)證matplotlib是否安裝成功

Navigator

Anaconda發(fā)行版中包含的圖形用戶界面,允許用戶在不使用命令的情況下啟動程序并輕松管理包。JupyterNotebook

基于Web網(wǎng)頁的交互計(jì)算的應(yīng)用程序,支持實(shí)時(shí)代碼、數(shù)學(xué)方程和可視化。Prompt

Anaconda發(fā)行版中自帶的命令行工具,允許用戶使用conda命令管理包。1.3.2安裝matplotlib驗(yàn)證matplotlib是否安裝成功

(2)單擊“JupyterNotebook(Anaconda3)”啟動程序,并在默認(rèn)的瀏覽器中打開JupyterNotebook工具,再次單擊“AnacondaProjects”進(jìn)入存放程序文件的目錄,此時(shí)該目錄中還沒有任何程序文件。

1.3.2安裝matplotlib驗(yàn)證matplotlib是否安裝成功

(3)單擊【New】→【Python3】按鈕,即可創(chuàng)建并打開一個(gè)由系統(tǒng)自動命名的“Untitled.ipynb”文件,在“Untitled.ipynb”文件中編寫導(dǎo)入pyplot模塊的語句。

1.3.2安裝matplotlib驗(yàn)證matplotlib是否安裝成功

(4)單擊【運(yùn)行】按鈕,程序未出現(xiàn)任何異常信息,表明matplotlib安裝成功。1.3.2安裝matplotlibJupyterNotebook與其它集成開發(fā)環(huán)境相比,它可以重現(xiàn)整個(gè)數(shù)據(jù)分析的過程,并將代碼、公式、注釋、圖表和結(jié)論整合到一個(gè)文檔中。因此,本書后續(xù)會使用JupyterNotebook工具進(jìn)行開發(fā),也建議初學(xué)者使用這個(gè)工具開發(fā)。1.3.2安裝matplotlib目錄頁1.1數(shù)據(jù)可視化概述1.2常見的數(shù)據(jù)可視化庫1.3初識matplotlib1.4使用matplotlib繪制圖表importnumpyasnpimportmatplotlib.pyplotaspltdata=np.array([1,2,3,4,5])#準(zhǔn)備數(shù)據(jù)fig=plt.figure()#創(chuàng)建畫布ax=fig.add_subplot(111)#添加繪圖區(qū)域ax.plot(data)#繪制圖表plt.show()#展示圖表下面結(jié)合面向?qū)ο蟮姆绞嚼L制一個(gè)簡單的圖表。1.4使用matplotlib繪制第一個(gè)圖表1.4使用matplotlib繪制第一個(gè)圖表運(yùn)行效果importnumpyasnpimportmatplotlib.pyplotaspltdata=np.array([1,2,3,4,5])#準(zhǔn)備數(shù)據(jù)#在當(dāng)前畫布的繪圖區(qū)域中繪制圖表plt.plot(data)plt.show()#展示圖表下面使用pyplot的繪圖函數(shù)快速地繪制同一個(gè)圖表。

1.4使用matplotlib繪制第一個(gè)圖表通過比較兩個(gè)示例可以發(fā)現(xiàn),第二個(gè)示例使用更少的代碼便繪制了同一個(gè)圖表。1.4使用matplotlib繪制第一個(gè)圖表假設(shè)大家想畫一幅素描:第1步:固定一個(gè)畫板第2步:固定一張畫布

第3步:畫布上作畫同理,使用matplotlib庫繪制的圖形并非只有一層結(jié)構(gòu)多學(xué)一招:matplotlib所繪圖形的層次結(jié)構(gòu)使用matplotlib繪制的圖形主要由三層組成:容器層、圖像層和輔助顯示層。

容器層容器層主要由Canvas對象、Figure對象、Axes對象組成。

輔助顯示層輔助顯示層是指繪圖區(qū)域內(nèi)除所繪圖形之外的輔助元素,包括坐標(biāo)軸、標(biāo)題、圖例、注釋文本等。圖像層圖像層是指繪圖區(qū)域內(nèi)繪制的圖形。多學(xué)一招:matplotlib所繪圖形的層次結(jié)構(gòu)關(guān)于Canvas對象、Figure對象、Axes對象的結(jié)構(gòu)如下圖所示。

Axes對象擁有屬于自己的坐標(biāo)系,它可以是直角坐標(biāo)系,即包含x軸和y軸的坐標(biāo)系,也可以是三維坐標(biāo)系(Axes的子類Axes3D對象),即包含x軸、y軸、z軸的坐標(biāo)系。多學(xué)一招:matplotlib所繪圖形的層次結(jié)構(gòu)圖像層和輔助顯示層所包含的內(nèi)容都位于Axes類對象之上,都屬于圖表的元素。多學(xué)一招:matplotlib所繪圖形的層次結(jié)構(gòu)本章主要為大家介紹了數(shù)據(jù)可視化和matplotlib的入門知識,包括數(shù)據(jù)可視化概述、常見的數(shù)據(jù)可視化庫、初識matplotlib庫、使用matplotlib庫繪制第一個(gè)圖表。通過對本章的學(xué)習(xí),希望讀者可以理解可視化的過程和方式,能夠獨(dú)立搭建開發(fā)環(huán)境,并對matplotlib開發(fā)有一個(gè)初步的認(rèn)識,為后續(xù)的學(xué)習(xí)做好鋪墊。本章小結(jié)第2章

使用matplotlib繪制簡單圖表·繪制折線圖·繪制柱形圖或堆積柱形圖·繪制條形圖或堆積條形圖

·繪制直方圖·繪制餅圖或圓環(huán)圖·繪制散點(diǎn)圖或氣泡圖

掌握掌握掌握掌握學(xué)習(xí)目標(biāo)掌握繪制折線圖,繪制柱形圖或堆積柱形圖

12掌握繪制條形圖或堆積條形圖,繪制堆積面積圖、直方圖掌握繪制餅圖或圓環(huán)圖,繪制散點(diǎn)圖或氣泡圖34掌握繪制箱形圖,繪制雷達(dá)圖,繪制誤差棒圖目錄頁2.5繪制直方圖2.1繪制折線圖2.2繪制柱形圖或堆積柱形圖2.3繪制條形圖或堆積條形圖

2.4繪制堆積面積圖2.6繪制餅圖或圓環(huán)圖目錄頁2.7繪制散點(diǎn)圖或氣泡圖2.8繪制箱形圖2.9繪制雷達(dá)圖2.10繪制誤差棒圖目錄頁2.5繪制直方圖2.1繪制折線圖2.2繪制柱形圖或堆積柱形圖2.3繪制條形圖或堆積條形圖

2.4繪制堆積面積圖2.6繪制餅圖或圓環(huán)圖使用pyplot的plot()函數(shù)可以快速地繪制折線圖。

plot(x,y,fmt,scalex=True,scaley=True,data=None,label=None,*args,**kwargs)x:表示x軸的數(shù)據(jù),默認(rèn)值為range(len(y))。y:表示y軸的數(shù)據(jù)。fmt:表示快速設(shè)置線條樣式的格式字符串。label:表示應(yīng)用于圖例的標(biāo)簽文本。plot()函數(shù)會返回一個(gè)包含Line2D類對象(代表線條)的列表。2.1.1使用plot()繪制折線圖語法使用pyplot的plot()函數(shù)還可以繪制具有多個(gè)線條的折線圖,通過以下任意一種方式均可以完成。第1種plt.plot(x1,y1)plt.plot(x2,y2)第2種plt.plot(x1,y1,x2,y2)

第3種arr=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])plt.plot(arr[0],arr[1:])

2.1.1使用plot()繪制折線圖人們每天的生活離不開天氣預(yù)報(bào),無論是居家還是外出,人們都時(shí)刻關(guān)注著天氣的變化,以便隨時(shí)備好傘具、增減衣服,或者為后期的出行計(jì)劃做好準(zhǔn)備。2.1.2實(shí)例1:未來15天最高氣溫和最低氣溫2.1.2實(shí)例1:未來15天最高氣溫和最低氣溫本實(shí)例要求根據(jù)下表的數(shù)據(jù),將日期列的數(shù)據(jù)作為x軸數(shù)據(jù),將最高氣溫和最低氣溫兩列的數(shù)據(jù)作為y軸數(shù)據(jù),使用plot()函數(shù)繪制下圖所示的折線圖。由圖可知,未來15天的最高氣溫和最低氣溫都呈現(xiàn)逐步下降后反彈的趨勢。2.1.2實(shí)例1:未來15天最高氣溫和最低氣溫溫度日期最高氣溫最低氣溫目錄頁2.5繪制直方圖2.1繪制折線圖2.2繪制柱形圖或堆積柱形圖2.3繪制條形圖或堆積條形圖

2.4繪制堆積面積圖2.6繪制餅圖或圓環(huán)圖2.2.1使用bar()繪制柱形圖或堆積柱形圖bar(x,

height,

width=0.8,

bottom=None,

align=‘center’,

tick_label=None,xerr=None,yerr=None,**kwargs)x:表示柱形的x坐標(biāo)值。height:表示柱形的高度。width:表示柱形的寬度,默認(rèn)為0.8。bottom:表示柱形底部的y值,默認(rèn)為0。tick_label:表示柱形對應(yīng)的刻度標(biāo)簽。xerr,yerr:若未設(shè)為None,則需要為柱形圖添加水平/垂直誤差棒。

語法使用pyplot的bar()函數(shù)可以快速地繪制柱形圖或堆積柱形圖。

bar()函數(shù)會返回一個(gè)BarContainer類的對象。BarContainer類的對象是一個(gè)包含柱形或誤差棒的容器,它亦可以視為一個(gè)元組,可以遍歷獲取每個(gè)柱形或誤差棒。BarContainer類的對象也可以訪問patches或errorbar屬性分別獲取圖表中所有的柱形或誤差棒。2.2.1使用bar()繪制柱形圖或堆積柱形圖x=np.arange(5)y1=np.array([10,8,7,11,13])#柱形的寬度bar_width=0.3#繪制柱形圖plt.bar(x,y1,tick_label=['a','b','c','d','e'],width=bar_width)2.2.1使用bar()繪制柱形圖或堆積柱形圖示例繪制有一組柱形的柱形圖2.2.1使用bar()繪制柱形圖或堆積柱形圖x=np.arange(5)y1=np.array([10,8,7,11,13])y2=np.array([9,6,5,10,12])#柱形的寬度bar_width=0.3#根據(jù)多組數(shù)據(jù)繪制柱形圖plt.bar(x,y1,tick_label=['a','b','c','d','e'],width=bar_width)plt.bar(x+bar_width,y2,width=bar_width)plt.show()示例繪制有兩組柱形的柱形圖在使用bar()函數(shù)繪制圖表時(shí),可以通過給該函數(shù)的bottom參數(shù)傳值的方式控制柱形的y值,使后繪制的柱形位于先繪制的柱形的上方。#繪制堆積柱形圖plt.bar(x,y1,tick_label=['a','b','c','d','e'],width=bar_width)plt.bar(x,y2,bottom=y1,width=bar_width)

2.2.1使用bar()繪制柱形圖或堆積柱形圖繪制堆積柱形圖示例#偏差數(shù)據(jù)error=[2,1,2.5,2,1.5]#繪制帶有誤差棒的柱形圖plt.bar(x,y1,tick_label=['a','b','c','d','e'],width=bar_width)plt.bar(x,y1,bottom=y1,width=bar_width,yerr=error)2.2.1使用bar()繪制柱形圖或堆積柱形圖繪制有誤差棒的柱形圖在使用bar()函數(shù)繪制圖表時(shí),還可以通過給xerr、yerr參數(shù)傳值的方式為柱形添加誤差棒。

示例隨著互聯(lián)網(wǎng)與電子商務(wù)的快速發(fā)展,人們的消費(fèi)模式發(fā)生了翻天覆地的變化,越來越多的消費(fèi)者選擇網(wǎng)絡(luò)購物,省時(shí)省力。阿里巴巴公司作為中國電商的引領(lǐng)者,其旗下的淘寶和天貓是深受消費(fèi)者歡迎的網(wǎng)購平臺。2.2.2實(shí)例2:2013~2019財(cái)年阿里巴巴淘寶和天貓平臺的GMV2.2.2實(shí)例2:2013~2019財(cái)年阿里巴巴淘寶和天貓平臺的GMV本實(shí)例要求根據(jù)下表的數(shù)據(jù),將財(cái)年列的數(shù)據(jù)作為x軸數(shù)據(jù),將GMV列的數(shù)據(jù)作為y軸數(shù)據(jù),使用bar()函數(shù)繪制下圖所示的柱形圖。2013~2019財(cái)年的成交總額逐年增加,至2019年已經(jīng)達(dá)到近60000億元。GMV財(cái)年寬度0.52.2.2實(shí)例2:2013~2019財(cái)年阿里巴巴淘寶和天貓平臺的GMV目錄頁2.5繪制直方圖2.1繪制折線圖2.2繪制柱形圖或堆積柱形圖2.3繪制條形圖或堆積條形圖

2.4繪制堆積面積圖2.6繪制餅圖或圓環(huán)圖2.3.1使用barh()繪制條形圖或堆積條形圖barh(y,

width,

height=0.8,

left=None,align='center',

*,**kwargs)

y:表示條形的y值。width:表示條形的寬度。height:表示條形的高度,默認(rèn)值為0.8。left:條形左側(cè)的x坐標(biāo)值,默認(rèn)值為0。align:表示條形的對齊方式,默認(rèn)值為“center”,即條形與刻度線居中對齊。tick_label:表示條形對應(yīng)的刻度標(biāo)簽。xerr,yerr:若未設(shè)為None,則需要為條形圖添加水平/垂直誤差棒。語法使用pyplot的barh()函數(shù)可以快速地繪制條形圖或堆積條形圖。

barh()函數(shù)會返回一個(gè)BarContainer類的對象。y=np.arange(5)x1=np.array([10,8,7,11,13])#條形的高度bar_height=0.3#繪制條形圖plt.barh(y,x1,tick_label=['a','b','c','d','e'],height=bar_height)

2.3.1使用barh()繪制條形圖或堆積條形圖示例繪制有一組條形的條形圖y=np.arange(5)x1=np.array([10,8,7,11,13])x2=np.array([9,6,5,10,12])bar_height=0.3plt.barh(y,x1,tick_label=['a','b','c','d','e'],height=bar_height)plt.barh(y+bar_height,x2,height=bar_height)2.3.1使用barh()繪制條形圖或堆積條形圖示例繪制有兩組條形的條形圖#繪制堆積條形圖plt.barh(y,x1,tick_label=['a','b','c','d','e'],height=bar_height)plt.barh(y,x2,left=x1,height=bar_height)2.3.1使用barh()繪制條形圖或堆積條形圖繪制堆積條形圖在使用barh()函數(shù)繪制圖表時(shí),可以通過給left參數(shù)傳值的方式控制條形的x值,使后繪制的條形位于先繪制的條形右方。示例#偏差數(shù)據(jù)error=[2,1,2.5,2,1.5]#繪制帶有誤差棒的條形圖plt.barh(y,x1,tick_label=['a','b','c','d','e'],height=bar_height)plt.barh(y,x2,left=x1,height=bar_height,xerr=error)2.3.1使用barh()繪制條形圖或堆積條形圖繪制有誤差棒的條形圖在使用barh()函數(shù)繪制圖表時(shí),可以通過給xerr、yerr參數(shù)傳值的方式為條形添加誤差棒。示例2.3.2實(shí)例3:各商品種類的網(wǎng)購替代率網(wǎng)絡(luò)購物已經(jīng)成為人們?nèi)粘I畹囊徊糠?,它在?chuàng)造新的消費(fèi)方式的同時(shí),也在改變著人們的消費(fèi)模式和習(xí)慣,成為拉動居民消費(fèi)的重要渠道。國家統(tǒng)計(jì)局抽取了771個(gè)樣本,并根據(jù)這些樣本測算用戶網(wǎng)購替代率(網(wǎng)購用戶線上消費(fèi)對線下消費(fèi)的替代比率)的情況。

2.3.2實(shí)例3:各商品種類的網(wǎng)購替代率本實(shí)例要求根據(jù)下表的數(shù)據(jù),將商品種類列的數(shù)據(jù)作為y軸的刻度標(biāo)簽,將替代率列的數(shù)據(jù)作為x軸數(shù)據(jù),使用barh()函數(shù)繪制下圖所示的條形圖。各商品種類的網(wǎng)購替代率(部分)2.3.2實(shí)例3:各商品種類的網(wǎng)購替代率由圖可知,工藝品、收藏品的網(wǎng)購替代率最低,家政、家教、保姆等生活服務(wù)的網(wǎng)購替代率最高。網(wǎng)購替代率高度為0.6目錄頁2.5繪制直方圖2.1繪制折線圖2.2繪制柱形圖或堆積柱形圖2.3繪制條形圖或堆積條形圖

2.4繪制堆積面積圖2.6繪制餅圖或圓環(huán)圖2.4.1使用stackplot()繪制堆積面積圖stackplot(x,

y,labels=(),

baseline='zero',

data=None,

*args,

**kwargs)x:表示x軸的數(shù)據(jù),可以是一維數(shù)組。y:表示y軸的數(shù)據(jù),可以是二維數(shù)組或一維數(shù)組序列。labels:表示每個(gè)填充區(qū)域的標(biāo)簽。baseline:表示計(jì)算基線的方法,包括zero、sym、wiggle和weighted_wiggle。其中zero表示恒定零基線,即簡單的疊加圖;sym表示對稱于零基線;wiggle表示最小化平方斜率之和;weighted_wiggle表示執(zhí)行相同的操作,但權(quán)重用于說明每層的大小。語法使用pyplot的stackplot()函數(shù)可以快速地繪制堆積面積圖。

x=np.arange(6)y1=np.array([1,4,3,5,6,7])y2=np.array([1,3,4,2,7,6])y3=np.array([3,4,3,6,5,5])#繪制堆積面積圖plt.stackplot(x,y1,y2,y3)2.4.1使用stackplot()繪制堆積面積圖示例繪制有三個(gè)填充區(qū)域堆疊的堆積面積圖近些年我國物流行業(yè)蓬勃房展,目前已經(jīng)有近幾千家物流公司,其中部分物流公司大打價(jià)格戰(zhàn),以更低的價(jià)格吸引更多的客戶,從而搶占市場份額。2.4.2實(shí)例4:物流公司物流費(fèi)用統(tǒng)計(jì)2.4.2實(shí)例4:物流公司物流費(fèi)用統(tǒng)計(jì)本實(shí)例要求根據(jù)下表的數(shù)據(jù),將月份列的數(shù)據(jù)作為x軸的刻度標(biāo)簽,將A公司、B公司、C公司這三列數(shù)據(jù)作為y軸的數(shù)據(jù),使用stackplot()函數(shù)繪制下圖所示的堆積面積圖。2.4.2實(shí)例4:物流公司物流費(fèi)用統(tǒng)計(jì)B公司的物流費(fèi)用呈現(xiàn)明顯的增長趨勢,A公司和C公司的物流費(fèi)用呈現(xiàn)平緩的波動趨勢。月份C公司的物流費(fèi)用物流費(fèi)用B公司的物流費(fèi)用A公司的物流費(fèi)用目錄頁2.5繪制直方圖2.1繪制折線圖2.2繪制柱形圖或堆積柱形圖2.3繪制條形圖或堆積條形圖

2.4繪制堆積面積圖2.6繪制餅圖或圓環(huán)圖2.5.1使用hist()繪制直方圖hist(x,

bins=None,

range=None,

density=None,

weights=None,

bottom=None,

**kwargs)x:表示x軸的數(shù)據(jù)。bins:表示矩形條的個(gè)數(shù),默認(rèn)為10。range:表示數(shù)據(jù)的范圍,若未設(shè)置范圍,默認(rèn)數(shù)據(jù)范圍為(x.min(),

x.max())。cumulative:表示是否計(jì)算累計(jì)頻數(shù)或頻率。histtype:表示直方圖的類型,支持'bar'、'barstacked'、'step'、'stepfilled‘四種取值,其中'bar'為默認(rèn)值,代表傳統(tǒng)的直方圖;'barstacked'代表堆積直方圖;'step'代表未填充的線條直方圖;'stepfilled'代表填充的線條直方圖。語法使用pyplot的hist()函數(shù)可以快速地繪制直方圖。

2.5.1使用hist()繪制直方圖hist(x,

bins=None,

range=None,

density=None,

weights=None,

bottom=None,

**kwargs)align:表示矩形條邊界的對齊方式,可設(shè)置為'left'、'mid'或'right',默認(rèn)為'mid'。orientation:表示矩形條的擺放方式,默認(rèn)為'vertical',即垂直方向。rwidth:表示矩形條寬度的百分比,默認(rèn)為0。若histtype的值為'step'或'stepfilled',則直接忽略rwidth參數(shù)的值。stacked:表示是否將多個(gè)矩形條以堆疊形式擺放。語法使用pyplot的hist()函數(shù)可以快速地繪制直方圖。

#準(zhǔn)備50個(gè)隨機(jī)測試數(shù)據(jù)scores=np.random.randint(0,100,50)#繪制直方圖plt.hist(scores,bins=8,histtype='stepfilled’)2.5.1使用hist()繪制直方圖示例繪制填充的線條直方圖人臉識別技術(shù)是一種生物特征識別技術(shù),它通過從裝有攝像頭的終端設(shè)備拍攝的人臉圖像中抽取人的個(gè)性化特征,以此來識別人的身份?;叶戎狈綀D是實(shí)現(xiàn)人臉識別的方法之一,它將數(shù)字圖像的所有像素按照灰度值的大小統(tǒng)計(jì)其出現(xiàn)的頻率。

2.5.2實(shí)例5:人臉識別的灰度直方圖#10000個(gè)隨機(jī)數(shù)random_state=np.random.RandomState(19680801)radom_x=random_state.randn(10000)#繪制包含25個(gè)矩形條的直方圖plt.hist(radom_x,bins=25)2.5.2實(shí)例5:人臉識別的灰度直方圖本實(shí)例要求使用一組10000個(gè)隨機(jī)數(shù)作為人臉圖像的灰度值,使用hist()函數(shù)繪制下圖所示的灰度直方圖。2.5.2實(shí)例5:人臉識別的灰度直方圖由圖可知,位于-0.5~0之間的灰度值最多,位于-4~-3或3~4之間的灰度值最少。灰度值頻率25個(gè)矩形條目錄頁2.5繪制直方圖2.1繪制折線圖2.2繪制柱形圖或堆積柱形圖2.3繪制條形圖或堆積條形圖

2.4繪制堆積面積圖2.6繪制餅圖或圓環(huán)圖2.6.1使用pie()繪制餅圖或圓環(huán)圖pie(x,

explode=None,

labels=None,

autopct=None,

pctdistance=0.6,

startangle=None,*,

data=None)x:表示扇形或楔形的數(shù)據(jù)。explode:表示扇形或楔形離開圓心的距離。labels:表示扇形或楔形對應(yīng)的標(biāo)簽文本。autopct:表示控制扇形或楔形的數(shù)值顯示的字符串,可通過格式字符串指定小數(shù)點(diǎn)后的位數(shù)。pctdistance:表示扇形或楔形對應(yīng)的數(shù)值標(biāo)簽距離圓心的比例,默認(rèn)為0.6。shadow:表示是否顯示陰影。labeldistance:表示標(biāo)簽文本的繪制位置(相對于半徑的比例),默認(rèn)為1.1。語法使用pyplot的pie()函數(shù)可以快速地繪制餅圖或圓環(huán)圖。

2.6.1使用pie()繪制餅圖或圓環(huán)圖pie(x,

explode=None,

labels=None,

autopct=None,

pctdistance=0.6,

startangle=None,*,

data=None)startangle:表示起始繪制角度,默認(rèn)從x軸的正方向逆時(shí)針繪制。radius:表示扇形或楔形圍成的圓形半徑。wedgeprops:表示控制扇形或楔形屬性的字典。例如,通過wedgeprops

=

{'width':

0.7}

將楔形的寬度設(shè)為0.7。textprops:表示控制圖表中文本屬性的字典。center:表示圖表的中心點(diǎn)位置,默認(rèn)為(0,0)。frame:表示是否顯示圖框。語法使用pyplot的pie()函數(shù)可以快速地繪制餅圖或圓環(huán)圖。

data=np.array([20,50,10,15,30,55])pie_labels=np.array(['A','B','C','D','E','F'])#繪制餅圖:半徑為0.5,數(shù)值保留1位小數(shù)plt.pie(data,radius=1.5,labels=pie_labels,autopct='%3.1f%%')2.6.1使用pie()繪制餅圖或圓環(huán)圖示例繪制餅圖data=np.array([20,50,10,15,30,55])pie_labels=np.array(['A','B','C','D','E','F'])#繪制圓環(huán)圖plt.pie(data,radius=1.5,wedgeprops={‘width’:0.7},labels=pie_labels,autopct='%3.1f%%’,

pctdistance=0.75)

2.6.1使用pie()繪制餅圖或圓環(huán)圖示例繪制圓環(huán)圖近年來隨著支付App的出現(xiàn),人們的生活發(fā)生了翻天覆地的變化,無論是到超市選購商品,還是跟朋友聚餐,或是來一場說走就走的旅行,都可以使用移動支付App輕松完成支付,非常便捷。2.6.2實(shí)例6:支付寶月賬單報(bào)告支付寶是人們使用較多的支付方式,它擁有自動記錄每月賬單的功能,可以方便用戶了解每月資金的流動情況。2.6.2實(shí)例6:支付寶月賬單報(bào)告本實(shí)例要求根據(jù)下表的數(shù)據(jù),將分類列的數(shù)據(jù)作為餅圖的標(biāo)簽,將各分類對應(yīng)的金額與總支出金額的比例作為餅圖的數(shù)據(jù),使用pie()函數(shù)繪制下圖所示的餅圖。2.6.2實(shí)例6:支付寶月賬單報(bào)告綠色扇形的面積最大,說明餐飲美食方面的支出在當(dāng)月總支出中占比最大;橙色扇形的面積最小,說明人情往來的支出在當(dāng)月總支出中占比最小。顯示陰影起始角度為90離開圓心距離為0.1目錄頁2.7繪制散點(diǎn)圖或氣泡圖2.8繪制箱形圖2.9繪制雷達(dá)圖2.10繪制誤差棒圖2.7.1使用scatter()繪制散點(diǎn)圖或氣泡圖scatter(x,

y,

s=None,

c=None,

marker=None,

cmap=None,

linewidths=None,

edgecolors=None,

*,

**kwargs)

x,y:表示數(shù)據(jù)點(diǎn)的位置。s:表示數(shù)據(jù)點(diǎn)的大小。c:表示數(shù)據(jù)點(diǎn)的顏色。marker:表示數(shù)據(jù)點(diǎn)的樣式,默認(rèn)為圓形。alpha:表示透明度,可以取值為0~1。linewidths:表示數(shù)據(jù)點(diǎn)的描邊寬度。edgecolors:表示數(shù)據(jù)點(diǎn)的描邊顏色。語法使用pyplot的scatter()函數(shù)可以快速地繪制散點(diǎn)圖或氣泡圖。

num=50x=np.random.rand(num)y=np.random.rand(num)plt.scatter

(x,y)2.7.1使用scatter()繪制散點(diǎn)圖或氣泡圖示例繪制散點(diǎn)圖num=50x=np.random.rand(num)y=np.random.rand(num)area=(30*np.random.rand(num))**2plt.scatter(x,y,s=area)2.7.1使用scatter()繪制散點(diǎn)圖或氣泡圖示例繪制氣泡圖汽車的制動距離主要取決于汽車的車速。若車速增加1倍,則汽車的制動距離將增大至近4倍。2.7.2實(shí)例7:汽車速度與制動距離的關(guān)系某汽車生產(chǎn)公司對一批豐田汽車進(jìn)行抽樣測試,并分別記錄了不同的車速對應(yīng)的制動距離。2.7.2實(shí)例7:汽車速度與制動距離的關(guān)系本實(shí)例要求根據(jù)下表的數(shù)據(jù),將車速(km/h)列的數(shù)據(jù)作為x軸的數(shù)據(jù),將制動距離(m)列的數(shù)據(jù)作為y軸的數(shù)據(jù),使用scatter()函數(shù)繪制下圖所示的散點(diǎn)圖。2.7.2實(shí)例7:汽車速度與制動距離的關(guān)系由圖可知,恒定條件下,制動距離隨著車速的增大而增加。車速制動距離目錄頁2.7繪制散點(diǎn)圖或氣泡圖2.8繪制箱形圖2.9繪制雷達(dá)圖2.10繪制誤差棒圖2.8.1使用boxplot()繪制箱形圖boxplot(x,

notch=None,

sym=None,

vert=None,

whis=None,

positions=None,

widths=None,

*,

data=None)x:繪制箱形圖的數(shù)據(jù)。sym:表示異常值對應(yīng)的符號,默認(rèn)為空心圓圈。vert:表示是否將箱形圖垂直擺放,默認(rèn)為垂直擺放。whis:表示箱形圖上下須與上下四分位的距離,默認(rèn)為1.5倍的四分位差。positions:表示箱體的位置。widths:表示箱體的寬度,默認(rèn)為0.5。patch_artist:表示是否填充箱體的顏色,默認(rèn)不填充。語法使用pyplot的boxplot()函數(shù)可以快速地繪制箱形圖。

2.8.1使用boxplot()繪制箱形圖boxplot(x,

notch=None,

sym=None,

vert=None,

whis=None,

positions=None,

widths=None,

*,

data=None)meanline:是否用橫跨箱體的線條標(biāo)出中位數(shù),默認(rèn)不使用。showcaps:表示是否顯示箱體頂部和底部的橫線,默認(rèn)顯示。showbox:表示是否顯示箱形圖的箱體,默認(rèn)顯示。showfliers:表示是否顯示異常值,默認(rèn)顯示。labels:表示箱形圖的標(biāo)簽。boxprops:表示控制箱體屬性的字典。語法使用pyplot的boxplot()函數(shù)可以快速地繪制箱形圖。

data=np.random.randn(100)plt.boxplot(data,meanline=True,widths=0.3,patch_artist=True,showfliers=False)2.8.1使用boxplot()繪制箱形圖繪制不顯示異常值的箱形圖示例2.8.2實(shí)例8:2017年和2018年全國發(fā)電量統(tǒng)計(jì)本實(shí)例要求根據(jù)下表的數(shù)據(jù),將發(fā)電量(億千瓦時(shí))列的數(shù)據(jù)作為x軸的數(shù)據(jù),將2017年和2018年作為y軸的刻度標(biāo)簽,使用boxplot()函數(shù)繪制下圖所示的箱形圖。2.8.2實(shí)例8:2017年和2018年全國發(fā)電量統(tǒng)計(jì)由圖可知,2017年每月的發(fā)電量大多分布于4800~5300億千瓦時(shí)范圍內(nèi),2018年每月的發(fā)電量大多分布于5250~5700億千瓦時(shí)范圍內(nèi)。發(fā)電量顯示異常值顯示中位數(shù)箱體寬度0.5,填充顏色,橫向擺放目錄頁2.7繪制散點(diǎn)圖或氣泡圖2.8繪制箱形圖2.9繪制雷達(dá)圖2.10繪制誤差棒圖2.9.1使用polar()繪制雷達(dá)圖polar(theta,r,**kwargs)

theta:表示每個(gè)數(shù)據(jù)點(diǎn)所在射線與極徑的夾角。r:表示每個(gè)數(shù)據(jù)點(diǎn)到原點(diǎn)的距離。語法使用pyplot的polar()函數(shù)可以快速地繪制雷達(dá)圖。

霍蘭德職業(yè)興趣測試是由美國職業(yè)指導(dǎo)專家霍蘭德根據(jù)他本人大量的職業(yè)咨詢經(jīng)驗(yàn)及其職業(yè)類型理論編制的測評工具。根據(jù)個(gè)人興趣的不同,霍蘭德將人格分為研究型(I)、藝術(shù)型(A)、社會型(S)、企業(yè)型(E)、傳統(tǒng)型(C)和現(xiàn)實(shí)型(R)6個(gè)維度,將這6個(gè)維度不同程度的組合形成每個(gè)人的性格。2.9.2實(shí)例9:霍蘭德職業(yè)興趣測試2.9.2實(shí)例9:霍蘭德職業(yè)興趣測試本實(shí)例要求根據(jù)下表的數(shù)據(jù),將標(biāo)題一行的數(shù)據(jù)作為雷達(dá)圖的標(biāo)簽,將其余行的數(shù)據(jù)作為雷達(dá)圖的數(shù)據(jù),使用polar()函數(shù)繪制下圖所示的雷達(dá)圖。2.9.2實(shí)例9:霍蘭德職業(yè)興趣測試由圖可知,用戶1偏向于現(xiàn)實(shí)型人格;用戶2偏向于研究型人格;用戶3偏向于藝術(shù)型人格;用戶4偏向于企業(yè)型人格;用戶5偏向于社會型人格;用戶6偏向于傳統(tǒng)型人格。用戶1的測試結(jié)果用戶2的測試結(jié)果用戶3的測試結(jié)果用戶5的測試結(jié)果用戶4的測試結(jié)果用戶6的測試結(jié)果目錄頁2.7繪制散點(diǎn)圖或氣泡圖2.8繪制箱形圖2.9繪制雷達(dá)圖2.10繪制誤差棒圖2.10.1使用errorbar()繪制誤差棒圖

errorbar(x,

y,

yerr=None,

xerr=None,

fmt='',

ecolor=None,

*,

data=None,

**kwargs)

x,y:表示數(shù)據(jù)點(diǎn)的位置。xerr,yerr:表示數(shù)據(jù)的誤差范圍。fmt:表示數(shù)據(jù)點(diǎn)的標(biāo)記樣式和數(shù)據(jù)點(diǎn)之間連接線的樣式。elinewidth:表示誤差棒的線條寬度。capsize:表示誤差棒邊界橫桿的大小。capthick:表示誤差棒邊界橫桿的厚度。語法使用pyplot的errorbar()函數(shù)可以快速地繪制誤差棒圖。

2.10.1使用errorbar()繪制誤差棒圖

x=np.arange(5)y=(25,32,34,20,25)y_offset=(3,5,2,3,3)plt.errorbar(x,y,yerr=y_offset,capsize=3,capthick=2)示例繪制誤差棒圖細(xì)根生物量的多少反映了根系從土壤中吸收水分和養(yǎng)分的能力,是植物地下部分集匯能力的重要體現(xiàn)。不同樹種細(xì)根生物量存在差異性,各樹種細(xì)根生物量在不同季節(jié)間差異較為明顯。馬尾松樟樹杉木桂花2.10.2實(shí)例10:4個(gè)樹種不同季節(jié)的細(xì)根生物量2.10.2實(shí)例10:4個(gè)樹種不同季節(jié)的細(xì)根生物量本實(shí)例要求根據(jù)下表的數(shù)據(jù),將季節(jié)列的數(shù)據(jù)作為x軸的刻度標(biāo)簽,將其他列的數(shù)據(jù)作為y軸的數(shù)據(jù),使用errorbar()函數(shù)繪制下圖所示的誤差棒圖。2.10.2實(shí)例10:4個(gè)樹種不同季節(jié)的細(xì)根生物量馬尾松樟樹杉木桂花由圖可知,杉木的細(xì)根生物量最多,說明杉木吸收水分和養(yǎng)分的能力最強(qiáng);馬尾松的細(xì)根生物量最少,說明馬尾松吸收水分和養(yǎng)分的能力最弱。本章主要介紹了如何使用matplotlib庫的繪圖函數(shù)繪制簡單的圖表,包括折線圖、柱形圖或堆積柱形圖、條形圖或堆積條形圖、堆積面積圖、直方圖、餅圖或圓環(huán)圖、散點(diǎn)圖或氣泡圖、箱形圖、雷達(dá)圖、誤差棒圖。通過學(xué)習(xí)本章的內(nèi)容,希望大家能夠掌握繪圖函數(shù)的用法,可以使用這些函數(shù)繪制簡單的圖表,為后續(xù)的學(xué)習(xí)打好扎實(shí)的基礎(chǔ)。2.11本章小結(jié)第3章

圖表輔助元素的定制·設(shè)置坐標(biāo)軸的標(biāo)簽·設(shè)置刻度范圍和刻度標(biāo)簽

·添加標(biāo)題和圖例

·顯示網(wǎng)格·添加參考線和參考區(qū)域·添加注釋文本、表格了解掌握掌握掌握學(xué)習(xí)目標(biāo)了解圖表常用的輔助元素12掌握設(shè)置坐標(biāo)軸的標(biāo)簽、刻度范圍、刻度標(biāo)簽掌握添加標(biāo)題、圖例、參考線和參考區(qū)域,顯示網(wǎng)格34掌握添加注釋文本,添加表格目錄頁3.5添加參考線和參考區(qū)域3.1認(rèn)識圖表常用的輔助元素3.2設(shè)置坐標(biāo)軸的標(biāo)簽、刻度范圍和刻度標(biāo)簽3.3添加標(biāo)題和圖例3.4顯示網(wǎng)格3.6添加注釋文本目錄頁3.7添加表格3.8本章小結(jié)目錄頁3.5添加參考線和參考區(qū)域3.1認(rèn)識圖表常用的輔助元素3.2設(shè)置坐標(biāo)軸的標(biāo)簽、刻度范圍標(biāo)簽3.3添加標(biāo)題和圖例3.4顯示網(wǎng)格3.6添加注釋文本圖表的輔助元素是什么,有哪些?3.1認(rèn)識圖表常用的輔助元素圖表的輔助元素是指除了根據(jù)數(shù)據(jù)繪制的圖形之外的元素,常用的輔助元素包括坐標(biāo)軸、標(biāo)題、圖例、網(wǎng)格、參考線、參考區(qū)域、注釋文本和表格,它們都可以對圖形進(jìn)行補(bǔ)充說明。3.1認(rèn)識圖表常用的輔助元素坐標(biāo)軸:分為單坐標(biāo)軸和雙坐標(biāo)軸,單坐標(biāo)軸按不同的方向又可分為水平坐標(biāo)軸(又稱x軸)和垂直坐標(biāo)軸(又稱y軸)。標(biāo)題:表示圖表的說明性文本。圖例:用于指出圖表中各組圖形采用的標(biāo)識方式。網(wǎng)格:從坐標(biāo)軸刻度開始的、貫穿繪圖區(qū)域的若干條線,用于作為估算圖形所示值的標(biāo)準(zhǔn)。參考線:標(biāo)記坐標(biāo)軸上特殊值的一條直線。參考區(qū)域:標(biāo)記坐標(biāo)軸上特殊范圍的一塊區(qū)域。注釋文本:表示對圖形的一些注釋和說明。表格:用于強(qiáng)調(diào)比較難理解數(shù)據(jù)的表格。3.1認(rèn)識圖表常用的輔助元素坐標(biāo)軸是由刻度標(biāo)簽、刻度線(主刻度線和次刻度線)、軸脊和坐標(biāo)軸標(biāo)簽組成。3.1認(rèn)識圖表常用的輔助元素“x軸”為坐標(biāo)軸的標(biāo)簽?!?”~“7”均為刻度標(biāo)簽?!?”~“7”對應(yīng)的短豎線為刻度線,且為主刻度線??潭染€上方的橫線為軸脊。matplotlib中的次刻度線默認(rèn)是隱藏的。3.1認(rèn)識圖表常用的輔助元素不同的圖表具有不同的輔助元素,比如餅圖是沒有坐標(biāo)軸的,而折線圖是有坐標(biāo)軸的,大家可根據(jù)實(shí)際需求進(jìn)行定制。目錄頁3.5添加參考線和參考區(qū)域3.1認(rèn)識圖表常用的輔助元素3.2設(shè)置坐標(biāo)軸的標(biāo)簽、刻度范圍和刻度標(biāo)簽3.3添加標(biāo)題和圖例3.4顯示網(wǎng)格3.6添加注釋文本使用pyplot模塊的xlabel()函數(shù)可以設(shè)置x軸的標(biāo)簽。3.2.1設(shè)置坐標(biāo)軸的標(biāo)簽xlabel(xlabel,

fontdict=None,

labelpad=None,

**kwargs)xlabel:表示x軸標(biāo)簽的文本。fontdict:表示控制標(biāo)簽文本樣式的字典。labelpad:表示標(biāo)簽與x軸軸脊間的距離。語法3.2.1設(shè)置坐標(biāo)軸的標(biāo)簽使用pyplot模塊的ylabel()函數(shù)可以設(shè)置y軸的標(biāo)簽。ylabel(ylabel,

fontdict=None,

labelpad=None,

**kwargs)ylabel:表示y軸標(biāo)簽的文本。fontdict:表示控制標(biāo)簽文本樣式的字典。labelpad:表示標(biāo)簽與y軸軸脊的距離。語法Axes對象使用set_xlabel()方法可以設(shè)置x軸的標(biāo)簽,使用set_ylabel()方法可以設(shè)置y軸的標(biāo)簽。set_xlabel()、set_ylabel()方法與xlabel()、ylabel()函數(shù)的參數(shù)用法相同。

3.2.1設(shè)置坐標(biāo)軸的標(biāo)簽3.2.1設(shè)置坐標(biāo)軸的標(biāo)簽示例#設(shè)置x軸和y軸的標(biāo)簽plt.xlabel("x軸")plt.ylabel("y軸")設(shè)置x軸和y軸的標(biāo)簽當(dāng)繪制圖表時(shí),坐標(biāo)軸的刻度范圍和刻度標(biāo)簽都與數(shù)據(jù)的分布有著直接的聯(lián)系,即坐標(biāo)軸的刻度范圍取決于數(shù)據(jù)中的最大值和最小值。3.2.2設(shè)置刻度范圍和刻度標(biāo)簽若沒有指定任何數(shù)據(jù),x軸和y軸的刻度范圍為0.05~1.05,刻度標(biāo)簽為[-0.2,0.0,0.2,0.4,0.6,0.8,1.0,1.2];若指定了數(shù)據(jù),刻度范圍和刻度標(biāo)簽會隨著數(shù)據(jù)的變化而變化。使用pyplot模塊的xlim()和ylim()函數(shù)分別可以設(shè)置或獲取x軸和y軸的刻度范圍。3.2.2設(shè)置刻度范圍和刻度標(biāo)簽xlim(left=None,

right=None,

emit=True,

auto=False,

*,

xmin=None,

xmax=None)

left:表示x軸刻度取值區(qū)間的左位數(shù)。right:表示x軸刻度取值區(qū)間的右位數(shù)。emit:表示是否通知限制變化的觀察者,默認(rèn)為True。auto:表示是否允許自動縮放x軸,默認(rèn)為True。語法此外,Axes對象可以使用set_xlim()或set_ylim()方法設(shè)置x軸或y軸的刻度范圍。3.2.2設(shè)置刻度范圍和刻度標(biāo)簽xticks(ticks=None,

labels=None,

**kwargs)

ticks:表示刻度顯示的位置列表,該參數(shù)可以設(shè)置為空列表,以此禁用x軸的刻度。labels:表示指定位置刻度的標(biāo)簽列表。語法此外,Axes對象可以使用set_xticks()或set_yticks()方法設(shè)置x軸或y軸的刻度線位置,使用set_xticklabels()或set_yticklabels()方法設(shè)置x軸或y軸的刻度標(biāo)簽。使用pyplot模塊的xticks()或yticks()函數(shù)可以設(shè)置x軸或y軸的刻度線位置和刻度標(biāo)簽。3.2.2設(shè)置刻度范圍和刻度標(biāo)簽示例#設(shè)置x軸的刻度范圍和刻度標(biāo)簽plt.xlim(x.min()*1.5,x.max()*1.5)plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])設(shè)置x軸的刻度范圍和刻度標(biāo)簽假如你有一段閑暇時(shí)間,到影院觀影會是個(gè)不錯(cuò)的選項(xiàng)。如今,看電影已經(jīng)成為人們休閑娛樂的方式之一,它不僅是一種視覺享受,而且是一場精神盛宴,使人們放松身心。3.2.3實(shí)例1:2019年內(nèi)地電影票房排行榜3.2.3實(shí)例1:2019年內(nèi)地電影票房排行榜本實(shí)例要求根據(jù)下表的數(shù)據(jù),將電影名稱列的數(shù)據(jù)作為y軸的刻度標(biāo)簽,將總票房(億元)列的數(shù)據(jù)作為條形數(shù)據(jù),使用barh()函數(shù)繪制下圖所示的條形圖,并設(shè)置坐標(biāo)軸標(biāo)簽和刻度標(biāo)簽。3.2.3實(shí)例1:2019年內(nèi)地電影票房排行榜由圖可知,電影《哪吒之魔童降世》的總票房最高,《流浪地球》的總票房排行第二,《復(fù)仇者聯(lián)盟4:終局之戰(zhàn)》的總票房排行第三。y軸的標(biāo)簽X軸的標(biāo)簽高度為0.5目錄頁3.5添加參考線和參考區(qū)域3.1認(rèn)識圖表常用的輔助元素3.2設(shè)置坐標(biāo)軸的標(biāo)簽、刻度范圍和刻度標(biāo)簽3.3添加標(biāo)題和圖例3.4顯示網(wǎng)格3.6添加注釋文本3.3.1添加標(biāo)題使用pyplot模塊的title()函數(shù)可以添加圖表標(biāo)題。title(label,

fontdict=None,

loc=‘center’,

pad=None,

**kwargs)

label:表示標(biāo)題的文本。fontdict:表示控制標(biāo)題文本樣式的字典。loc:表示標(biāo)題的對齊樣式。pad:表示標(biāo)題與圖表頂部的距離,默認(rèn)為None。語法Axes對象還可以使用set_title()方法為圖表添加標(biāo)題。3.3.1添加標(biāo)題示例#添加標(biāo)題plt.title("正弦曲線和余弦曲線")

添加標(biāo)題“正弦曲線和余弦曲線”什么是圖例?3.3.2添加圖例圖例是一個(gè)列舉的各組圖形數(shù)據(jù)標(biāo)識方式的方框圖,它由圖例標(biāo)識和圖例項(xiàng)兩部分構(gòu)成,其中圖例標(biāo)識是代表各組圖形的圖案;圖例項(xiàng)是與圖例標(biāo)識對應(yīng)的名稱。3.3.2添加圖例當(dāng)在使用matplotlib繪制包含多組圖形的圖表時(shí),我們可以在圖表中添加圖例,幫助用戶明確每組圖形代表的含義。3.3.2添加圖例使用pyplot模塊的legend()函數(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論