版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四章
數(shù)據(jù)可視化《數(shù)據(jù)采集與處理:基于Python》2024/5/1112024/5/112教學目標本章學習目標1.了解數(shù)據(jù)可視化的相關(guān)概念、發(fā)展歷史、相關(guān)方法和工具及圖表類型;2.熟悉matplotlib數(shù)據(jù)可視化模塊的基本使用方法和常見的可視化技巧;3.掌握pandas和seaborn等其他數(shù)據(jù)可視化模塊的常用方法,并理解常見數(shù)據(jù)可視化模塊的特點、區(qū)別和適用范圍。本章提綱1、數(shù)據(jù)可視化概述2、matplotlib繪圖工具3、其他數(shù)據(jù)可視化工具數(shù)據(jù)可視化概述2024/5/113數(shù)據(jù)可視化簡介(一)什么是數(shù)據(jù)可視化與單純的數(shù)據(jù)和數(shù)字相比,圖形顯得更為直觀、生動。數(shù)據(jù)可視化是關(guān)于數(shù)據(jù)視覺表現(xiàn)形式的科學技術(shù)研究,它讓數(shù)據(jù)更有意義、更貼近人的直觀感受,因此數(shù)據(jù)可視化是藝術(shù)與技術(shù)的結(jié)合。它將各種數(shù)據(jù)用圖形化的方式呈現(xiàn)出來,為用戶展示已知數(shù)據(jù)之間的規(guī)律、趨勢和相關(guān)關(guān)系,幫助用戶認識數(shù)據(jù),發(fā)現(xiàn)這些數(shù)據(jù)反映的實質(zhì)。因此,數(shù)據(jù)可視化是數(shù)據(jù)探索性分析的重要組成部分,有助于用戶發(fā)現(xiàn)數(shù)據(jù)之間的分布特征、相互關(guān)系和總體趨勢,為進一步的數(shù)據(jù)處理和分析提供直觀參考。2024/5/114數(shù)據(jù)可視化簡介(二)數(shù)據(jù)可視化發(fā)展歷史1.數(shù)據(jù)可視化的起源早在10世紀,一位天文學家繪制的一幅天文作品中就包含了許多現(xiàn)代統(tǒng)計圖形元素,如坐標軸、網(wǎng)格和時間序列。到了17世紀,隨著社會的進一步發(fā)展和文字的廣泛使用,物理、化學和數(shù)學等都開始蓬勃發(fā)展,統(tǒng)計學也開始萌芽。數(shù)據(jù)的價值開始受到人們重視,人口、商業(yè)、農(nóng)業(yè)等經(jīng)驗數(shù)據(jù)開始被系統(tǒng)地收集整理和記錄下來,因此各種圖表和圖形也開始誕生。18世紀,蘇格蘭工程師威廉·普萊費爾(WilliamPlayfair)創(chuàng)造了今天常用的幾種基本數(shù)據(jù)可視化圖形,如折線圖、條形圖、餅圖。2024/5/115數(shù)據(jù)可視化簡介2.數(shù)據(jù)可視化的廣泛應(yīng)用到了19世紀,數(shù)據(jù)可視化繪圖得到了廣泛使用。在統(tǒng)計圖形方面,散點圖、直方圖、極坐標圖和時間序列圖等當代統(tǒng)計圖形的常用形式都已出現(xiàn);在主題圖形方面,主題地圖和地圖集成為這個年代展示數(shù)據(jù)信息的一種常用方式,涵蓋社會、經(jīng)濟、疾病、自然等各個領(lǐng)域的主題。圖4-1為19世紀英國護士和統(tǒng)計學家南丁格爾繪制的統(tǒng)計英軍死亡人數(shù)的可視化圖形。2024/5/116數(shù)據(jù)可視化簡介3.21世紀的大數(shù)據(jù)可視化進入21世紀,計算機技術(shù)取得了巨大的進展,隨著數(shù)據(jù)規(guī)模呈指數(shù)級增長,數(shù)據(jù)的內(nèi)容和類型也比以前更加豐富,給人們提供了新的可視化素材,推動了大數(shù)據(jù)可視化領(lǐng)域的發(fā)展。大數(shù)據(jù)可視化已經(jīng)注定成為可視化歷史中新的里程碑,VR、AR、MR、全息投影等當下最火熱的數(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ù)包含以下幾個基本概念:(1)數(shù)據(jù)空間:由n維屬性和m個元素組成的數(shù)據(jù)集所構(gòu)成的多維信息空間。(2)數(shù)據(jù)開發(fā):利用一定的算法和工具對數(shù)據(jù)進行定量的推演和計算。(3)數(shù)據(jù)分析:對多維數(shù)據(jù)進行切片、切塊、旋轉(zhuǎn)等操作來剖析數(shù)據(jù),從而能多角度、多側(cè)面地觀察數(shù)據(jù)。(4)數(shù)據(jù)可視化:將大型數(shù)據(jù)集中的數(shù)據(jù)以圖形的形式表示,并利用數(shù)據(jù)分析和開發(fā)工具發(fā)現(xiàn)其中的未知信息。2024/5/118數(shù)據(jù)可視化方法與組成2.數(shù)據(jù)可視化組成數(shù)據(jù)可視化技術(shù)一般由三個方面組成,如圖4-3所示。(1)科學可視化:主要關(guān)注三維現(xiàn)象的可視化,包含氣象學、生物學、物理學、農(nóng)學等,重點在于對客觀事物的體、面及光源等的逼真渲染。(2)信息可視化:將數(shù)據(jù)信息和知識轉(zhuǎn)換成一種視覺形式,信息可視化充分利用了人們對可視模式快速識別的自然能力。(3)可視化分析:是科學可視化與信息可視化領(lǐng)域發(fā)展的產(chǎn)物,側(cè)重于借助交互式的用戶界面對數(shù)據(jù)進行分析與推理。2024/5/119數(shù)據(jù)可視化方法與組成3.數(shù)據(jù)可視化應(yīng)用與挑戰(zhàn)目前,數(shù)據(jù)可視化的應(yīng)用十分廣泛,政府機構(gòu)、金融機構(gòu)、醫(yī)學、工業(yè)以及電子商務(wù)行業(yè)中都有數(shù)據(jù)可視化的身影。為了讓數(shù)據(jù)可視化達到較好的直觀展現(xiàn)效果,學者們對數(shù)據(jù)可視化提出了一些原則或標準,多數(shù)認可的數(shù)據(jù)可視化原則包括實用性、完整性、真實性、藝術(shù)性、交互性等。然而,數(shù)據(jù)可視化仍舊面臨一些挑戰(zhàn),如可視化分析過程中數(shù)據(jù)的呈現(xiàn)方式,它包括可視化技術(shù)和信息可視化顯示。目前,數(shù)據(jù)簡約可視化研究中,高清晰顯示、大屏幕顯示、高可擴展數(shù)據(jù)投影、維度降解等技術(shù)都試著從不同角度來解決這個難題。2024/5/1110數(shù)據(jù)可視化相關(guān)工具不同的開發(fā)語言和工具一般都有相應(yīng)的數(shù)據(jù)可視化工具,下面是除了Python之外的一些常用的數(shù)據(jù)可視化工具:●Excel:簡單方便,但功能有限?!馜3.js:D3(數(shù)據(jù)驅(qū)動文件)是一種支持SVG渲染的JavaScript庫?!馞lot:基于jQuery的開源JavaScript庫?!馟oogleChartAPI:提供了從簡單的線圖到復(fù)雜的分層樹地圖等,內(nèi)置了動畫和用戶交互控制?!馰isual.ly:提供即時數(shù)據(jù)可視化功能,并提供大量信息圖模板?!馦odestMaps:可視化的數(shù)據(jù)地圖工具,目前最小的可用地圖庫?!馪rocessing:交互式可視化處理的模范工具,可循環(huán)編譯為Java?!馛artoDB:在Web中用來存儲和虛擬化地理數(shù)據(jù)的工具,可輕易地將表格數(shù)據(jù)和地圖關(guān)聯(lián)起來?!馬語言:免費開源,功能強大,專業(yè)的統(tǒng)計分析語言?!馦atlab:除了科學計算、建模和仿真外,還支持強大的科學數(shù)據(jù)可視化?!馱eka:免費開源的機器學習及數(shù)據(jù)挖掘軟件。類似工具還有RapidMiner、Tableau等。●iCharts:用于創(chuàng)建并呈現(xiàn)引人注目的圖表的托管解決方案。2024/5/1111數(shù)據(jù)可視化相關(guān)工具不同的開發(fā)語言和工具一般都有相應(yīng)的數(shù)據(jù)可視化工具,下面是除了Python之外的一些常用的數(shù)據(jù)可視化工具:●Excel:簡單方便,但功能有限?!馜3.js:D3(數(shù)據(jù)驅(qū)動文件)是一種支持SVG渲染的JavaScript庫?!馞lot:基于jQuery的開源JavaScript庫?!馟oogleChartAPI:提供了從簡單的線圖到復(fù)雜的分層樹地圖等,內(nèi)置了動畫和用戶交互控制?!馰isual.ly:提供即時數(shù)據(jù)可視化功能,并提供大量信息圖模板?!馦odestMaps:可視化的數(shù)據(jù)地圖工具,目前最小的可用地圖庫?!馪rocessing:交互式可視化處理的模范工具,可循環(huán)編譯為Java?!馛artoDB:在Web中用來存儲和虛擬化地理數(shù)據(jù)的工具,可輕易地將表格數(shù)據(jù)和地圖關(guān)聯(lián)起來?!馬語言:免費開源,功能強大,專業(yè)的統(tǒng)計分析語言?!馦atlab:除了科學計算、建模和仿真外,還支持強大的科學數(shù)據(jù)可視化?!馱eka:免費開源的機器學習及數(shù)據(jù)挖掘軟件。類似工具還有RapidMiner、Tableau等?!駃Charts:用于創(chuàng)建并呈現(xiàn)引人注目的圖表的托管解決方案。2024/5/1112數(shù)據(jù)可視化相關(guān)工具按照數(shù)據(jù)的作用和功能,可以把圖表分為以下幾類:比較類、分布類、流程類、地圖類、占比類、區(qū)間類、關(guān)聯(lián)類、時間類和趨勢類等。每種類型的圖表中都可包含不同的數(shù)據(jù)可視化圖形,如柱狀圖、餅圖、氣泡圖、熱力圖、趨勢圖、直方圖、雷達圖、色塊圖、漏斗圖、和弦圖、儀表盤、面積圖、折線圖、K線圖、環(huán)圖、詞云等。1.柱狀圖柱狀圖(bargraph)又稱長條圖、條狀圖、棒形圖,是一種以長方形的長度為變量的統(tǒng)計圖表,如圖4-4所示。柱狀圖用來比較兩個或兩個以上的數(shù)值(不同時間或者不同條件),只有一個變量,通常用于較小數(shù)據(jù)集的分析。柱狀圖亦可橫向排列,或用多維方式表達。2024/5/1113數(shù)據(jù)可視化相關(guān)工具2.K線圖K線圖又稱陰陽圖、棒線、蠟燭線等,可反映股價情況,包含開盤價、收盤價、最高價、最低價等信息,如圖4-5所示。2024/5/1114數(shù)據(jù)可視化相關(guān)工具3.散點圖散點圖(scatterplot)用兩組數(shù)據(jù)構(gòu)成多個坐標點,考察坐標點的分布,判斷兩個變量之間是否存在某種關(guān)聯(lián)或總結(jié)坐標點的分布模式。散點圖將序列顯示為一組點,值由點在圖表中的位置表示,類別由圖表中的不同標記表示。散點圖通常用于比較跨類別的聚合數(shù)據(jù),如圖4-6所示。2024/5/1115數(shù)據(jù)可視化相關(guān)工具4.氣泡圖氣泡圖(bubblechart)可用于展示三個變量之間的關(guān)系,如圖4-7所示。氣泡圖具有下列圖表子類型:氣泡圖和三維氣泡圖。氣泡圖與散點圖類似,但是它對成組的三個數(shù)值而非兩個數(shù)值進行比較。2024/5/1116數(shù)據(jù)可視化相關(guān)工具5.熱力圖熱力圖是通過對色塊著色來顯示數(shù)據(jù)的統(tǒng)計圖表,繪圖時需要指定每個顏色映射的規(guī)則(一般以顏色的強度或色調(diào)為標準),比如顏色越深或越亮的色塊表示的數(shù)值越大、程度越深,如圖4-8所示。2024/5/1117數(shù)據(jù)可視化相關(guān)工具6.餅圖餅圖(piegraph)顯示一個數(shù)據(jù)中各項的大小與各項總和的比例。餅圖中的數(shù)據(jù)點[即在圖表中繪制的單個值,這些值由條形、柱形、折線、餅圖或環(huán)形圖的扇面、圓點和其他被稱為數(shù)據(jù)標記的圖形表示。相同顏色的數(shù)據(jù)標記組成一個數(shù)據(jù)系列。顯示為整個餅圖的百分比,如圖4-9所示。2024/5/1118數(shù)據(jù)可視化相關(guān)工具7.折線圖排列在工作表的列或行中的數(shù)據(jù)可以繪制到折線圖(linechart)中。折線圖可以顯示連續(xù)數(shù)據(jù)隨時間(根據(jù)常用比例設(shè)置)的變化,因此非常適用于顯示在相等時間間隔下數(shù)據(jù)的趨勢,如圖4-10所示。2024/5/1119數(shù)據(jù)可視化相關(guān)工具8.面積圖面積圖(areachart)又稱區(qū)域圖,強調(diào)數(shù)量隨時間變化的程度,也可用于引起人們對總值趨勢的注意,如圖4-11所示。堆積面積圖和百分比堆積面積圖還可以顯示部分與整體之間的關(guān)系。2024/5/1120數(shù)據(jù)可視化相關(guān)工具9.漏斗圖漏斗圖(funnelplots)是一個簡單的散點圖,反映在一定樣本量或精確性下,單個研究的干預(yù)效應(yīng)估計值,如圖4-12所示。漏斗圖最常見的形式是橫軸為各研究的效應(yīng)估計值,縱軸為研究的樣本量。2024/5/1121數(shù)據(jù)可視化相關(guān)工具10.雷達圖雷達圖(radarchart)是用以從同一點開始的軸表示三個或更多個定量變量的二維圖表的形式顯示多變量數(shù)據(jù)的圖形方法,如圖4-13所示。軸的相對位置和角度通常是無信息的。雷達圖也稱為網(wǎng)絡(luò)圖、蜘蛛圖、星圖、蜘蛛網(wǎng)圖、不規(guī)則多邊形、極坐標圖或Kiviat圖,它相當于平行坐標圖的軸徑向排列。2024/5/1122數(shù)據(jù)可視化相關(guān)工具11.環(huán)形圖環(huán)形圖(ringdiagram)是由兩個及兩個以上大小不一的餅圖堆疊在一起,挖去中間的部分所構(gòu)成的圖形,如圖4-14所示。2024/5/1123數(shù)據(jù)可視化相關(guān)工具12.直方圖直方圖(histogram)又稱質(zhì)量分布圖,是一種統(tǒng)計報告圖,通過一系列高度不等的縱向條紋或線段表示數(shù)據(jù)的分布情況。一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況,反映不同分組頻數(shù),如圖4-15所示。2024/5/1124數(shù)據(jù)可視化相關(guān)工具13.箱形圖箱形圖(boxplot)又稱盒須圖、盒式圖或箱線圖,是一種用于顯示一組數(shù)據(jù)分散情況的統(tǒng)計圖,因形狀如箱子而得名,如圖4-16所示。箱形圖在各領(lǐng)域中經(jīng)常使用,常見于品質(zhì)管理。它主要用于反映原始數(shù)據(jù)分布的特征,檢測數(shù)據(jù)異常值、偏態(tài)和尾重,還可以進行多組數(shù)據(jù)分布特征的比較。箱形圖的繪制方法是:先找出一組數(shù)據(jù)的上邊緣、下邊緣、中位數(shù)和兩個四分位數(shù);然后連接兩個四分位數(shù)畫出箱體;再將最大值和最小值與箱體相連,中位數(shù)在箱體中間。2024/5/1125數(shù)據(jù)可視化相關(guān)工具箱形圖提供了一種只用5個點就能對數(shù)據(jù)集做簡單總結(jié)的方式。這5個點包括中位數(shù)、上四分位數(shù)(25%分位數(shù)Q1)、下四分位數(shù)(75%分位數(shù)Q3)、分布狀態(tài)的高位和低位。箱形圖很形象地分為中心、延伸以及分布狀態(tài)的全部范圍。箱形圖中最重要的是對相關(guān)統(tǒng)計點的計算,這些計算可以通過百分位計算方法實現(xiàn)。2024/5/1126數(shù)據(jù)可視化相關(guān)工具箱形圖的繪制步驟:(1)畫數(shù)軸,度量單位和數(shù)據(jù)的單位一致,起點比最小值稍小,長度比該批數(shù)據(jù)的全距稍長。(2)畫一個矩形盒,兩端邊的位置分別對應(yīng)數(shù)據(jù)的上下四分位數(shù)(75%分位數(shù)Q3和25%分位數(shù)Q1)。在矩形盒內(nèi)部中位數(shù)的位置畫一條線段表示中位數(shù),該線段稱為中位線。(3)在Q3+1.5IQR和Q1-1.5IQR[四分位距IQR=Q3-Q1。]處畫兩條與中位線一樣的線段(分別稱為上、下邊緣),這兩條線段為異常值截斷點,稱為內(nèi)限;在Q3+3IQR和Q1-3IQR處畫兩條線段,稱為外限。處于內(nèi)限以外位置的點表示的數(shù)據(jù)都是異常值,其中,在內(nèi)限與外限之間的異常值稱為溫和異常值(mildoutliers),在外限以外的異常值稱為極端異常值(extremeoutliers)。(4)從矩形盒上下兩端邊緣向外各畫一條線段直到不是異常值的最遠點,表示該批數(shù)據(jù)正常值的分布區(qū)間。(5)用“○”標出溫和異常值,用“*”標出極端異常值。相同值的數(shù)據(jù)點并列標在同一數(shù)據(jù)線上,不同值的數(shù)據(jù)點標在不同數(shù)據(jù)線上。至此,一批數(shù)據(jù)的箱形圖便繪制完成了。統(tǒng)計軟件繪制的箱形圖一般沒有標出內(nèi)限和外限。2024/5/1127數(shù)據(jù)可視化相關(guān)工具14.其他還有其他一些常用的數(shù)據(jù)可視化圖形,如儀表圖、詞云等。儀表圖就像反映車輛各系統(tǒng)工作狀況的汽車儀表盤一樣,可以反映某項指標的程度,如圖4-17所示。2024/5/1128數(shù)據(jù)可視化相關(guān)工具詞云是通過形成“關(guān)鍵詞云層”或“關(guān)鍵詞渲染”,對網(wǎng)絡(luò)文本中出現(xiàn)頻率較高的“關(guān)鍵詞”在視覺上進行突出,如圖4-18所示。2024/5/1129matplotlib繪圖工具2024/5/1130matplotlib概述matplotlib是Python的一個2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環(huán)境生成出版質(zhì)量級別的圖形,在使用matplotlib之前,首先要將其安裝在系統(tǒng)中,使用之前導(dǎo)入該模塊即可。通過matplotlib,開發(fā)者僅需幾行代碼,便可以生成折線圖、直方圖、箱形圖、條形圖、餅圖和散點圖等。下面介紹matplotlib的一些基礎(chǔ)知識。2024/5/1131matplotlib概述1.基本圖表元素matplotlib的繪圖函數(shù)和相關(guān)參數(shù)較多,對于具體的繪圖功能而言,其基本圖表元素包括:●x軸和y軸數(shù)據(jù):水平和垂直的軸線?!駒軸和y軸的刻度與范圍,包括最小刻度和最大刻度?!駒軸和y軸的標簽文本?!窭L圖區(qū)域與實際繪圖區(qū)域?!駡D形的標題和圖例。2024/5/1132matplotlib概述2.hold屬性hold屬性默認為True,允許在一幅圖中繪制多條曲線;將hold屬性修改為False,則每一個plot函數(shù)都會覆蓋前面的plot結(jié)果。不推薦修改hold屬性(這種做法會有警告),使用默認設(shè)置即可。3.網(wǎng)格線使用grid函數(shù)可以為圖添加網(wǎng)格線,grid參數(shù)包括:●lw:代表linewidth,表示線的粗細?!馻lpha:表示線的明暗程度。4.axis函數(shù)如果axis函數(shù)沒有任何參數(shù),則返回當前坐標軸的上下限。5.xlim函數(shù)和ylim函數(shù)除了plt.axis函數(shù),還可以通過xlim、ylim函數(shù)設(shè)置坐標軸范圍。2024/5/1133matplotlib概述6.legend函數(shù)legend函數(shù)可以為多類數(shù)據(jù)的圖形生成圖例,以方便比較。它有兩種傳參方法:一是在plot函數(shù)中增加label參數(shù),二是在legend函數(shù)中傳入字符串列表。7.圖形資源清理生成圖形后,可以調(diào)用圖形清理函數(shù)對畫布和相關(guān)資源進行清理,有以下幾種方法:●plt.cla:清除坐標軸,即當前畫布中活動的坐標軸,但其他坐標軸保持不變?!駊lt.clf:清除當前畫布中所有的坐標軸,但是不關(guān)閉這個窗口,所以能繼續(xù)用于其他plot函數(shù)?!駊lt.close:關(guān)閉窗口,如果沒有指定,則指當前窗口。2024/5/1134matplotlib方法與應(yīng)用matplotlib.pyplot是一個命令型函數(shù)集合,它可以讓人們像使用Matlab一樣使用matplotlib。pyplot中的每個函數(shù)都會對畫布圖像做出相應(yīng)的改變,如創(chuàng)建畫布、在畫布中創(chuàng)建一個繪圖區(qū)、在繪圖區(qū)上畫幾條線、給圖像添加文字說明等。matplotlib繪圖功能豐富,下面列出部分函數(shù)的使用方法和示例代碼。1.繪制直線2024/5/1135importmatplotlib.pyplotasplt#約定俗成的引用方法#魔法命令inline參數(shù)表示繪圖結(jié)果內(nèi)嵌到JupyterNotebook頁面中,而auto參數(shù)則表示在單獨窗口繪圖%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() #見圖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.繪制散點圖2024/5/1138x=np.random.rand(100)y=np.random.rand(100)plt.scatter(x,y)plt.show()matplotlib方法與應(yīng)用5.繪制極坐標圖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è)置標題labels=計算機系,機械系,管理系,社科系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表示開始角度為90°plt.show() #見圖4-24其他數(shù)據(jù)可視化工具2024/5/1141pandas數(shù)據(jù)可視化模塊pandas中的Series和DataFrame對象自帶了繪圖函數(shù),可更方便地繪制常用圖形。對于DataFrame對象而言,由于其數(shù)值可包含多行和多列,繪圖時可同時根據(jù)多列數(shù)據(jù)繪制相應(yīng)圖形,繪圖高效且方便比較。pandas部分繪圖函數(shù)使用方法的示例如下:1.折線圖2024/5/1142importpandasaspds=pd.Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))s.plot()#見圖4-25df=pd.DataFrame(np.random.randn(10,4).cumsum(0), columns=[A,B,C,D], index=np.arange(0,100,10))df.plot()#見圖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)#繪制直方圖,注意直方圖反映的是對應(yīng)數(shù)據(jù)的頻數(shù),見圖4-28tips[tip_pct].plot.density() #繪制密度圖pandas數(shù)據(jù)可視化模塊4.箱形圖2024/5/1145macro=pd.read_csv(macrodata.csv)#使用pandas函數(shù)繪制箱形圖,DataFrame對象的plot函數(shù)的kind參數(shù)設(shè)置為"box"macro[["m1"]].plot(kind="box")#見圖4-30pyecharts數(shù)據(jù)可視化模塊1.pyecharts概述pyecharts是一個用于生成Echarts圖表的類庫,而Echarts是一個開源的數(shù)據(jù)可視化JavaScript庫,同時也是商業(yè)級數(shù)據(jù)圖表。一個純JavaScript的圖表庫可以流暢地在計算機和移動設(shè)備上運行。使用pyecharts可以讓開發(fā)者輕松地實現(xiàn)大數(shù)據(jù)的可視化。注意:●pyecharts是一個用于生成Echarts圖表的類庫。pyecharts分為v0.5.x和v1.x兩個大版本,版本不兼容?!裨贘upyterNotebook中使用pyecharts作圖時,渲染在JupyterNotebook中不顯示,原因是渲染圖形的Echarts的js靜態(tài)資源加載不出來。這也是pyecharts存在的問題使用pyecharts繪制圖形的基本語法如下:2024/5/1146pyecharts數(shù)據(jù)可視化模塊(1)對于v0.5.x版本,首先定義圖表的類型,接著添加圖表的各項數(shù)據(jù),最后生成html網(wǎng)頁:●frompyechartsimportchart_name?!駡D形對象.add()?!駡D形對象.render()。(2)對于v1.x版本:●創(chuàng)建/初始化圖形對象?!駡D形對象.render()。2024/5/1147pyecharts數(shù)據(jù)可視化模塊2.pyecharts應(yīng)用示例對于v0.5.x版本:2024/5/1148#v0.5.x版本frompyechartsimportBarv1=[70,85,95,64]str1=[數(shù)學,物理,化學,英語]bar1=Bar(testBar_theme,Theme)bar1.add(成績,str1,v1,is_more_utils=True)bar1.render()#見圖4-31pyecharts數(shù)據(jù)可視化模塊2.pyecharts應(yīng)用示例對于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="達標線=40")])).set_global_opts(title_opts=opts.TitleOpts(title=柱狀圖示例-銷量,subtitle=四個商家),xaxis_opts=opts.AxisOpts(name=商品),yaxis_opts=opts.AxisOpts(name=單位:件)))bar.render(柱狀圖.html)#見圖4-32seaborn數(shù)據(jù)可視化模塊seaborn是基于matplotlib開發(fā)的更易用的繪圖模塊,下面給出了seaborn部分繪圖函數(shù)及使用方式的示例程序。1.繪制條形圖2024/5/1150#繪制條形圖importseabornassnstips[tip_pct]=tips[tip]/(tips[total_bill]-tips[tip])tips.head()#seaborn條形圖中的黑線是誤差線,默認表示均值的置信區(qū)間sns.barplot(x=tip_pct,y=day,data=tips,orient=h)seaborn數(shù)據(jù)可視化模塊2.繪制直方圖seaborn的distplot集合了matplotlib的hist與核函數(shù)估計kdeplot的功能,增加了利用rugplot顯示分布觀測條與利用scipy庫的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)#新版本拆分成了兩個函數(shù),可通過kind參數(shù)設(shè)定圖形類型,缺省是直方圖sns.displot(data=values,bins=100,color=k)#見圖4-34seaborn數(shù)據(jù)可視化模塊3.繪制散點圖seaborn中有兩個主要功能用于可視化通過回歸確定的線性關(guān)系,其函數(shù)regplot和lmplot提供相關(guān)功能。兩個函數(shù)會繪制兩個變量(x和y)的散點圖,然后擬合回歸模型并
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 邊城書籍介紹課件
- 辯論賽培訓課件
- 車隊職工安全培訓課件
- 內(nèi)科主治醫(yī)師考試強化沖刺試題及答案
- 車隊冬季四防安全培訓課件
- 2026年四川低壓電工理論考試題庫及答案
- 酒店員工行為規(guī)范及獎懲制度
- 車間級安全培訓教學課件
- (2026)院感科年度培訓計劃(2篇)
- 車間電氣設(shè)備培訓課件
- 委內(nèi)瑞拉變局的背后
- 政府補償協(xié)議書模板
- 語文-吉林省2026屆高三九校11月聯(lián)合模擬考
- 2025年四川省高職單招模擬試題語數(shù)外全科及答案
- 2025年江蘇事業(yè)單位教師招聘體育學科專業(yè)知識考試試卷含答案
- 模擬智能交通信號燈課件
- 合肥市軌道交通集團有限公司招聘筆試題庫及答案2025
- 2.3《河流與湖泊》學案(第2課時)
- 工地臨建合同(標準版)
- GB/T 46275-2025中餐評價規(guī)范
- 2025至2030供水產(chǎn)業(yè)行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
評論
0/150
提交評論