




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Matplotlib、seaborn、pyecharts數據可視化基礎1seaborn基礎繪圖目錄Matplotlib基礎繪圖2pyecharts基礎繪圖31.掌握pyplot基礎語法(1)創建畫布與創建子圖在pyplot中,創建畫布以及創建并選擇子圖的函數/方法,其中各類函數和方法中的matplotilb.pyploy簡寫為plt,如下表。pyplot繪圖基礎語法與常用參數函數/方法名稱函數/方法作用plt.figure創建一個空白畫布,可以指定畫布大小、像素figure.add_subplot()創建并選中子圖,可以指定子圖的行數、列數和選中圖片的編號(2)添加畫布內容添加標題、添加坐標軸名稱、繪制圖形等步驟是并列的,是沒有先后順序的。在pyplot中,添加各類標簽和圖例的常用函數,如下表。pyplot繪圖基礎語法與常用參數函數名稱函數作用plt.title在當前圖形中添加標題,可以指定標題的名稱、位置、顏色、字體大小等參數plt.xlabel在當前圖形中添加x軸標簽,可以指定位置、顏色、字體大小等參數plt.ylabel在當前圖形中添加y軸標簽,可以指定位置、顏色、字體大小等參數在pyplot中,添加各類標簽和圖例的常用函數,如下表(續表)。pyplot繪圖基礎語法與常用參數函數名稱函數作用plt.xlim指定當前圖形x軸的范圍,只能確定一個數值區間,而無法使用字符串標識plt.ylim指定當前圖形y軸的范圍,只能確定一個數值區間,而無法使用字符串標識plt.xticks獲取或設置x軸的當前刻度位置和標簽plt.yticks獲取或設置y軸的當前刻度位置和標簽plt.legend指定當前圖形的圖例,可以指定圖例的大小、位置、標簽(3)保存與顯示圖形在pyplot中,主要用于保存和顯示圖形,常用函數只有兩個,如下表。pyplot繪圖基礎語法與常用參數函數名稱函數作用plt.savefig保存繪制的圖形,可以指定圖形的分辨率、邊緣的顏色等參數plt.show在本機顯示圖形2.設置pyplot的動態rc參數pyplot使用rc配置文件來自定義圖形的各種默認屬性,被稱為rc配置或rc參數。所有存儲在字典變量中的rc參數,都被稱為rcParams。在pyplot中,線條中常用的rc參數名稱、解釋與取值如下表。pyplot繪圖基礎語法與常用參數rc參數名稱解釋取值lines.linewidth線條寬度取0~10之間的數值,默認為1.5lines.linestyle線條樣式可取“-”“--”“-.”“:”4種。默認為“-”lines.marker線條上點的形狀可取“o”“D”“h”“.”“,”“S”等20種,默認為Nonelines.markersize點的大小取0~10之間的數值,默認為1lines.linestyle參數4中取值及意義如下表。lines.marker參數的20種取值及其所代表的意義如下表。pyplot繪圖基礎語法與常用參數lines.linestyle取值意義‘-’實線‘--’長虛線‘-.’點線‘:’短虛線lines.marker取值意義‘o’圓圈‘D’菱形‘h’六邊形1lines.marker參數的20種取值及其所代表的意義如下表(續表)。pyplot繪圖基礎語法與常用參數lines.marker取值意義‘H’六邊形2‘-’水平線‘8’八邊形‘p’五邊形‘,’像素‘+’加號‘None’無‘.’點lines.marker參數的20種取值及其所代表的意義如下表(續表)。pyplot繪圖基礎語法與常用參數lines.marker取值意義‘s’正方形‘*’星號‘d’小菱形‘v’一角朝下的三角形‘<’一角朝左的三角形‘>’一角朝右的三角形‘^’一角朝上的三角形‘|’豎線‘x’X1.繪制散點圖散點圖(ScatterDiagram)又稱為散點分布圖,是以一個特征為橫坐標,以另一個特征為縱坐標,利用坐標點(散點)的分布形態反映特征間的統計關系的一種圖形。散點圖可以提供兩類關鍵信息,具體內容如下。特征之間是否存在數值或數量的關聯趨勢,關聯趨勢是線性的還是非線性的。如果某一個點或某幾個點偏離大多數點,那么這些點就是離群值,通過散點圖可以一目了然,從而可以進一步分析這些離群值是否在建模分析中產生較大的影響。使用Matplotlib繪制進階圖形scatter函數的基本使用格式如下。在pyplot中,繪制散點圖的函數為scatter,scatter函數的常用參數及其說明,如下表。使用Matplotlib繪制進階圖形參數名稱參數說明x,y接收float或array。表示x軸和y軸對應的數據。無默認值s接收float或array。表示指定點的大小,若傳入一維數組,則表示每個點的大小。默認為Nonec接收顏色或array。表示指定點的顏色,若傳入一維數組,則表示每個點的顏色。默認為Nonemarker接收特定str。表示繪制的點的類型。默認為Nonealpha接收float。表示點的透明度。默認為Nonematplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,cmap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,*,edgecolors=None,plotnonfinite=False,data=None,**kwargs)2.繪制折線圖折線圖(LineChart)是一種將數據點按照順序連接起來的圖形,可以看作是將散點圖按照x軸坐標順序連接起來的圖形。在pyplot中繪制折線圖的函數為plot,plot函數的基本使用格式如下。使用Matplotlib繪制進階圖形matplotlib.pyplot.plot(*args,scalex=True,scaley=True,data=None,**kwargs)plot函數常用參數及其說明如下表。使用Matplotlib繪制進階圖形參數名稱參數說明x,y接收array。表示x軸和y軸對應的數據。無默認值scalex,scaley接收bool。表示這些參數確定視圖限制是否適合于數據限制。默認為Truedata接收可索引對象。表示具有標簽數據的對象。默認為Nonecolor接收特定str。表示指定線條的顏色。默認為Nonelinestyle接收特定str。表示指定線條類型。默認為“-”marker接收特定str。表示繪制的點的類型。默認為Nonealpha接收float。表示點的透明度。默認為None其中color參數的8種常用顏色的縮寫如下表。使用Matplotlib繪制進階圖形顏色縮寫代表的顏色b藍色g綠色r紅色c青色m品紅y黃色k黑色w白色3.繪制柱形圖柱形圖(BarChart)的核心思想是對比,常用于顯示一段時間內的數據變化或顯示各項之間的比較情況。pyplot中繪制柱形圖的函數為bar,bar函數的基本使用格式如下。使用Matplotlib繪制進階圖形matplotlib.pyplot.bar(x,height,width=0.8,bottom=None,*,align='center',data=None,**kwargs)bar函數的常用參數及其說明如下表。使用Matplotlib繪制進階圖形參數名稱參數說明x接收array或float。表示x軸數據。無默認值height接收array或float。表示指定柱形圖的高度。無默認值width接收array或float。表示指定柱形圖的寬度。默認為0.8bottom接收array或float。表示指定柱形的起始位置。默認為Nonealign接收str。表示整個柱形圖與x軸的對齊方式,可選center和edge。默認為centerdata接收可索引對象。表示具有標簽數據的對象。默認為None4.繪制餅圖餅圖(PieGraph)是將各項的大小與各項總和的比例顯示在一張“餅”中,以“餅”的大小來確定每一項數據的占比。pyplot中繪制餅圖的函數為pie,pie函數的基本使用格式如下。使用Matplotlib繪制進階圖形matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=0,radius=1,counterclock=True,wedgeprops=None,textprops=None,center=0,0,frame=False,rotatelabels=False,*,normalize=None,hatch=None,data=None)pie函數的常用參數及其說明如下表。使用Matplotlib繪制進階圖形參數名稱參數說明x接收array。表示用于繪制餅圖的數據。無默認值explode接收array。表示指定餅塊距離餅圖圓心的偏移距離。默認為Nonelabels接收list。表示指定每一項數據的標簽名稱。默認為Nonecolor接收特定str或包含顏色字符串的array。表示餅圖顏色。默認為Noneautopct接收特定str。表示指定數值的顯示方式。默認為Nonepctdistance接收float。表示每個餅圖切片的中心與autopct生成的文本之間的比率。默認為0.6labeldistance接收float。表示繪制的餅圖標簽離圓心的距離。默認為1.1radius接收float。表示餅圖的半徑。默認為15.繪制箱線圖箱線圖(Boxplot)也稱箱須圖,其繪制需使用常用的統計量,便能提供有關數據位置和分散情況的關鍵信息,尤其在比較不同特征時,更可表現其分散程度差異。pyplot中繪制箱線圖的函數為boxplot,boxplot函數的基本使用格式如下。使用Matplotlib繪制進階圖形matplotlib.pyplot.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,patch_artist=None,bootstrap=None,usermedians=None,conf_intervals=None,meanline=None,showmeans=None,showcaps=None,showbox=None,showfliers=None,boxprops=None,labels=None,flierprops=None,medianprops=None,meanprops=None,capprops=None,whiskerprops=None,manage_ticks=True,autorange=False,zorder=None,capwidths=None,*,data=None)boxplot函數的常用參數及其說明,如下表。使用Matplotlib繪制進階圖形參數名稱參數說明x接收array。表示用于繪制箱線圖的數據。無默認值notch接收bool。表示中間箱體是否有缺口。默認為Nonesym接收特定str。表示指定異常點形狀。默認為Nonevert接收bool。表示圖形是縱向或橫向。默認為Nonepositions接收array。表示圖形位置。默認為Nonewidths接收float或array。表示每個箱體的寬度。默認為Nonelabels接收sequence。表示指定每個數據集的標簽。默認為None1seaborn基礎繪圖目錄Matplotlib基礎繪圖2pyecharts基礎繪圖31.了解seaborn中的基礎圖形在seaborn庫繪制圖形之前需要掌握其繪圖基礎,包括基礎圖形、繪圖風格和調色板等。使用Matplotlib庫繪制圖形使用了較長的代碼,而使用seaborn庫繪制圖形僅僅用了幾行代碼即可達到相同的效果。seaborn庫與Matplotlib庫不同的是,seaborn庫無法靈活的定制圖形的風格。seaborn繪圖基礎2.了解seaborn的繪圖風格(1)主題樣式在seaborn庫中含有darkgrid(灰色背景+白網格)、whitegrid(白色背景+黑網格)、dark(僅灰色背景)、white(僅白色背景)和ticks(坐標軸帶刻度)5種預設的主題。darkgrid與whitegrid主題有助于在繪圖時進行定量信息的查找。dark與white主題有助于防止網格與表示數據的線條混淆ticks主題有助于體現少量特殊的數據元素結構。seaborn繪圖基礎使用set_style函數的基本使用格式如下。set_style函數的常用參數及其說明如下表。seaborn繪圖基礎seaborn.set_style(style=None,rc=None)參數名稱參數說明style接收str。表示設置的圖形主題風格,可選darkgrid,whitegrid,dark,white,ticks。默認為Nonerc接收dict。表示用于覆蓋預設seaborn樣式字典中的值的參數映射。默認為None(2)元素縮放在seaborn庫中通過set_context函數可以設置輸出圖片元素的大小尺寸。set_context函數的基本使用格式如下。set_context函數的常用參數及其說明如下表。seaborn繪圖基礎seaborn.set_context(context=None,font_scale=1,rc=None)參數名稱參數說明context接收str。表示設置的縮放類型,可選paper、notebook、talk,poster。默認為Nonefont_scale接收float。表示單獨的縮放因子以獨立縮放字體元素的大小。默認為1rc接收dict。表示參數映射以覆蓋預設的seaborn上下文字典中的值。默認為None(3)邊框控制在seaborn庫中,可以使用despine函數移除任意位置的邊框,調節邊框的位置,修剪邊框的長短。despine函數的基本使用格式如下。seaborn繪圖基礎seaborn.despine(fig=None,ax=None,top=True,right=True,left=False,bottom=False,offset=None,trim=False)despine函數的常用參數及其說明如下表。seaborn繪圖基礎參數名稱參數說明top接收bool。表示刪除頂部邊框。默認為Trueright接收bool。表示刪除右側邊框。默認為Trueleft接收bool。表示刪除左側邊框。默認為Falsebottom接收bool。表示刪除底部邊框。默認為Falseoffset接收int或dict。表示邊框與軸的距離。無默認值trim接收bool。表示將邊框限制為每個非指定軸上的最小和最大主刻度。默認為False3.熟悉seaborn的調色板顏色在可視化中非常重要,可用于代表各種特征,并且提高整個圖的觀賞性。如果有效的使用顏色,那么可以顯示數據中的圖案。如果顏色使用不當,那么將會隱藏數據中圖案。常用于調色板的函數及其作用如下表。seaborn繪圖基礎函數名稱函數作用diverging_palette用于創建離散調色板choose_diverging_palette啟動交互式小部件選擇不同的調色板,與diverging_palette函數功能相對應color_palette用于返回定義調色板的顏色列表或連續顏色圖set_palette用于設置調色板,為所有圖設置默認顏色周期常用于調色板的函數及其作用如下表。seaborn繪圖基礎函數名稱函數作用hls_palette用于控制調色板顏色的亮度和飽和xkcd_palette使用xkcd顏色中的顏色名稱創建調色板cubehelix_palette用于創建連續調色板light_palette用于創建顏色從淺色到深色的連續調色板dark_palette用于創建顏色從深色到深色混合的連續調色板choose_light_palette啟動一個交互式小部件以創建一個淺色連續調色板choose_dark_palette啟動交互式小部件以創建深色連續調色板(1)定性調色板當需要區分沒有固有排序的數據離散區塊時,定性(或分類)調色板是較佳選擇。在導入seaborn庫后,默認顏色周期將更改為一組10種顏色。使用圓形顏色系統,在需要使用比默認顏色循環中設置的顏色更多時,常使用圓形顏色系統設置圖案顏色。使用xkcd顏色,xkcd是對隨機的RGB顏色空間的命名,產生了954個顏色,可以隨時通過xkcd_rgb字典裝飾器調用,也可以通過xkcd_palette函數自定義調色板。seaborn繪圖基礎(2)連續調色板當數據存在一定順序時,通常使用連續映射,連續調色板的設置方法如下。ColorBrewer庫。cubehelix調色板。自定義連續調色板。seaborn繪圖基礎在ColorBrewer庫中,連續調色板名稱及漸變順序如下表。seaborn繪圖基礎名稱漸變順序YlOrRd黃橙紅YlOrBr黃橙棕YlGnBu黃綠藍YlGn黃綠Reds紅RdPu紅紫Purples紫PuRd紫紅PuBuGn紫藍綠在ColorBrewer庫中,連續調色板名稱及漸變順序如下表(續表)。seaborn繪圖基礎名稱漸變順序PuBu紫藍OrRd橙紅Oranges橙色Greys灰色Greens綠GnBu綠藍BuP藍紫BuGn藍綠Blues藍cubehelix_palette函數的基本使用格式如下。cubehelix_palette函數的常用參數及其說明如下表。seaborn繪圖基礎參數名稱參數說明n_color接收int。表示調色板中顏色數目。默認為6start接收0~3的float。表示指定開始時的色調。默認為0rot接收float。表示指定在調色板旋轉范圍(次數)。默認為0.4light接收0~1的float。表示顏色明亮程度。默認為0.85dark接收0~1的float。表示顏色深暗程度。默認為0.15as_cmap接收bool。表示是否返回Matplotlib顏色映射對象。默認為Falseseaborn.cubehelix_palette(n_colors=6,start=0,rot=0.4,gamma=1.0,hue=0.8,light=0.85,dark=0.15,reverse=False,as_cmap=False)(3)離散調色板離散調色板用于當數據的高值和低值都有非常重要的數據意義的情況下,數據中通常有一個定義明確的中點。選擇離散調色板的規則是,起始色調和結束色調具有相似的亮度和飽和度,并且經過色調偏移后在中點處和諧的相遇。離散調色板的設置情況如下。默認中較好的離散調色板自定義離散調色板seaborn繪圖基礎在seaborn庫中可以使用diverging_palette函數(及choose_diverging_palette函數啟動交互式小部件)為離散數據創建自定義調色板。diverging_palette函數的基本使用格式如下。seaborn繪圖基礎seaborn.diverging_palette(h_neg,h_pos,s=75,l=50,sep=1,n=6,center='light',as_cmap=False)diverging_palette函數的常用參數及其說明如下表。seaborn繪圖基礎參數名稱參數說明h_neg接收0~359之間的float。表示調色板負面范圍色調。無默認值h_pos接收0~359之間的float。表示調色板正面范圍色調。無默認值s接收0~100之間的float。表示兩個范圍色調飽和度。默認為75l接收0~100之間的float。表示兩個范圍色調亮度。默認為50n接收int。表示調色板顏色數目。默認值為6center接收str。表示調色板中心是明或暗,可選light、dark。默認為lightas_cmap接收bool。表示是否返回Matplotlib顏色映射對象。默認為False(4)設置默認調色板color_palette函數還有一個與之相對應的函數,即set_palette函數。set_palette函數接受與color_palette函數相同的參數,可更改默認的Matplotlib參數,更改后所有的調色板配置將變為設置的調色板配置。seaborn繪圖基礎熱力圖(HeatChart)通過顏色的深淺表示數據的分布,顏色越淺數據越大,可以一眼就分辨出數據的分布情況,非常方便。在seaborn庫中,可以使用heatmap函數繪制熱力圖。heatmap函數的基本使用格式如下。使用seaborn繪制基礎圖形seaborn.heatmap(data,vmin=None,vmax=None,cmap=None,center=None,robust=False,annot=None,fmt='.2g',annot_kws=None,linewidths=0,linecolor='white',cbar=True,cbar_kws=None,cbar_ax=None,square=False,xticklabels='auto',yticklabels='auto',mask=None,ax=None,**kwargs)heatmap函數的主要參數及說明如下表。使用seaborn繪制基礎圖形參數名稱參數說明data接收可轉換為ndarray的二維矩形數據集。表示用于繪圖的數據集。無默認值vmin,vmax接收float。表示顏色映射的值的范圍。默認為Nonecmap接收色彩映射或顏色列表。表示數值到顏色空間的映射。默認為Nonecenter接收float。表示以0為中心發散顏色。默認為Nonerobust接收bool。如果為True且vmin或vmax為None,那么則使用魯棒分位數表示映射范圍。默認為Falseheatmap函數的主要參數及說明如下表(續表)。使用seaborn繪制基礎圖形參數名稱參數說明annot接收bool或矩形數據集。表示是否在每個單元格顯示數值。默認為Nonefmt接收str。表示添加注釋時使用的字符串格式代碼。默認為.2glinewidths接收float。表示劃分每個單元格的線寬。默認為0linecolor接收str。表示劃分每個單元的線條顏色。默認為whitesquare接收bool。表示是否使每個單元格為方形。默認為False1seaborn基礎繪圖目錄Matplotlib基礎繪圖2pyecharts基礎繪圖31.了解初始配置項初始配置項是在初始化對象中進行配置的,可以設置畫布的長與寬、網頁標題、圖表主題、背景色等。初始配置項是通過options模塊中的InitOpts類實現的,可以將init_opts作為參數傳遞。InitOpts類的基本使用格式如下。pyecharts繪圖基礎classInitOpts(width='900px',height='500px',chart_id=None,renderer=RenderType.CANVAS,page_title='Awesome-pyecharts',theme='white',bg_color=None,js_host='',animation_opts=AnimationOpts())InitOpts類的部分參數及其說明如下表。pyecharts繪圖基礎參數名稱參數說明width接收str。表示圖表畫布寬度。默認為900pxheight接收str。表示圖表畫布高度。默認為500pxchart_id接收str。表示圖表ID,圖表唯一標識,可用于在多個圖表合并時進行圖表之間的區分。默認為Nonerenderer接收str。表示渲染風格,可選canvas或svg。默認為canvaspage_title接收str。表示網頁標題。默認為Awesome-pyechartstheme接收str。表示圖表主題。默認為whitebg_color接收str。表示圖表背景顏色。默認為None2.了解系列配置項(1)文字樣式配置項文字樣式配置項是通過options模塊中的TextStyleOpts類實現的,可以將text_style_opts作為參數傳遞給set_series_opts()方法。TextStyleOpts類的基本使用格式如下。pyecharts繪圖基礎classTextStyleOpts(color=None,font_style=None,font_weight=None,font_family=None,font_size=None,align=None,vertical_align=None,line_height=None,background_color=None,border_color=None,border_width=None,border_radius=None,padding=None,shadow_color=None,shadow_blur=None,width=None,height=None,rich=None)TextStyleOpts類的部分參數及其說明如下表。pyecharts繪圖基礎參數名稱參數說明color接收str。表示文字顏色。默認為Nonefont_style接收str。表示文字字體風格,可選normal、italic、oblique。默認為Nonefont_weight接收str。表示主標題字體的粗細,可選normal、bold、bolder、lighter。默認為Nonefont_family接收str。表示文字的字體系列。默認為Nonefont_size接收Numeric。表示文字的字體大小。默認為NoneTextStyleOpts類的部分參數及其說明如下表(續表)。pyecharts繪圖基礎參數名稱參數說明align接收str。表示文字水平對齊方式。默認為Nonevertical_align接收str。表示文字垂直對齊方式。默認為Noneline_height接收str。表示行高。默認為Nonebackground_color接收str。表示文字塊背景色。默認為Noneborder_color接收str。表示文字塊邊框顏色。默認為Noneborder_width接收Numeric。表示文字塊邊框寬度。默認為None(2)標簽配置項標簽配置項是通過options模塊中的LabelOpts類實現的,可以將label_opts作為參數傳遞給set_series_opts()方法。LabelOpts類的基本使用格式如下。pyecharts繪圖基礎classLabelOpts(is_show=True,position='top',color=None,distance=None,font_size=12,font_style=None,font_weight=None,font_family=None,rotate=None,margin=8,interval=None,horizontal_align=Nonevertical_align=None,formatter=None,background_color=None,border_color=None,border_width=None,border_radius=None,padding=None,text_width=None,text_height=None,overflow=None,rich=None)LabelOpts類的部分參數名稱及其說明如下表。pyecharts繪圖基礎參數名稱參數說明is_show接收bool。表示是否顯示標簽。默認為Trueposition接收str、Sequence。表示標簽的位置。默認為topcolor接收str。表示文字的顏色。默認為Nonefont_family接收str。表示文字的字體系列。默認為Nonefont_size接收Numeric。表示文字的字體大小。默認為12font_weight接收str。表示文字字體的粗細,可選normal、bold、bolder、lighter。默認為Nonerotate接收Numeric。表示標簽旋轉角度,從-90度到90度。默認為Nonehorizontal_align接收str。表示文字水平對齊方式,默認為None(3)線樣式配置項線樣式配置項是通過options模塊中的LineStyleOpts類實現的,可以將line_style_opts作為參數傳遞給set_series_opts()方法。LineStyleOpts類的基本使用格式如下。pyecharts繪圖基礎classLineStyleOpts(is_show=True,width=1,opacity=1,curve=0,type_='solid',color=None)LineStyleOpts類的參數及其說明如下表。pyecharts繪圖基礎參數名稱參數說明is_show接收bool。表示是否顯示線。默認為Truewidth接收Numeric。表示線的寬度。默認為1opacity接收Numeric。表示圖形透明度,支持從0到1的數字。默認為1curve接收Numeric。表示線的彎曲度,0表示完全不彎曲。默認為0type_接收str。表示線的類型,常用solid、dashed、dotted。默認為solidcolor接收str。表示線的顏色。默認為None(4)標記點配置項標記點配置項是通過options模塊中的MarkPointOpts類實現的,可以將markpoint_opts作為參數傳遞給set_series_opts()方法。MarkPointOpts類的基本使用格式如下。pyecharts繪圖基礎classMarkPointOpts(data=None,symbol=None,symbol_size=None,label_opts=LabelOpts(position='inside',color='#fff')MarkPointOpts類的參數及其說明如下表。pyecharts繪圖基礎參數名稱參數說明data接收Sequence。表示標記點數據。默認為Nonesymbol接收str。表示標記的圖形,提供的標記類型包括circle、rect、roundrect、triangle、diamond、pin、arrow、None。默認為Nonesymbol_size接收Numeric。表示標記的大小,可以設置成單一的數字,如10;也可以使用數組分開表示寬和高,例如,[20,10]表示標記寬為20,高為10。默認為None3.了解全局配置項(1)標題配置項標題配置項是通過options模塊中的TitleOpts類實現的,可以將title_opts作為參數傳遞給set_global_opts()方法。TitleOpts類的基本使用格式如下。pyecharts繪圖基礎classTitleOpts(is_show=True,title=None,title_link=None,title_target=None,subtitle=None,subtitle_link=None,subtitle_target=None,pos_left=None,pos_right=None,pos_top=None,pos_bottom=None,padding=5,item_gap=10,text_align="auto",text_vertical_align="auto",is_trigger_event=False,title_textstyle_opts=None,subtitle_textstyle_opts=None)TitleOpts類的部分參數及其說明如下表。pyecharts繪圖基礎參數名稱參數說明is_show接收bool。表示是否顯示標題組件。默認為Truetitle接收str。表示主標題文本,支持使用\n換行。默認為Nonetitle_link接收str。表示主標題跳轉URL鏈接。默認為Nonetitle_target接收str。表示主標題跳轉鏈接方式,可選self、blank,self表示當前窗口打開,blank表示新窗口打開。默認為Nonesubtitle接收str。表示副標題文本,支持使用\n換行。默認為Nonesubtitle_link接收str。表示副標題跳轉URL鏈接。默認為Nonesubtitle_target接收str。表示副標題跳轉鏈接方式。默認為Noneitem_gap接收Numeric。表示主副標題之間的間距。默認為10title_textstyle_opts接收dict。表示主標題字體樣式配置項。默認為Nonesubtitle_textstyle_opts接收dict。表示副標題字體樣式配置項。默認為None(2)圖例配置項圖例配置項是通過options模塊中的LegendOpts類實現的,可以將legend_opts作為參數傳遞給set_global_opts()方法。LegendOpts類的基本使用格式如下。pyecharts繪圖基礎classLegendOpts(type_=None,selected_mode=None,is_show=True,pos_left=None,pos_right=None,pos_top=None,pos_bottom=None,orient=None,align=None,padding=5,item_gap=10,item_width=25,item_height=14,inactive_color=None,textstyle_opts=None,legend_icon=None,background_color="transparent",border_color="#ccc",border_width=1,border_radius=0,page_button_item_gap=5,page_button_gap=None,page_button_position="end",page_formatter="{current}/{total}",page_icon=None,page_icon_color="#2f4554",page_icon_inactive_color="#aaa",page_icon_size=15,is_page_animation=None,page_animation_duration_update=800,selector=False,selector_position="auto",selector_item_gap=7,selector_button_gap=10)LegendOpts類的參數及其說明如下表。pyecharts繪圖基礎參數名稱參數說明type_接收str。表示圖例的類型,可選plain、scroll,plain表示普通圖例,scroll表示可滾動翻頁的圖例。默認為Noneis_show接收bool。表示是否顯示圖例組件,默認為Trueorient接收str。表示圖例列表的布局朝向,可選horizontal、vertical。默認為Noneitem_gap接收int。表示圖例每項之間的間隔。默認為10pos_left接收str、Numeric。表示圖例組件離容器左側的距離。默認為Nonepos_right接收str、Numeric。表示圖例組件離容器右側的距離。默認為Nonepos_top接收str、Numeric。表示圖例組件離容器上側的距離。默認為Nonepos_bottom接收str、Numeric。表示圖例組件離容器下側的距離。默認為None(3)坐標軸配置項坐標軸配置項是通過options模塊中的AxisOpts類實現的,可以將xaxis_opts或yaxis_opts作為參數傳遞給set_global_opts()方法。AxisOpts類的基本使用格式如下。pyecharts繪圖基礎classAxisOpts(type_=None,name=None,is_show=True,is_scale=False,is_inverse=False,name_location='end',name_gap=15,name_rotate=None,interval=None,grid_index=0,position=None,offset=0,split_number=5,boundary_gap=None,min_=None,max_=None,min_interval=0,max_interval=None,axisline_opts=None,axistick_opts=None,axislabel_opts=None,axispointer_opts=None,name_textstyle_opts=None,splitarea_opts=None,splitline_opts=SplitLineOpts(),minor_tick_opts=None,minor_split_line_opts=None)AxisOpts類的部分參數及其說明如下表。pyecharts繪圖基礎參數名稱參數說明type_接收str。表示坐標軸類型,可選value、category、time、log,value表示數值軸,適用于連續數據;category表示類目軸,適用于離散的類目數據;time表示時間軸,適用于連續的時序數據;log表示對數軸,適用于對數數據。默認為Nonename接收str。表示坐標軸名稱。默認為Noneis_show接收bool。表示是否顯示x坐標軸。默認為Trueis_inverse接收bool。表示是否反向坐標軸。默認為Falsename_gap接收Numeric。表示坐標軸名稱與軸線之間的距離。默認為15AxisOpts類的部分參數及其說明如下表(續表)。pyecharts繪圖基礎參數名稱參數說明name_rotate接收Numeric。表示坐標軸名字旋轉角度值。默認為Noneposition接收str。表示x軸的位置,可選top、bottom,top表示在上側,bottom表示在下側。默認為Nonesplit_number接收Numeric。表示坐標軸的分割段數。默認為5min_接收str、Numeric。表示坐標軸刻度最小值。默認為Nonemax_接收str、Numeric。表示坐標軸刻度最大值。默認為None1.繪制3D散點圖3D散點圖(3DScatter)與基本散點圖類似,區別主要是3D散點圖是在三維空間的散點圖,基本散點圖是在二維平面上的散點圖。Scatter3D類的基本使用格式如下。使用pyecharts繪制交互式圖形classScatter3D(init_opts=opts.InitOpts()).add(series_name,data,grid3d_opacity=1,shading=None,itemstyle_opts=None,xaxis3d_opts=opts.Axis3DOpts(),yaxis3d_opts=opts.Axis3DOpts(),zaxis3d_opts=opts.Axis3DOpts(),grid3d_opts=opts.Grid3DOpts(),encode=None).set_series_opts().set_global_opts()Scatter3D類的add()方法常用參數及其說明如下表。使用pyecharts繪制交互式圖形參數名稱參數說明series_name接收str,表示系列名稱。無默認值data接收Sequence,表示系列數據,每一行是一個數據項,每一列表示一個維度的數據。無默認值grid3d_opacity接收float。表示3D笛卡兒坐標系的透明度(點的透明度)。默認為1,表示完全不透明xaxis3d_opts表示添加x軸數據項yaxis3d_opts表示添加y軸數據項zaxis3d_opts表示添加z軸數據項2.繪制漏斗圖漏斗圖(FunnelChart)也稱倒三角圖,漏斗圖將數據呈現為幾個階段,每個階段的數據都是整體的一部分,從一個階段到另一個階段數據自上而下逐漸下降。在pyecharts庫中,可使用Funnel類繪制漏斗圖。Funnel類的基本使用格式如下。使用pyecharts繪制交互式圖形classFunnel(init_opts=opts.InitOpts()).add(series_name,data_pair,is_selected=True,color=None,sort_='descending',gap=0,label_opts=opts.LabelOpts(),tooltip_opts=None,itemstyle_opts=None).set_series_opts().set_global_opts()Funnel類的常用參數及其說明如下表。使用pyecharts繪制交互式圖形參數名稱參數說明series_name接收str,表示系列名稱,可用于顯示tooltip,以及篩選legend圖例。無默認值data_pair接收Sequence,表示數據項,格式為[(鍵1,值1),(鍵2,值2)]。無默認值is_selected接收bool,表示是否選中圖例。默認為Truecolor接收str,表示系列名稱顏色。默認為Nonesort_接收str,表示數據排序,可以取ascending、descending、None(按data順序)。默認為descendinggap接收Numeric,表示數據圖形間距。默認為03.繪制詞云圖詞云圖(WordCloud)可對文字中出現頻率較高的“關鍵詞”予以視覺上的突出,形成“關鍵詞云層”或“關鍵詞渲染”。在pyecharts庫中,可使用WordCloud類繪制詞云圖。WordCloud類的基本使用格式如下。使用pyecharts繪制交互式圖形classWordCloud(init_opts=opts.InitOpts()).add(series_name,data_pair,shape='circle',mask_image=None,word_gap=20,word_size_range=None,rotate_step=45,pos_left=None,pos_top=None,pos_right=None,pos_bottom=None,width=None,height=None,is_draw_out_of_bound=False,tooltip_opts=None,textstyle_opts=None,emphasis_shadow_blur=None,emphasis_shadow_color=None).set_series_opts().set_global_opts()WordCloud類的常用參數及其說明如下表。使用pyecharts繪制交互式圖形參數名稱參數說明series_name接收str,表示系列名稱,用于tooltip的顯示,legend的圖例篩選。無默認值data_pair接收Sequence,表示系列數據項,形如[(word1,count1),(word2,count2)]。無默認值shape接收str,表示詞云圖輪廓,可選circle、cardioid、diamond、triangle-forward、triangle、pentagon。默認是circlemask_image接收str,表示自定義的圖片(目前支持jpg、jpeg、png、ico的格式)。默認為Noneword_gap接收Numeric,表示單詞間隔。默認為20word_size_range接收Numeric序列,表示單詞字體大小范圍。默認為Nonerotate_step接收Numeric,表示旋轉單詞角度。默認為45WordCloud類的常用參數及其說明如下表(續表)。使用pyecharts繪制交互式圖形參數名稱參數說明pos_left接收str,表示距離左側的距離。默認為Nonepos_top接收str,表示距離頂部的距離。默認為Nonepos_right接收str,表示距離右側的距離。默認為Nonepos_bottom接收str,表示距離底部的距離。默認為Nonewidth接收str,表示詞云圖的寬度。默認為Noneheight接收str,表示詞云圖的高度。默認為Noneis_draw_out_of_bound接收bool,表示是否允許詞云圖的數據展示在畫布范圍之外。默認為False本章介紹了pyplot繪圖的基本語法和常用參數,并通過Matplotlib庫繪制體現特征間相關關系的散點圖、體現特征間趨勢關系的折線圖、體現特征內部數據分布的柱形圖和餅圖,以及體現特征內部數據分散情況的箱線圖。介紹了seaborn庫的基礎圖形、繪圖風格和調色板,并通過seaborn庫繪制熱力圖。最后介紹了pyecharts繪圖的初始配置項、系列配置項和全局配置項,并介紹了3D散點圖、漏斗圖和詞云圖交互式圖形的繪制方法。小結使用scikit-learn構建模型目錄1構建并評價聚類模型使用sklearn轉換器處理數據2構建并評價分類模型3構建并評價回歸模型4加載datasets模塊中的數據集數據集加載函數數據集任務類型數據集加載函數數據集任務類型load_boston回歸load_breast_cancer分類、聚類fetch_california_housing回歸load_iris分類、聚類load_digits分類load_wine分類load_diabetes回歸load_linnerud回歸sklearn庫的datasets模塊集成了部分數據分析的經典數據集,讀者可以使用這些數據集進行數據預處理、建
模等操作,以及熟悉sklearn的數據處理流程和建模流程。datasets模塊常用數據集的加載函數及其解釋,如下表所示。
使用sklearn進行數據預處理時需要用到sklearn提供的統一接口——轉換器(Transformer)。加載datasets模塊中的數據集fromsklearn.datasetsimportload_diabetes#加載diabetes數據集diabetes=load_diabetes()#將數據集賦值給diabetes變量print('diabetes數據集的長度為:',len(diabetes))#使用len函數查看數據集長度print('diabetes數據集的類型為:',type(diabetes))#使用type函數查看數據集類型diabetes數據集的長度為:8diabetes數據集的類型為:<class'sklearn.utils.Bunch'>
如果需要加載某個數據集,那么可以將對應的函數賦值給某個變量。加載diabetes數據集,如以下代碼。加載datasets模塊中的數據集diabetes_data=diabetes['data']#獲取數據集的數據diabetes_target=diabetes['target']#獲取數據集的標簽diabetes_names=diabetes['feature_names']#獲取數據集的特征名diabetes_desc=diabetes['DESCR']#獲取數據集的描述信息查看對應信息只需print()輸入對應變量名即可加載后的數據集可以視為一個字典,幾乎所有的sklearn數據集均可以使用如下屬性分別獲取數據集的數據、標簽、特征名稱和描述信息。datatargetfeature_namesDESCR獲取sklearn自帶數據集的內部信息,如以下代碼。將數據集劃分為訓練集和測試集
在數據分析過程中,為了保證模型在實際系統中能夠起到預期作用,一般需要將總樣本分劃分成獨立的3
部分如下。訓練集(trainset)驗證集(validationset)測試集(testset)
典型的劃分方式如下。
訓練集數量,占總樣本數量的50%。
驗證集數量,占總樣本數量的25%。
測試集數量,占總樣本數量的25%。用于估計模型用于確定網絡結構或控制模型復雜程度的參數用于檢驗最優模型的性能將數據集劃分為訓練集和測試集當總樣本數據較少時,使用上面的方法將樣本數據劃分為3部分將會不合適。常用的方法是留少部分樣本數據做測試集,然后對其余N個樣本采用K折交叉驗證法。其基本步驟如下。
將樣本打亂。
均勻分成K份。
輪流選擇其中K-1份做訓練,剩余的一份作為驗證集。
計算預測誤差平方和。
將K次的預測誤差平方和的均值作為選擇最優模型結構的依據。將數據集劃分為訓練集和測試集
在sklearn的model_selection模塊中提供了train_test_split函數,可實現對數據集進行拆分,train_test_split函數
的基本使用格式如下。train_test_split函數是最常用的數據劃分方法,在model_selection模塊中還提供了其他數據集劃分的函數,如PredefinedSplit函數、ShuffleSplit函數等。可以通過查看官方文檔學習其使用方法。sklearn.model_selection.train_test_split(*arrays,test_size=None,train_size=None,random_state=None,shuffle=True,stratify=None)將數據集劃分為訓練集和測試集train_test_split函數的常用參數及其說明如下表所示。數值型數據類型說明*arrays接收list、numpy數組、scipy-sparse矩陣、Pandas數據幀。表示需要劃分的數據集。若為分類回歸,則分別傳入數據和標簽;若為聚類,則傳入數據。無默認值test_size接收float、int。表示測試集的大小。若傳入為float型參數值,則應介于0~1之間,表示測試集在總數據集中的占比;若傳入為int型參數值,則表示測試樣本的絕對數量。默認為Nonetrain_size接收float、int。表示訓練集的大小,傳入的參數值說明與test_size參數的參數值說明相似。默認為Nonerandom_state接收int。表示用于隨機抽樣的偽隨機數發生器的狀態。默認為Noneshuffle接收bool。表示在拆分數據集前是否對數據進行混洗。默認為Truestratify接收array。表示用于保持拆分前類的分布平衡。默認為None將數據集劃分為訓練集和測試集查看對應信息只需print()輸入對應變量名.shape即可train_test_split函數可分別將傳入的數據集劃分為訓練集和測試集。如果傳入的是一組數據集,那么生成的就是這一組數據集隨機劃分后的訓練集和測試集,總共兩組。如果傳入的是兩組數據集,則生成的訓練集和測試集分別兩組,總共4組。將diabetes數據集劃分為訓練集和測試集,如以下代碼。fromsklearn.model_selectionimporttrain_test_split#加載diabetes數據集diabetes_data_train,diabetes_data_test,diabetes_target_train,diabetes_target_test=\#定義變量名train_test_split(diabetes_data,diabetes_target,test_size=0.2,random_state=42)#調用函數劃分數據集使用sklearn轉換器進行數據預處理與降維為了幫助用戶實現大量的特征處理相關操作,sklearn將相關的功能封裝為sklearn轉換器。轉換器主要包括3個方法:fit()、transform()和fit_transform()。sklearn轉換器的3種方法及其說明如下表所示。方法名稱方法說明fit()主要通過分析特征和目標值來提取有價值的信息,這些信息可以是統計量、權值系數等transform()主要用于對特征進行轉換。從可利用信息的角度分為無信息轉換和有信息轉換。無信息轉換是指不利用任何其他信息進行轉換,如指數函數和對數函數轉換等。有信息轉換根據是否利用目標值向量又可分為無監督轉換和有監督轉換。無監督轉換指只利用特征的統計信息的轉換,如標準化和PCA降維等。有監督轉換指既利用了特征信息又利用了目標值信息的轉換,如通過模型選擇特征和LDA降維等fit_transform()即先調用fit()方法,然后調用transform()方法使用sklearn轉換器進行數據預處理與降維目前,使用sklearn轉換器能夠實現對傳入的NumPy數組進行如下處理。標準化處理。歸一化處理。二值化處理。PCA降維等操作。在第4章中,基于pandas庫介紹了標準化處理的原理、概念與方法。但是在數據分析過程中,各類與特征處理相關的操作都需要對訓練集和測試集分開進行,需要將訓練集的操作規則、權重系數等應用到測試集中。如果使用pandas,那么應用至測試集的過程相對煩瑣,使用sklearn轉換器可以解決這一困擾,因此需要持續學習新的技術和方法,從而提高工作效率和質量。使用sklearn轉換器進行數據預處理與降維sklearn除了提供離差標準化函數MinMaxScaler外,還提供了一系列數據預處理函數,如下表所示。函數名稱函數說明StandardScaler對特征進行標準差標準化Normalizer對特征進行歸一化Binarizer對定量特征進行二值化處理OneHotEncoder對定性特征進行獨熱編碼處理FunctionTransformer對特征進行自定義函數變換使用sklearn轉換器進行數據預處理與降維
sklearn除了提供基本的特征變換函數外,還提供了降維算法、特征選擇算法,這些算法的使用也是通過轉換器的方式進行的。sklearn的decomposition模塊中提供了PCA類,可實現對數據集進行PCA降維,PCA類的基本使用格式如下。classsklearn.decomposition.PCA(n_components=None,*,copy=True,whiten=False,svd_solver='auto',tol=0.0,iterated_power='auto',n_oversamples=10,power_iteration_normalizer='auto',random_state=None)使用sklearn轉換器進行數據預處理與降維PCA類常用參數及其說明如下表所示。參數名稱參數說明n_components接收int、float、'mle'。表示降維后要保留的特征緯度數目。若未指定參數值,則表示所有特征均會被保留下來;若傳入為int型參數值,則表示將原始數據降低到n個維度;若傳入為float型參數值,則將根據樣本特征方差來決定降維后的維度數目;若賦值為“mle”,則將會使用MLE算法來根據特征的方差分布情況自動選擇一定數量的主成分特征來降維。默認為Nonecopy接收bool。表示是否在運行算法時將原始訓練數據進行復制。若為True,則運行算法后原始訓練數據的值不會有任何改變;若為False,則運行算法后原始訓練數據的值將會發生改變。默認為Truewhiten接收bool。表示對降維后的特征進行標準化處理,使得特征具有相同的方差。默認為Falsesvd_solver接收str。表示使用的SVD算法,可選randomized、full、arpack、auto。randomized一般適用于數據量大,數據維度多,同時主成分數目比例又較低的PCA降維。full是使用SciPy庫實現的傳統SVD算法。arpack和randomized的適用場景類似,區別在于,randomized使用的是sklearn自己的SVD實現,而arpack直接使用了SciPy庫的sparseSVD實現。auto則代表PCA類會自動在上述3種算法中去權衡,選擇一個合適的SVD算法來降維。默認為auto目錄1構建并評價聚類模型使用sklearn轉換器處理數據2構建并評價分類模型3構建并評價回歸模型4使用sklearn估計器構建聚類模型聚類的輸入是一組未被標記的樣本,聚類根據數據自身的距離或相似度將它們劃分為若干組,劃分的原則是組內(內部)距離最小化,而組間(外部)距離最大化,如圖所示。使用sklearn估計器構建聚類模型常用的聚類算法及其類別如下表所示。算法類別包括的主要算法劃分(分裂)方法K-Means算法(K-平均)、K-MEDOIDS算法(K-中心點)和CLARANS算法(基于選擇的算法)層次分析方法BIRCH算法(平衡迭代歸約和聚類)、CURE算法(代表點聚類)和CHAMELEON算法(動態模型)基于密度的方法DBSCAN算法(基于高密度連接區域)、DENCLUE算法(密度分布函數)和OPTICS算法(對象排序識別)基于網格的方法STING算法(統計信息網絡)、CLIOUE算法(聚類高維空間)和WAVE-CLUSTER算法(小波變換)使用sklearn估計器構建聚類模型sklearn常用的聚類算法模塊cluster提供的聚類算法及其適用范圍如下表所示。算法名稱參數適用范圍距離度量K-Means簇數可用于樣本數目很大、聚類數目中等的場景點之間的距離Spectralclustering簇數可用于樣本數目中等、聚類數目較小的場景圖距離Wardhierarchicalclustering簇數可用于樣本數目較大、聚類數目較大的場景點之間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告效果評估監測協議3篇
- 小賣部承包合同范例3篇
- 入伙協議書格式合同3篇
- 年薪制勞動合同范本3篇
- 保溫板施工監控3篇
- 綠色IT與計算機硬件的環保設計考核試卷
- 紙質寵物用品市場趨勢與消費行為研究分析考核試卷
- 服務標準化與醫藥研發服務考核試卷
- 真空泵在石油化工中的應用考核試卷
- 2025年:勞動合同終止的多樣情形解析
- 2024華能四川能源開發有限公司下屬單位招聘筆試參考題庫附帶答案詳解
- 2025怎樣正確理解全過程人民民主的歷史邏輯、實踐邏輯與理論邏輯?(答案3份)
- 鋼結構高處作業安全管理
- JJF 2221-2025導熱系數瞬態測定儀校準規范
- 華為手機協議合同
- 甘肅省隴南市禮縣第六中學2024-2025學年八年級下學期第一次月考數學試卷(無答案)
- 公司兩班倒管理制度
- 完整版高中古詩文必背72篇【原文+注音+翻譯】
- 2025年武漢數學四調試題及答案
- 人教版小學四年級語文下冊2024-2025學年度第二學期期中質量檢測試卷
- 七年級下冊道德與法治(2025年春)教材變化詳細解讀
評論
0/150
提交評論