版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章
數(shù)據(jù)可視化《數(shù)據(jù)采集與處理:基于Python》2024/5/1112024/5/112教學(xué)目標(biāo)本章學(xué)習(xí)目標(biāo)1.了解數(shù)據(jù)可視化的相關(guān)概念、發(fā)展歷史、相關(guān)方法和工具及圖表類(lèi)型;2.熟悉matplotlib數(shù)據(jù)可視化模塊的基本使用方法和常見(jiàn)的可視化技巧;3.掌握pandas和seaborn等其他數(shù)據(jù)可視化模塊的常用方法,并理解常見(jiàn)數(shù)據(jù)可視化模塊的特點(diǎn)、區(qū)別和適用范圍。本章提綱1、數(shù)據(jù)可視化概述2、matplotlib繪圖工具3、其他數(shù)據(jù)可視化工具數(shù)據(jù)可視化概述2024/5/113數(shù)據(jù)可視化簡(jiǎn)介(一)什么是數(shù)據(jù)可視化與單純的數(shù)據(jù)和數(shù)字相比,圖形顯得更為直觀、生動(dòng)。數(shù)據(jù)可視化是關(guān)于數(shù)據(jù)視覺(jué)表現(xiàn)形式的科學(xué)技術(shù)研究,它讓數(shù)據(jù)更有意義、更貼近人的直觀感受,因此數(shù)據(jù)可視化是藝術(shù)與技術(shù)的結(jié)合。它將各種數(shù)據(jù)用圖形化的方式呈現(xiàn)出來(lái),為用戶(hù)展示已知數(shù)據(jù)之間的規(guī)律、趨勢(shì)和相關(guān)關(guān)系,幫助用戶(hù)認(rèn)識(shí)數(shù)據(jù),發(fā)現(xiàn)這些數(shù)據(jù)反映的實(shí)質(zhì)。因此,數(shù)據(jù)可視化是數(shù)據(jù)探索性分析的重要組成部分,有助于用戶(hù)發(fā)現(xiàn)數(shù)據(jù)之間的分布特征、相互關(guān)系和總體趨勢(shì),為進(jìn)一步的數(shù)據(jù)處理和分析提供直觀參考。2024/5/114數(shù)據(jù)可視化簡(jiǎn)介(二)數(shù)據(jù)可視化發(fā)展歷史1.數(shù)據(jù)可視化的起源早在10世紀(jì),一位天文學(xué)家繪制的一幅天文作品中就包含了許多現(xiàn)代統(tǒng)計(jì)圖形元素,如坐標(biāo)軸、網(wǎng)格和時(shí)間序列。到了17世紀(jì),隨著社會(huì)的進(jìn)一步發(fā)展和文字的廣泛使用,物理、化學(xué)和數(shù)學(xué)等都開(kāi)始蓬勃發(fā)展,統(tǒng)計(jì)學(xué)也開(kāi)始萌芽。數(shù)據(jù)的價(jià)值開(kāi)始受到人們重視,人口、商業(yè)、農(nóng)業(yè)等經(jīng)驗(yàn)數(shù)據(jù)開(kāi)始被系統(tǒng)地收集整理和記錄下來(lái),因此各種圖表和圖形也開(kāi)始誕生。18世紀(jì),蘇格蘭工程師威廉·普萊費(fèi)爾(WilliamPlayfair)創(chuàng)造了今天常用的幾種基本數(shù)據(jù)可視化圖形,如折線(xiàn)圖、條形圖、餅圖。2024/5/115數(shù)據(jù)可視化簡(jiǎn)介2.數(shù)據(jù)可視化的廣泛應(yīng)用到了19世紀(jì),數(shù)據(jù)可視化繪圖得到了廣泛使用。在統(tǒng)計(jì)圖形方面,散點(diǎn)圖、直方圖、極坐標(biāo)圖和時(shí)間序列圖等當(dāng)代統(tǒng)計(jì)圖形的常用形式都已出現(xiàn);在主題圖形方面,主題地圖和地圖集成為這個(gè)年代展示數(shù)據(jù)信息的一種常用方式,涵蓋社會(huì)、經(jīng)濟(jì)、疾病、自然等各個(gè)領(lǐng)域的主題。圖4-1為19世紀(jì)英國(guó)護(hù)士和統(tǒng)計(jì)學(xué)家南丁格爾繪制的統(tǒng)計(jì)英軍死亡人數(shù)的可視化圖形。2024/5/116數(shù)據(jù)可視化簡(jiǎn)介3.21世紀(jì)的大數(shù)據(jù)可視化進(jìn)入21世紀(jì),計(jì)算機(jī)技術(shù)取得了巨大的進(jìn)展,隨著數(shù)據(jù)規(guī)模呈指數(shù)級(jí)增長(zhǎng),數(shù)據(jù)的內(nèi)容和類(lèi)型也比以前更加豐富,給人們提供了新的可視化素材,推動(dòng)了大數(shù)據(jù)可視化領(lǐng)域的發(fā)展。大數(shù)據(jù)可視化已經(jīng)注定成為可視化歷史中新的里程碑,VR、AR、MR、全息投影等當(dāng)下最火熱的數(shù)據(jù)可視化技術(shù)已經(jīng)被廣泛應(yīng)用到游戲、房地產(chǎn)、教育等各行各業(yè),數(shù)據(jù)可視化在商業(yè)領(lǐng)域的應(yīng)用示例如圖4-2所示。2024/5/117數(shù)據(jù)可視化方法與組成1.數(shù)據(jù)可視化基本概念數(shù)據(jù)可視化技術(shù)包含以下幾個(gè)基本概念:(1)數(shù)據(jù)空間:由n維屬性和m個(gè)元素組成的數(shù)據(jù)集所構(gòu)成的多維信息空間。(2)數(shù)據(jù)開(kāi)發(fā):利用一定的算法和工具對(duì)數(shù)據(jù)進(jìn)行定量的推演和計(jì)算。(3)數(shù)據(jù)分析:對(duì)多維數(shù)據(jù)進(jìn)行切片、切塊、旋轉(zhuǎn)等操作來(lái)剖析數(shù)據(jù),從而能多角度、多側(cè)面地觀察數(shù)據(jù)。(4)數(shù)據(jù)可視化:將大型數(shù)據(jù)集中的數(shù)據(jù)以圖形的形式表示,并利用數(shù)據(jù)分析和開(kāi)發(fā)工具發(fā)現(xiàn)其中的未知信息。2024/5/118數(shù)據(jù)可視化方法與組成2.數(shù)據(jù)可視化組成數(shù)據(jù)可視化技術(shù)一般由三個(gè)方面組成,如圖4-3所示。(1)科學(xué)可視化:主要關(guān)注三維現(xiàn)象的可視化,包含氣象學(xué)、生物學(xué)、物理學(xué)、農(nóng)學(xué)等,重點(diǎn)在于對(duì)客觀事物的體、面及光源等的逼真渲染。(2)信息可視化:將數(shù)據(jù)信息和知識(shí)轉(zhuǎn)換成一種視覺(jué)形式,信息可視化充分利用了人們對(duì)可視模式快速識(shí)別的自然能力。(3)可視化分析:是科學(xué)可視化與信息可視化領(lǐng)域發(fā)展的產(chǎn)物,側(cè)重于借助交互式的用戶(hù)界面對(duì)數(shù)據(jù)進(jìn)行分析與推理。2024/5/119數(shù)據(jù)可視化方法與組成3.數(shù)據(jù)可視化應(yīng)用與挑戰(zhàn)目前,數(shù)據(jù)可視化的應(yīng)用十分廣泛,政府機(jī)構(gòu)、金融機(jī)構(gòu)、醫(yī)學(xué)、工業(yè)以及電子商務(wù)行業(yè)中都有數(shù)據(jù)可視化的身影。為了讓數(shù)據(jù)可視化達(dá)到較好的直觀展現(xiàn)效果,學(xué)者們對(duì)數(shù)據(jù)可視化提出了一些原則或標(biāo)準(zhǔn),多數(shù)認(rèn)可的數(shù)據(jù)可視化原則包括實(shí)用性、完整性、真實(shí)性、藝術(shù)性、交互性等。然而,數(shù)據(jù)可視化仍舊面臨一些挑戰(zhàn),如可視化分析過(guò)程中數(shù)據(jù)的呈現(xiàn)方式,它包括可視化技術(shù)和信息可視化顯示。目前,數(shù)據(jù)簡(jiǎn)約可視化研究中,高清晰顯示、大屏幕顯示、高可擴(kuò)展數(shù)據(jù)投影、維度降解等技術(shù)都試著從不同角度來(lái)解決這個(gè)難題。2024/5/1110數(shù)據(jù)可視化相關(guān)工具不同的開(kāi)發(fā)語(yǔ)言和工具一般都有相應(yīng)的數(shù)據(jù)可視化工具,下面是除了Python之外的一些常用的數(shù)據(jù)可視化工具:●Excel:簡(jiǎn)單方便,但功能有限?!馜3.js:D3(數(shù)據(jù)驅(qū)動(dòng)文件)是一種支持SVG渲染的JavaScript庫(kù)。●Flot:基于jQuery的開(kāi)源JavaScript庫(kù)。●GoogleChartAPI:提供了從簡(jiǎn)單的線(xiàn)圖到復(fù)雜的分層樹(shù)地圖等,內(nèi)置了動(dòng)畫(huà)和用戶(hù)交互控制。●Visual.ly:提供即時(shí)數(shù)據(jù)可視化功能,并提供大量信息圖模板。●ModestMaps:可視化的數(shù)據(jù)地圖工具,目前最小的可用地圖庫(kù)?!馪rocessing:交互式可視化處理的模范工具,可循環(huán)編譯為Java?!馛artoDB:在Web中用來(lái)存儲(chǔ)和虛擬化地理數(shù)據(jù)的工具,可輕易地將表格數(shù)據(jù)和地圖關(guān)聯(lián)起來(lái)。●R語(yǔ)言:免費(fèi)開(kāi)源,功能強(qiáng)大,專(zhuān)業(yè)的統(tǒng)計(jì)分析語(yǔ)言?!馦atlab:除了科學(xué)計(jì)算、建模和仿真外,還支持強(qiáng)大的科學(xué)數(shù)據(jù)可視化?!馱eka:免費(fèi)開(kāi)源的機(jī)器學(xué)習(xí)及數(shù)據(jù)挖掘軟件。類(lèi)似工具還有RapidMiner、Tableau等?!駃Charts:用于創(chuàng)建并呈現(xiàn)引人注目的圖表的托管解決方案。2024/5/1111數(shù)據(jù)可視化相關(guān)工具不同的開(kāi)發(fā)語(yǔ)言和工具一般都有相應(yīng)的數(shù)據(jù)可視化工具,下面是除了Python之外的一些常用的數(shù)據(jù)可視化工具:●Excel:簡(jiǎn)單方便,但功能有限?!馜3.js:D3(數(shù)據(jù)驅(qū)動(dòng)文件)是一種支持SVG渲染的JavaScript庫(kù)?!馞lot:基于jQuery的開(kāi)源JavaScript庫(kù)?!馟oogleChartAPI:提供了從簡(jiǎn)單的線(xiàn)圖到復(fù)雜的分層樹(shù)地圖等,內(nèi)置了動(dòng)畫(huà)和用戶(hù)交互控制?!馰isual.ly:提供即時(shí)數(shù)據(jù)可視化功能,并提供大量信息圖模板?!馦odestMaps:可視化的數(shù)據(jù)地圖工具,目前最小的可用地圖庫(kù)?!馪rocessing:交互式可視化處理的模范工具,可循環(huán)編譯為Java?!馛artoDB:在Web中用來(lái)存儲(chǔ)和虛擬化地理數(shù)據(jù)的工具,可輕易地將表格數(shù)據(jù)和地圖關(guān)聯(lián)起來(lái)?!馬語(yǔ)言:免費(fèi)開(kāi)源,功能強(qiáng)大,專(zhuān)業(yè)的統(tǒng)計(jì)分析語(yǔ)言。●Matlab:除了科學(xué)計(jì)算、建模和仿真外,還支持強(qiáng)大的科學(xué)數(shù)據(jù)可視化。●Weka:免費(fèi)開(kāi)源的機(jī)器學(xué)習(xí)及數(shù)據(jù)挖掘軟件。類(lèi)似工具還有RapidMiner、Tableau等。●iCharts:用于創(chuàng)建并呈現(xiàn)引人注目的圖表的托管解決方案。2024/5/1112數(shù)據(jù)可視化相關(guān)工具按照數(shù)據(jù)的作用和功能,可以把圖表分為以下幾類(lèi):比較類(lèi)、分布類(lèi)、流程類(lèi)、地圖類(lèi)、占比類(lèi)、區(qū)間類(lèi)、關(guān)聯(lián)類(lèi)、時(shí)間類(lèi)和趨勢(shì)類(lèi)等。每種類(lèi)型的圖表中都可包含不同的數(shù)據(jù)可視化圖形,如柱狀圖、餅圖、氣泡圖、熱力圖、趨勢(shì)圖、直方圖、雷達(dá)圖、色塊圖、漏斗圖、和弦圖、儀表盤(pán)、面積圖、折線(xiàn)圖、K線(xiàn)圖、環(huán)圖、詞云等。1.柱狀圖柱狀圖(bargraph)又稱(chēng)長(zhǎng)條圖、條狀圖、棒形圖,是一種以長(zhǎng)方形的長(zhǎng)度為變量的統(tǒng)計(jì)圖表,如圖4-4所示。柱狀圖用來(lái)比較兩個(gè)或兩個(gè)以上的數(shù)值(不同時(shí)間或者不同條件),只有一個(gè)變量,通常用于較小數(shù)據(jù)集的分析。柱狀圖亦可橫向排列,或用多維方式表達(dá)。2024/5/1113數(shù)據(jù)可視化相關(guān)工具2.K線(xiàn)圖K線(xiàn)圖又稱(chēng)陰陽(yáng)圖、棒線(xiàn)、蠟燭線(xiàn)等,可反映股價(jià)情況,包含開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最高價(jià)、最低價(jià)等信息,如圖4-5所示。2024/5/1114數(shù)據(jù)可視化相關(guān)工具3.散點(diǎn)圖散點(diǎn)圖(scatterplot)用兩組數(shù)據(jù)構(gòu)成多個(gè)坐標(biāo)點(diǎn),考察坐標(biāo)點(diǎn)的分布,判斷兩個(gè)變量之間是否存在某種關(guān)聯(lián)或總結(jié)坐標(biāo)點(diǎn)的分布模式。散點(diǎn)圖將序列顯示為一組點(diǎn),值由點(diǎn)在圖表中的位置表示,類(lèi)別由圖表中的不同標(biāo)記表示。散點(diǎn)圖通常用于比較跨類(lèi)別的聚合數(shù)據(jù),如圖4-6所示。2024/5/1115數(shù)據(jù)可視化相關(guān)工具4.氣泡圖氣泡圖(bubblechart)可用于展示三個(gè)變量之間的關(guān)系,如圖4-7所示。氣泡圖具有下列圖表子類(lèi)型:氣泡圖和三維氣泡圖。氣泡圖與散點(diǎn)圖類(lèi)似,但是它對(duì)成組的三個(gè)數(shù)值而非兩個(gè)數(shù)值進(jìn)行比較。2024/5/1116數(shù)據(jù)可視化相關(guān)工具5.熱力圖熱力圖是通過(guò)對(duì)色塊著色來(lái)顯示數(shù)據(jù)的統(tǒng)計(jì)圖表,繪圖時(shí)需要指定每個(gè)顏色映射的規(guī)則(一般以顏色的強(qiáng)度或色調(diào)為標(biāo)準(zhǔn)),比如顏色越深或越亮的色塊表示的數(shù)值越大、程度越深,如圖4-8所示。2024/5/1117數(shù)據(jù)可視化相關(guān)工具6.餅圖餅圖(piegraph)顯示一個(gè)數(shù)據(jù)中各項(xiàng)的大小與各項(xiàng)總和的比例。餅圖中的數(shù)據(jù)點(diǎn)[即在圖表中繪制的單個(gè)值,這些值由條形、柱形、折線(xiàn)、餅圖或環(huán)形圖的扇面、圓點(diǎn)和其他被稱(chēng)為數(shù)據(jù)標(biāo)記的圖形表示。相同顏色的數(shù)據(jù)標(biāo)記組成一個(gè)數(shù)據(jù)系列。顯示為整個(gè)餅圖的百分比,如圖4-9所示。2024/5/1118數(shù)據(jù)可視化相關(guān)工具7.折線(xiàn)圖排列在工作表的列或行中的數(shù)據(jù)可以繪制到折線(xiàn)圖(linechart)中。折線(xiàn)圖可以顯示連續(xù)數(shù)據(jù)隨時(shí)間(根據(jù)常用比例設(shè)置)的變化,因此非常適用于顯示在相等時(shí)間間隔下數(shù)據(jù)的趨勢(shì),如圖4-10所示。2024/5/1119數(shù)據(jù)可視化相關(guān)工具8.面積圖面積圖(areachart)又稱(chēng)區(qū)域圖,強(qiáng)調(diào)數(shù)量隨時(shí)間變化的程度,也可用于引起人們對(duì)總值趨勢(shì)的注意,如圖4-11所示。堆積面積圖和百分比堆積面積圖還可以顯示部分與整體之間的關(guān)系。2024/5/1120數(shù)據(jù)可視化相關(guān)工具9.漏斗圖漏斗圖(funnelplots)是一個(gè)簡(jiǎn)單的散點(diǎn)圖,反映在一定樣本量或精確性下,單個(gè)研究的干預(yù)效應(yīng)估計(jì)值,如圖4-12所示。漏斗圖最常見(jiàn)的形式是橫軸為各研究的效應(yīng)估計(jì)值,縱軸為研究的樣本量。2024/5/1121數(shù)據(jù)可視化相關(guān)工具10.雷達(dá)圖雷達(dá)圖(radarchart)是用以從同一點(diǎn)開(kāi)始的軸表示三個(gè)或更多個(gè)定量變量的二維圖表的形式顯示多變量數(shù)據(jù)的圖形方法,如圖4-13所示。軸的相對(duì)位置和角度通常是無(wú)信息的。雷達(dá)圖也稱(chēng)為網(wǎng)絡(luò)圖、蜘蛛圖、星圖、蜘蛛網(wǎng)圖、不規(guī)則多邊形、極坐標(biāo)圖或Kiviat圖,它相當(dāng)于平行坐標(biāo)圖的軸徑向排列。2024/5/1122數(shù)據(jù)可視化相關(guān)工具11.環(huán)形圖環(huán)形圖(ringdiagram)是由兩個(gè)及兩個(gè)以上大小不一的餅圖堆疊在一起,挖去中間的部分所構(gòu)成的圖形,如圖4-14所示。2024/5/1123數(shù)據(jù)可視化相關(guān)工具12.直方圖直方圖(histogram)又稱(chēng)質(zhì)量分布圖,是一種統(tǒng)計(jì)報(bào)告圖,通過(guò)一系列高度不等的縱向條紋或線(xiàn)段表示數(shù)據(jù)的分布情況。一般用橫軸表示數(shù)據(jù)類(lèi)型,縱軸表示分布情況,反映不同分組頻數(shù),如圖4-15所示。2024/5/1124數(shù)據(jù)可視化相關(guān)工具13.箱形圖箱形圖(boxplot)又稱(chēng)盒須圖、盒式圖或箱線(xiàn)圖,是一種用于顯示一組數(shù)據(jù)分散情況的統(tǒng)計(jì)圖,因形狀如箱子而得名,如圖4-16所示。箱形圖在各領(lǐng)域中經(jīng)常使用,常見(jiàn)于品質(zhì)管理。它主要用于反映原始數(shù)據(jù)分布的特征,檢測(cè)數(shù)據(jù)異常值、偏態(tài)和尾重,還可以進(jìn)行多組數(shù)據(jù)分布特征的比較。箱形圖的繪制方法是:先找出一組數(shù)據(jù)的上邊緣、下邊緣、中位數(shù)和兩個(gè)四分位數(shù);然后連接兩個(gè)四分位數(shù)畫(huà)出箱體;再將最大值和最小值與箱體相連,中位數(shù)在箱體中間。2024/5/1125數(shù)據(jù)可視化相關(guān)工具箱形圖提供了一種只用5個(gè)點(diǎn)就能對(duì)數(shù)據(jù)集做簡(jiǎn)單總結(jié)的方式。這5個(gè)點(diǎn)包括中位數(shù)、上四分位數(shù)(25%分位數(shù)Q1)、下四分位數(shù)(75%分位數(shù)Q3)、分布狀態(tài)的高位和低位。箱形圖很形象地分為中心、延伸以及分布狀態(tài)的全部范圍。箱形圖中最重要的是對(duì)相關(guān)統(tǒng)計(jì)點(diǎn)的計(jì)算,這些計(jì)算可以通過(guò)百分位計(jì)算方法實(shí)現(xiàn)。2024/5/1126數(shù)據(jù)可視化相關(guān)工具箱形圖的繪制步驟:(1)畫(huà)數(shù)軸,度量單位和數(shù)據(jù)的單位一致,起點(diǎn)比最小值稍小,長(zhǎng)度比該批數(shù)據(jù)的全距稍長(zhǎng)。(2)畫(huà)一個(gè)矩形盒,兩端邊的位置分別對(duì)應(yīng)數(shù)據(jù)的上下四分位數(shù)(75%分位數(shù)Q3和25%分位數(shù)Q1)。在矩形盒內(nèi)部中位數(shù)的位置畫(huà)一條線(xiàn)段表示中位數(shù),該線(xiàn)段稱(chēng)為中位線(xiàn)。(3)在Q3+1.5IQR和Q1-1.5IQR[四分位距IQR=Q3-Q1。]處畫(huà)兩條與中位線(xiàn)一樣的線(xiàn)段(分別稱(chēng)為上、下邊緣),這兩條線(xiàn)段為異常值截?cái)帱c(diǎn),稱(chēng)為內(nèi)限;在Q3+3IQR和Q1-3IQR處畫(huà)兩條線(xiàn)段,稱(chēng)為外限。處于內(nèi)限以外位置的點(diǎn)表示的數(shù)據(jù)都是異常值,其中,在內(nèi)限與外限之間的異常值稱(chēng)為溫和異常值(mildoutliers),在外限以外的異常值稱(chēng)為極端異常值(extremeoutliers)。(4)從矩形盒上下兩端邊緣向外各畫(huà)一條線(xiàn)段直到不是異常值的最遠(yuǎn)點(diǎn),表示該批數(shù)據(jù)正常值的分布區(qū)間。(5)用“○”標(biāo)出溫和異常值,用“*”標(biāo)出極端異常值。相同值的數(shù)據(jù)點(diǎn)并列標(biāo)在同一數(shù)據(jù)線(xiàn)上,不同值的數(shù)據(jù)點(diǎn)標(biāo)在不同數(shù)據(jù)線(xiàn)上。至此,一批數(shù)據(jù)的箱形圖便繪制完成了。統(tǒng)計(jì)軟件繪制的箱形圖一般沒(méi)有標(biāo)出內(nèi)限和外限。2024/5/1127數(shù)據(jù)可視化相關(guān)工具14.其他還有其他一些常用的數(shù)據(jù)可視化圖形,如儀表圖、詞云等。儀表圖就像反映車(chē)輛各系統(tǒng)工作狀況的汽車(chē)儀表盤(pán)一樣,可以反映某項(xiàng)指標(biāo)的程度,如圖4-17所示。2024/5/1128數(shù)據(jù)可視化相關(guān)工具詞云是通過(guò)形成“關(guān)鍵詞云層”或“關(guān)鍵詞渲染”,對(duì)網(wǎng)絡(luò)文本中出現(xiàn)頻率較高的“關(guān)鍵詞”在視覺(jué)上進(jìn)行突出,如圖4-18所示。2024/5/1129matplotlib繪圖工具2024/5/1130matplotlib概述matplotlib是Python的一個(gè)2D繪圖庫(kù),它以各種硬拷貝格式和跨平臺(tái)的交互式環(huán)境生成出版質(zhì)量級(jí)別的圖形,在使用matplotlib之前,首先要將其安裝在系統(tǒng)中,使用之前導(dǎo)入該模塊即可。通過(guò)matplotlib,開(kāi)發(fā)者僅需幾行代碼,便可以生成折線(xiàn)圖、直方圖、箱形圖、條形圖、餅圖和散點(diǎn)圖等。下面介紹matplotlib的一些基礎(chǔ)知識(shí)。2024/5/1131matplotlib概述1.基本圖表元素matplotlib的繪圖函數(shù)和相關(guān)參數(shù)較多,對(duì)于具體的繪圖功能而言,其基本圖表元素包括:●x軸和y軸數(shù)據(jù):水平和垂直的軸線(xiàn)?!駒軸和y軸的刻度與范圍,包括最小刻度和最大刻度?!駒軸和y軸的標(biāo)簽文本?!窭L圖區(qū)域與實(shí)際繪圖區(qū)域?!駡D形的標(biāo)題和圖例。2024/5/1132matplotlib概述2.hold屬性hold屬性默認(rèn)為T(mén)rue,允許在一幅圖中繪制多條曲線(xiàn);將hold屬性修改為False,則每一個(gè)plot函數(shù)都會(huì)覆蓋前面的plot結(jié)果。不推薦修改hold屬性(這種做法會(huì)有警告),使用默認(rèn)設(shè)置即可。3.網(wǎng)格線(xiàn)使用grid函數(shù)可以為圖添加網(wǎng)格線(xiàn),grid參數(shù)包括:●lw:代表linewidth,表示線(xiàn)的粗細(xì)?!馻lpha:表示線(xiàn)的明暗程度。4.axis函數(shù)如果axis函數(shù)沒(méi)有任何參數(shù),則返回當(dāng)前坐標(biāo)軸的上下限。5.xlim函數(shù)和ylim函數(shù)除了plt.axis函數(shù),還可以通過(guò)xlim、ylim函數(shù)設(shè)置坐標(biāo)軸范圍。2024/5/1133matplotlib概述6.legend函數(shù)legend函數(shù)可以為多類(lèi)數(shù)據(jù)的圖形生成圖例,以方便比較。它有兩種傳參方法:一是在plot函數(shù)中增加label參數(shù),二是在legend函數(shù)中傳入字符串列表。7.圖形資源清理生成圖形后,可以調(diào)用圖形清理函數(shù)對(duì)畫(huà)布和相關(guān)資源進(jìn)行清理,有以下幾種方法:●plt.cla:清除坐標(biāo)軸,即當(dāng)前畫(huà)布中活動(dòng)的坐標(biāo)軸,但其他坐標(biāo)軸保持不變。●plt.clf:清除當(dāng)前畫(huà)布中所有的坐標(biāo)軸,但是不關(guān)閉這個(gè)窗口,所以能繼續(xù)用于其他plot函數(shù)?!駊lt.close:關(guān)閉窗口,如果沒(méi)有指定,則指當(dāng)前窗口。2024/5/1134matplotlib方法與應(yīng)用matplotlib.pyplot是一個(gè)命令型函數(shù)集合,它可以讓人們像使用Matlab一樣使用matplotlib。pyplot中的每個(gè)函數(shù)都會(huì)對(duì)畫(huà)布圖像做出相應(yīng)的改變,如創(chuàng)建畫(huà)布、在畫(huà)布中創(chuàng)建一個(gè)繪圖區(qū)、在繪圖區(qū)上畫(huà)幾條線(xiàn)、給圖像添加文字說(shuō)明等。matplotlib繪圖功能豐富,下面列出部分函數(shù)的使用方法和示例代碼。1.繪制直線(xiàn)2024/5/1135importmatplotlib.pyplotasplt#約定俗成的引用方法#魔法命令inline參數(shù)表示繪圖結(jié)果內(nèi)嵌到JupyterNotebook頁(yè)面中,而auto參數(shù)則表示在單獨(dú)窗口繪圖%matplotlibinlineimportnumpyasnpplt.plot([1,2,3])plt.ylabel(somenumbers) matplotlib方法與應(yīng)用2.繪制柱狀圖2024/5/1136frommatplotlib.font_managerimportFontPropertiesfont_set=FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=15)#導(dǎo)入宋體字體文件x=[0,1,2,3,4,5]y=[1,2,3,2,4,3]plt.bar(x,y) #豎的條形圖plt.title("柱狀圖",FontProperties=font_set)plt.xlabel("x軸",FontProperties=font_set)plt.ylabel("y軸",FontProperties=font_set)plt.show() #見(jiàn)圖4-20matplotlib方法與應(yīng)用3.繪制直方圖2024/5/1137mean,sigma=0,1x=mean+sigma*np.random.randn(10000)plt.hist(x,50,normed=1,histtype=bar,facecolor=red,alpha=0.75)plt.show() matplotlib方法與應(yīng)用4.繪制散點(diǎn)圖2024/5/1138x=np.random.rand(100)y=np.random.rand(100)plt.scatter(x,y)plt.show()matplotlib方法與應(yīng)用5.繪制極坐標(biāo)圖2024/5/1139theta=np.arange(0,2*np.pi,0.02)ax1=plt.subplot(121,projection=polar)ax1.plot(theta,theta/6,--,lw=2)plt.show()matplotlib方法與應(yīng)用6.繪制餅圖2024/5/1140plt.rcParams[font.sans-serif]=[SimHei]#設(shè)置字體plt.title("餅圖") #設(shè)置標(biāo)題labels=計(jì)算機(jī)系,機(jī)械系,管理系,社科系sizes=[45,30,15,10] #設(shè)置每部分大小explode=(0,0.0,0,0)#設(shè)置每部分凹凸plt.pie(sizes,explode=explode,labels=labels,autopct=%1.1f%%,shadow=False,startangle=90) #設(shè)置餅圖的起始位置,startangle=90表示開(kāi)始角度為90°plt.show() #見(jiàn)圖4-24其他數(shù)據(jù)可視化工具2024/5/1141pandas數(shù)據(jù)可視化模塊pandas中的Series和DataFrame對(duì)象自帶了繪圖函數(shù),可更方便地繪制常用圖形。對(duì)于DataFrame對(duì)象而言,由于其數(shù)值可包含多行和多列,繪圖時(shí)可同時(shí)根據(jù)多列數(shù)據(jù)繪制相應(yīng)圖形,繪圖高效且方便比較。pandas部分繪圖函數(shù)使用方法的示例如下:1.折線(xiàn)圖2024/5/1142importpandasaspds=pd.Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))s.plot()#見(jiàn)圖4-25df=pd.DataFrame(np.random.randn(10,4).cumsum(0), columns=[A,B,C,D], index=np.arange(0,100,10))df.plot()#見(jiàn)圖4-26pandas數(shù)據(jù)可視化模塊2.條形圖2024/5/1143df=pd.DataFrame(np.random.rand(6,4), index=[one,two,three,four,five,six], columns=pd.Index([A,B,C,D],name=Genus))dfdf.plot.bar()pandas數(shù)據(jù)可視化模塊3.直方圖2024/5/1144plt.figure()tips=pd.read_csv(tips.csv)tips[tip_pct].plot.hist(bins=50)#繪制直方圖,注意直方圖反映的是對(duì)應(yīng)數(shù)據(jù)的頻數(shù),見(jiàn)圖4-28tips[tip_pct].plot.density() #繪制密度圖pandas數(shù)據(jù)可視化模塊4.箱形圖2024/5/1145macro=pd.read_csv(macrodata.csv)#使用pandas函數(shù)繪制箱形圖,DataFrame對(duì)象的plot函數(shù)的kind參數(shù)設(shè)置為"box"macro[["m1"]].plot(kind="box")#見(jiàn)圖4-30pyecharts數(shù)據(jù)可視化模塊1.pyecharts概述pyecharts是一個(gè)用于生成Echarts圖表的類(lèi)庫(kù),而Echarts是一個(gè)開(kāi)源的數(shù)據(jù)可視化JavaScript庫(kù),同時(shí)也是商業(yè)級(jí)數(shù)據(jù)圖表。一個(gè)純JavaScript的圖表庫(kù)可以流暢地在計(jì)算機(jī)和移動(dòng)設(shè)備上運(yùn)行。使用pyecharts可以讓開(kāi)發(fā)者輕松地實(shí)現(xiàn)大數(shù)據(jù)的可視化。注意:●pyecharts是一個(gè)用于生成Echarts圖表的類(lèi)庫(kù)。pyecharts分為v0.5.x和v1.x兩個(gè)大版本,版本不兼容?!裨贘upyterNotebook中使用pyecharts作圖時(shí),渲染在JupyterNotebook中不顯示,原因是渲染圖形的Echarts的js靜態(tài)資源加載不出來(lái)。這也是pyecharts存在的問(wèn)題使用pyecharts繪制圖形的基本語(yǔ)法如下:2024/5/1146pyecharts數(shù)據(jù)可視化模塊(1)對(duì)于v0.5.x版本,首先定義圖表的類(lèi)型,接著添加圖表的各項(xiàng)數(shù)據(jù),最后生成html網(wǎng)頁(yè):●frompyechartsimportchart_name?!駡D形對(duì)象.add()?!駡D形對(duì)象.render()。(2)對(duì)于v1.x版本:●創(chuàng)建/初始化圖形對(duì)象?!駡D形對(duì)象.render()。2024/5/1147pyecharts數(shù)據(jù)可視化模塊2.pyecharts應(yīng)用示例對(duì)于v0.5.x版本:2024/5/1148#v0.5.x版本frompyechartsimportBarv1=[70,85,95,64]str1=[數(shù)學(xué),物理,化學(xué),英語(yǔ)]bar1=Bar(testBar_theme,Theme)bar1.add(成績(jī),str1,v1,is_more_utils=True)bar1.render()#見(jiàn)圖4-31pyecharts數(shù)據(jù)可視化模塊2.pyecharts應(yīng)用示例對(duì)于v0.5.x版本:2024/5/1149#v1.x版本importrandomimportpyecharts.optionsasoptsfrompyecharts.chartsimportBarx_vals=[襯衫,羊毛衫,雪紡衫,褲子,高跟鞋,襪子]bar=(Bar().add_xaxis(x_vals).add_yaxis(商家A,[random.randint(10,100)for_inrange(6)]).add_yaxis(商家B,[random.randint(10,100)for_inrange(6)]).add_yaxis(商家C,[random.randint(10,100)for_inrange(6)]).add_yaxis(商家D,[random.randint(10,100)for_inrange(6)]).set_series_opts(label_opts=opts.LabelOpts(is_show=True,font_size=14),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(y=40,name="達(dá)標(biāo)線(xiàn)=40")])).set_global_opts(title_opts=opts.TitleOpts(title=柱狀圖示例-銷(xiāo)量,subtitle=四個(gè)商家),xaxis_opts=opts.AxisOpts(name=商品),yaxis_opts=opts.AxisOpts(name=單位:件)))bar.render(柱狀圖.html)#見(jiàn)圖4-32seaborn數(shù)據(jù)可視化模塊seaborn是基于matplotlib開(kāi)發(fā)的更易用的繪圖模塊,下面給出了seaborn部分繪圖函數(shù)及使用方式的示例程序。1.繪制條形圖2024/5/1150#繪制條形圖importseabornassnstips[tip_pct]=tips[tip]/(tips[total_bill]-tips[tip])tips.head()#seaborn條形圖中的黑線(xiàn)是誤差線(xiàn),默認(rèn)表示均值的置信區(qū)間sns.barplot(x=tip_pct,y=day,data=tips,orient=h)seaborn數(shù)據(jù)可視化模塊2.繪制直方圖seaborn的distplot集合了matplotlib的hist與核函數(shù)估計(jì)kdeplot的功能,增加了利用rugplot顯示分布觀測(cè)條與利用scipy庫(kù)的fit擬合參數(shù)分布的新功能。函數(shù)形式如下:2024/5/1151sns.distplot(a,bins=None,hist=True,kde=True,rug=False,fit=None,hist_kws=None,kde_kws=None,rug_kws=None,fit_kws=None,color=None,vertical=False,norm_hist=False,axlabel=None,label=None,ax=None,)sns.distplot(values,bins=100,color=k)seaborn數(shù)據(jù)可視化模塊示例程序如下:2024/5/1152comp1=np.random.normal(0,1,size=200)comp2=np.random.normal(10,2,size=200)values=pd.Series(np.concatenate([comp1,comp2]))sns.distplot(values,bins=100,color=k)#新版本拆分成了兩個(gè)函數(shù),可通過(guò)kind參數(shù)設(shè)定圖形類(lèi)型,缺省是直方圖sns.displot(data=values,bins=100,color=k)#見(jiàn)圖4-34seaborn數(shù)據(jù)可視化模塊3.繪制散點(diǎn)圖seaborn中有兩個(gè)主要功能用于可視化通過(guò)回歸確定的線(xiàn)性關(guān)系,其函數(shù)regplot和lmplot提供相關(guān)功能。兩個(gè)函數(shù)會(huì)繪制兩個(gè)變量(x和y)的散點(diǎn)圖,然后擬合回歸模型并
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《金字塔原理》讀書(shū)筆記個(gè)人所感
- 2022年“安全生產(chǎn)月”宣傳活動(dòng)方案【4篇】
- 2021公司年終個(gè)人總結(jié)五篇
- 幼兒園教育實(shí)習(xí)調(diào)查報(bào)告匯編4篇
- 驕傲的初中滿(mǎn)分作文素材700字
- 科學(xué)發(fā)展觀提出的背景及形成與發(fā)展
- 生物學(xué)院食品安全-課件
- 全面保潔服務(wù)協(xié)議書(shū)(2篇)
- 兒童圖書(shū)銷(xiāo)售代理合同(2篇)
- 山西呂梁2025屆高三上學(xué)期11月期中考試化學(xué)試卷試題及答案解析
- 貴州省安順市2023-2024學(xué)年高一上學(xué)期期末考試歷史試題(解析版)
- 2024 潮玩行業(yè)專(zhuān)題報(bào)告:一文讀懂潮流玩具消費(fèi)新趨勢(shì)
- 2025版國(guó)家開(kāi)放大學(xué)法律事務(wù)專(zhuān)科《刑事訴訟法學(xué)》期末紙質(zhì)考試總題庫(kù)
- 藝考培訓(xùn)宣講
- 華東師范大學(xué)《法學(xué)導(dǎo)論I》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024.8.1十七個(gè)崗位安全操作規(guī)程手冊(cè)(值得借鑒)
- 學(xué)校老師打孩子處理協(xié)議書(shū)(2篇)
- 人教版4年級(jí)上冊(cè)音樂(lè)測(cè)試(含答案)
- 國(guó)自然模板(空白版)
- 易制毒化學(xué)品銷(xiāo)售管理制度
- 化學(xué)鎳金常見(jiàn)缺陷
評(píng)論
0/150
提交評(píng)論