大數(shù)據(jù)爬取、清洗與可視化教程----第10章_第1頁
大數(shù)據(jù)爬取、清洗與可視化教程----第10章_第2頁
大數(shù)據(jù)爬取、清洗與可視化教程----第10章_第3頁
大數(shù)據(jù)爬取、清洗與可視化教程----第10章_第4頁
大數(shù)據(jù)爬取、清洗與可視化教程----第10章_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第10章 Pyecharts可視化 目錄10.1 Pyecharts簡介與安裝 10.1.1 Pyecharts簡介 10.1.2 Pyecharts安裝10.2 公共屬性設(shè)置 10.2.1 全局配置項(xiàng) 10.2.2 系列配置項(xiàng)10.3 二維圖像繪制 10.3.1 柱狀圖 10.3.2 折線圖 10.3.3 面積圖 10.3.4 漣漪散點(diǎn)圖 10.3.5 餅狀圖 10.3.6 漏斗圖10.4 三維圖像繪制 10.4.1 三維柱狀圖 10.4.2 三維散點(diǎn)圖 10.4.3 三維地圖10.5 Pyecharts實(shí)例第10章 Pyecharts可視化10.1 Pyecharts簡介與安裝10.1.1

2、 Pyecharts簡介 Pyecharts具有如下特性: 簡潔的API設(shè)計(jì),支持鏈?zhǔn)秸{(diào)用; 涵蓋30余種常見圖表,覆蓋面廣; 支持主流Notebook環(huán)境Jupyter Notebook和JupyterLab; 可輕松集成至Flask、Django等主流Web框架; 高度靈活的配置項(xiàng),可輕松搭配出精美的圖表; 詳細(xì)的文檔和示例,幫助開發(fā)者更快上手; 多達(dá)400余種地圖文件及原生的百度地圖,為地理數(shù)據(jù)可視化提供強(qiáng)有力的支持。10.1 Pyecharts簡介與安裝 10.1.1 Pyecharts簡介Pyecharts主要分為v0.5.x和v1兩個版本。需要注意的是,v0.5.x和v1版本之間是

3、不兼容的,v1是一個全新的版本,其中涉及的方法和對象均發(fā)生了較大的變化,本章以v1版本為例介紹Pyecharts的基本使用方法。使用Pyecharts繪制圖像的步驟如下: 實(shí)例一個具體類型圖表的對象; 為圖表添加通用的配置; 為圖表添加特定的配置; 添加具體數(shù)據(jù)及配置信息; 生成本地文件,如html、svg、jpeg、png、pdf、gid等格式的文件。 目前,流行的可視化工具種類繁多,表10-1通過適用性、動態(tài)性等方面對Matplotlib與Pyecharts進(jìn)行對比。10.1 Pyecharts簡介與安裝 10.1.1 Pyecharts簡介 特性MatplotlibPyecharts動態(tài)

4、性交互式靜態(tài)圖復(fù)雜度復(fù)雜度不高的圖表結(jié)構(gòu)復(fù)雜的圖表繪制結(jié)果手動導(dǎo)出直接生成多種格式圖像風(fēng)格學(xué)術(shù)理論數(shù)據(jù)工程展示適用性入門容易,高級圖形處理較復(fù)雜容易上手先修語言基礎(chǔ)PythonPython、JavaScript10.1 Pyecharts簡介與安裝 10.1.2 Pyecharts安裝 Pyecharts有多種安裝方法,也支持多種平臺,本節(jié)主要介紹在Windows平臺上的安裝方法。推薦通過pip工具來進(jìn)行在線安裝,命令如下: pip install pyecharts10.1 Pyecharts簡介與安裝 10.2 公共屬性設(shè)置 10.2.1 全局配置項(xiàng)全局配置項(xiàng)主要由標(biāo)題配置項(xiàng)、圖例配置項(xiàng)、

5、提示框配置項(xiàng)、視覺映射配置項(xiàng)等構(gòu)成全局配置項(xiàng)還包括初始化配置項(xiàng)、坐標(biāo)軸配置項(xiàng)、畫圖動畫配置項(xiàng)、原生圖像元素等。10.2 公共屬性設(shè)置 10.2.1 全局配置項(xiàng) 1初始化配置項(xiàng) 在Pyecharts中,初始化配置項(xiàng)被設(shè)計(jì)為class InitOpts,保存在class pyecharts.options.InitOpts包中。 名稱含義默認(rèn)值width圖表畫布寬度,長度單位900pxheight圖表畫布高度,長度單位500pxchart_id圖表 ID,圖表唯一標(biāo)識,用于在多圖表時區(qū)分Nonerenderer渲染風(fēng)格,可選canvas, svgRenderType.CANVASpage_titl

6、e網(wǎng)頁標(biāo)題Awesome-pyechartstheme圖表主題whitebg_color圖表背景顏色Nonejs_host遠(yuǎn)程 js host/assets/animation_opts畫圖動畫初始化配置AnimationOpts()10.2 公共屬性設(shè)置 10.2.1 全局配置項(xiàng) 2標(biāo)題配置項(xiàng) 在Pyecharts中,標(biāo)題配置項(xiàng)被設(shè)計(jì)為class TitleOpts,保存在class pyecharts.options.TitleOpts包中。 名稱含義默認(rèn)值title主標(biāo)題文本,支持使用n換行Nonesubtitle副標(biāo)題文本,支持使用n換行Nonepos_leftpos_rightpos

7、_toppos_bottomtitle 組件離容器一側(cè)(左、右、上、下)的距離;可以是具體像素值、相對于容器高寬的百分比,也可以是top、middle、bottom等自動對齊的內(nèi)容None名稱含義默認(rèn)值padding標(biāo)題內(nèi)邊距,單位px,接受數(shù)組分別設(shè)定上、右、下、左邊距5item_gap主副標(biāo)題之間的間距10title_textstyle_opts主標(biāo)題字體樣式配置項(xiàng)Nonesubtitle_textstyle_opts副標(biāo)題字體樣式配置項(xiàng)None10.2 公共屬性設(shè)置 10.2.1 全局配置項(xiàng) 3提示框配置項(xiàng) 在Pyecharts中,提示框配置項(xiàng)被設(shè)計(jì)為class,保存在class pye

8、charts.options.TooltipOpts包中名稱含義默認(rèn)值is_show是否顯示提示框組件,包括提示框浮層和axisPointerTruetrigger觸發(fā)類型,可選item、axis、noneitemaxis_pointer_type指示器類型,可選line、shadow、none、crosslineformatter標(biāo)簽內(nèi)容格式器,支持字符串模板和回調(diào)函數(shù)兩種形式,返回的字符串均支持用n換行Nonebackground_color提示框浮層的背景顏色Nonetextstyle_opts文字樣式配置項(xiàng)TextStyleOpts(font_size=14)10.2 公共屬性設(shè)置 1

9、0.2.1 全局配置項(xiàng) 4坐標(biāo)軸配置項(xiàng) 在Pyecharts中,坐標(biāo)軸配置項(xiàng)的應(yīng)用非常廣泛,它被設(shè)計(jì)為class,保存在class pyecharts.options.AxisOpts包中。 名稱含義默認(rèn)值type_坐標(biāo)軸類型,可選value、category、time、logNonename坐標(biāo)軸名稱Noneis_show是否顯示x軸Trueis_scale是否脫離0值比例。只在數(shù)值軸中(type: value)有效Falsename_rotate坐標(biāo)軸名字旋轉(zhuǎn),角度值Noneaxistick_opts坐標(biāo)軸刻度線配置項(xiàng)Noneaxislabel_opts坐標(biāo)軸標(biāo)簽配置項(xiàng)Nonesplitl

10、ine_opts分割線配置項(xiàng)SplitLineOpts()10.2 公共屬性設(shè)置 10.2.1 全局配置項(xiàng) 5視覺映射配置項(xiàng) 在Pyecharts中,視覺映射配置項(xiàng)被設(shè)計(jì)為class,保存在class pyecharts.options. VisualMapOpts包中。 名稱含義默認(rèn)值min_指定visualMapPiecewise組件的最小值0max_指定visualMapPiecewise組件的最大值100range_colorvisualMap組件過渡顏色Nonepos_leftpos_rightpos_toppos_bottomvisualMap組件離容器一側(cè)(左、右、上、下)的距離

11、??梢允蔷唧w像素值、相對于容器高寬的百分比,也可以是top、middle、bottom等自動對齊的內(nèi)容Noneorient如何放置visualMap組件,可選horizontal、verticalverticalbackground_colorvisualMap組件的背景色None10.2 公共屬性設(shè)置 10.2.2 系列配置項(xiàng) 1標(biāo)簽配置項(xiàng) 在Pyecharts中,標(biāo)簽配置項(xiàng)被設(shè)計(jì)為class,保存在class pyecharts.options.LabelOpts包中。 名稱含義默認(rèn)值is_show是否顯示標(biāo)簽Trueposition標(biāo)簽的位置??蛇xtop、left、right、botto

12、m、inside、insideLeft、insideRight、insideTop、insideBottom、insideTopLeft、insideBottomLeft、insideTopRight、insideBottomRighttopcolor文字的顏色Nonefont_size文字的字體大小12font_style文字字體的風(fēng)格,可選normal、italic、obliqueNonehorizontal_align文字水平對齊方式,可選left、center、rightNonevertical_align文字垂直對齊方式,可選top、middle、bottomNoneformatte

13、r標(biāo)簽內(nèi)容格式器,支持字符串模板和回調(diào)函數(shù)兩種形式,返回的字符串均支持用n換行None10.2 公共屬性設(shè)置 10.2.2 系列配置項(xiàng) 2分割線配置項(xiàng) 在Pyecharts中,分割線配置項(xiàng)被設(shè)計(jì)為class,保存在class pyecharts.options.SplitLineOpts包中。名稱含義默認(rèn)值is_show是否顯示分割線Falselinestyle_opts線風(fēng)格配置項(xiàng)LineStyleOpts()10.2 公共屬性設(shè)置 10.2.2 系列配置項(xiàng) 3文字樣式配項(xiàng)置 在Pyecharts中,文字樣式配置項(xiàng)被設(shè)計(jì)為class,保存在class pyecharts.options.Te

14、xtStyleOpts包中。 名稱含義默認(rèn)值color文字顏色Nonefont_style文字字體的風(fēng)格,可選normal、italic、obliqueNonefont_weight主標(biāo)題文字字體的粗細(xì),可選normal、bold、bolder、lighterNonefont_family文字的字體系列,可選serif、monospace、Arial、Courier New、Microsoft YaHeiNonefont_size文字的字體大小Nonealign文字水平對齊方式Nonepadding文字塊的內(nèi)邊距Nonerich自定義富文本樣式。利用富文本樣式,可以在標(biāo)簽中作出非常豐富的效果N

15、one10.3 二維圖像繪制 在Pyecharts中,具有豐富的二維圖形,如折線圖、面積圖、柱狀圖(條狀圖)、散點(diǎn)圖(氣泡圖)、餅狀圖(環(huán)形圖)、漏斗圖及力導(dǎo)向布局圖,同時支持任意維度的堆積和多圖表混合展現(xiàn)。 基本的圖表繪制過程如下: 導(dǎo)入相關(guān)的包,并準(zhǔn)備數(shù)據(jù)源; 初始化具體類型圖表; 使用add*()方法加載數(shù)據(jù)及相關(guān)配置項(xiàng); 使用set_global_opts()完成全局配置,set_series_opts()完成系列配置; 使用render()生成HTML文件。10.3 二維圖像繪制 10.3.1 柱狀圖 在Pyecharts中繪制柱狀圖,涉及以下幾個常用的方法。 (1)bar = Ba

16、r(init_opts=opt.InitOpts() 此方法用于初始化一個Bar對象,實(shí)現(xiàn)初始化設(shè)置。 (2)bar.add_xaxis() 此方法用于添加x軸數(shù)據(jù)attr。這是一個通用方法,在其他的圖表中也經(jīng)常使用。 10.3 二維圖像繪制 10.3.1 柱狀圖(3)bar.add_yaxis() 此方法用于添加y軸數(shù)據(jù),同時實(shí)現(xiàn)相關(guān)設(shè)置。參數(shù)說明: series_name:系列名稱,用于Tooltip浮動提示框的顯示,legend圖例篩選。 y_axis:系列數(shù)據(jù),可以為SequenceNumeric, opts.BarItem, dict is_selected:是否選中圖例,默認(rèn)為Tr

17、ue。 xaxis_index:使用的x軸的index,在單個圖表實(shí)例中存在多個x軸時有用。默認(rèn)為None。 yaxis_index:使用的y軸的index,在單個圖表實(shí)例中存在多個y軸時有用。默認(rèn)為None。 color:系列標(biāo)簽顏色。 stack:數(shù)據(jù)堆疊,同個類目軸上系列配置相同的數(shù)據(jù)類目可以堆疊放置。默認(rèn)為None。 category_gap:同一系列的柱間距離,默認(rèn)為類目間距的20%,可設(shè)固定值。 gap:不同系列的柱間距離,百分比數(shù)據(jù)。默認(rèn)為None。10.3 二維圖像繪制 10.3.1 柱狀圖(4)bar.render()此方法用于生成本地HTML文件,默認(rèn)會在當(dāng)前目錄生成ren

18、der.html文件,也可以傳入路徑參數(shù)和文件名,生成一個指定名稱的HTML文件。10.3 二維圖像繪制 10.3.1 柱狀圖from pyecharts import options as optsfrom pyecharts.charts import Barfrom mons.utils import JsCodefrom pyecharts.globals import ThemeTypeimport pandas as pdimport numpy as npfrom pandas import DataFrame,Seriesdata = pd.read_csv(film_orgi

19、n1.csv,encoding=ANSI)#讀取文件data_2 = data.groupby(scores)data_describe = data_2.describe()data_mean = data_describe.iloc:,1mean_values = data_mean.values:,0mean_index = data_mean.indexmean_index_new = mean_values_new = for i in range(len(mean_values):mean_index_new.append(mean_indexi)mean_values_new.a

20、ppend(mean_valuesi)bar = Bar()bar.add_xaxis(mean_index_new)bar.add_yaxis(mean_rank, mean_values_new)bar.render(mean_rank.html)10.3 二維圖像繪制 10.3.1 柱狀圖10.3 二維圖像繪制 10.3.2 折線圖 在Pyecharts中,可以新建Line對象繪制折線圖。Line對象中同樣存在add_yaxis()方法,用于添加y軸數(shù)據(jù),同時實(shí)現(xiàn)相關(guān)設(shè)置。add_yaxis()特殊參數(shù)說明: is_connect_nones:是否連接空數(shù)據(jù),空數(shù)據(jù)使用None填充。 s

21、ymbol:標(biāo)記的圖形。標(biāo)記類型包括circle、rect、roundRect、triangle、diamond、pin、arrow、none。 symbol_size:標(biāo)記的大小,可以是數(shù)字或者數(shù)組,默認(rèn)值為4。 is_smooth:是否平滑曲線,默認(rèn)為False。 is_step:是否顯示成階梯圖,默認(rèn)為False。 is_hover_animation:是否開啟hover在拐點(diǎn)標(biāo)志上的提示動畫效果,默認(rèn)為True。 z_level:折線圖所有圖形的zlevel值。默認(rèn)值為0。 z:折線圖所有圖形的z值,控制圖形的前后順序。z值小的圖形會被z值大的圖形覆蓋。z相比zlevel優(yōu)先級更低,而

22、且不會創(chuàng)建新的畫布。默認(rèn)值為0。10.3 二維圖像繪制 10.3.2 折線圖 from pyecharts import options as optsfrom mons.utils import JsCodefrom pyecharts.globals import ThemeTypefrom pyecharts.globals import SymbolTypeimport pyecharts.options as optsfrom pyecharts.charts import Lineimport pandas as pdimport numpy as npfrom pandas im

23、port DataFrame,Seriesdata = pd.read_csv(film_orgin1.csv,encoding=ANSI)#讀取文件data_2 = data.groupby(scores)data_describe = data_2.describe()data_mean = data_describe.iloc:,1data_max = data_describe.iloc:,7mean_values = data_mean.values:,0max_values = data_max.values:,0mean_index = data_mean.indexmean_i

24、ndex_new = mean_values_new = max_values_new = for i in range(len(mean_values):mean_index_new.append(str(mean_indexi)mean_values_new.append(int(mean_valuesi)max_values_new.append(max_valuesi)10.3 二維圖像繪制 10.3.2 折線圖c = ( Line() .set_global_opts( tooltip_opts=opts.TooltipOpts(is_show=False), xaxis_opts=

25、opts.AxisOpts(type_=category), yaxis_opts=opts.AxisOpts( type_=value, axistick_opts=opts.AxisTickOpts(is_show=True), splitline_opts=opts.SplitLineOpts(is_show=True), ), ) .add_xaxis(xaxis_data=mean_index_new) .add_yaxis( series_name=mean_rank, y_axis=mean_values_new, symbol=emptyCircle, is_symbol_sh

26、ow=True, label_opts=opts.LabelOpts(is_show=False), ) .add_yaxis( series_name=max_rank, y_axis=max_values_new, symbol=emptyCircle, is_symbol_show=True, label_opts=opts.LabelOpts(is_show=False), ) .render(zhexian_line.html)10.3 二維圖像繪制 10.3.2 折線圖 10.3 二維圖像繪制10.3.3 面積圖 面積圖又稱區(qū)域圖,數(shù)據(jù)通過兩個數(shù)軸表示,在圖中用線把一個個數(shù)據(jù)點(diǎn)連接

27、起來,數(shù)軸和這條線之間的區(qū)域通常用顏色或陰影進(jìn)行覆蓋,從而增加易讀性。這種圖形強(qiáng)調(diào)數(shù)量隨時間而變化的程度,也可用于引起人們對總值趨勢的注意,因此面積圖多用來比較兩個或以上多個類別。常見的面積圖有以下3種形式。 普通面積圖:顯示各種數(shù)值隨時間或類別變化的趨勢線。 堆積面積圖:顯示每個數(shù)值所占大小隨時間或類別變化的趨勢線。 百分比堆積面積圖:顯示每個數(shù)值所占百分比隨時間或類別變化的趨勢線。10.3 二維圖像繪制 10.3.3 面積圖面積圖的適用場景:適用于展示或者比較隨時間連續(xù)變化的程度、強(qiáng)調(diào)總量數(shù)據(jù)的場景、顯示部分與整體關(guān)系的場景等。 面積圖的優(yōu)勢:具有折線圖和柱狀圖的優(yōu)點(diǎn),比折線圖更能反映數(shù)據(jù)

28、信息。 面積圖的劣勢:不適用于多個數(shù)據(jù)系列的可視化。 在Pyecharts中,折線圖和面積圖使用相同的Line對象創(chuàng)建方法,當(dāng)設(shè)置opts.AreaStyleOpts()時,可將折線內(nèi)部以指定的顏色填充起來,即顯示為面積圖。10.3 二維圖像繪制 10.3.3 面積圖c = ( Line() .add_xaxis(mean_index_new) .add_yaxis(mean_rank,mean_values_new,is_smooth=True) .add_yaxis(max_rank,max_values_new,is_smooth=True) .set_series_opts( area

29、style_opts=opts.AreaStyleOpts(opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) .set_global_opts( title_opts=opts.TitleOpts(title=Line-面積圖(緊貼 Y 軸), xaxis_opts=opts.AxisOpts( axistick_opts=opts.AxisTickOpts(is_align_with_label=True), is_scale=False, boundary_gap=False, ), ) .render(boundary_g

30、ap.html)10.3 二維圖像繪制 10.3.3 面積圖10.3 二維圖像繪制 10.3.4 漣漪散點(diǎn)圖 在Pyecharts中,可以新建EffectScatter對象繪制漣漪散點(diǎn)圖。EffectScatter對象中同樣存在add_yaxis()方法,用于添加y軸數(shù)據(jù)EffectScatter對象可以使用漣漪特效配置項(xiàng)實(shí)現(xiàn)漣漪的特殊效果:effect_opts: Unionopts.EffectOpts, dict = opts.EffectOpts()漣漪特效配置項(xiàng)EffectOpts主要包含以下內(nèi)容,其中is_show、color、symbol_size屬性與上文類似,此處不再贅述。

31、brush_type:波紋的繪制方式,可選stroke和fill,針對Scatter類型有效。 scale:動畫中波紋的最大縮放比例,默認(rèn)值為2.5。 period:動畫的周期,單位為秒,默認(rèn)值為4。 symbol:特效圖形的標(biāo)記。標(biāo)記類型包括circle、rect、roundRect、triangle、diamond、pin、arrow、none。 trail_length:特效尾跡的長度。取01之間的值,數(shù)值越大,尾跡越長。默認(rèn)為None。10.3 二維圖像繪制 10.3.4 漣漪散點(diǎn)圖from pyecharts import options as optsfrom mons.utils

32、 import JsCodefrom pyecharts.globals import ThemeTypefrom pyecharts.charts import EffectScatterfrom pyecharts.globals import SymbolTypeimport pandas as pdimport numpy as npfrom pandas import DataFrame,Seriesdata = pd.read_csv(film_orgin1.csv,encoding=ANSI)#讀取文件data_2 = data.groupby(scores)data_descr

33、ibe = data_2.describe()data_mean = data_describe.iloc:,1mean_values = data_mean.values:,0mean_index = data_mean.indexmean_index_new = mean_values_new = 10.3 二維圖像繪制 10.3.4 漣漪散點(diǎn)圖for i in range(len(mean_values):mean_index_new.append(str(mean_indexi)mean_values_new.append(int(mean_valuesi)c = ( EffectSc

34、atter() .add_xaxis(mean_index_new) .add_yaxis(mean_rank,mean_values_new, symbol=SymbolType.ARROW) .set_global_opts(title_opts=opts.TitleOpts(title=EffectScatter-不同Symbol),xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True),yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOp

35、ts(is_show=True) .render(effectscatter_symbol.html)10.3 二維圖像繪制 10.3.4 漣漪散點(diǎn)圖10.3 二維圖像繪制10.3.5 餅狀圖 在Pyecharts中,可以新建Pie對象繪制餅狀圖。Pie對象中存在一個方法:add(),用于添加圖形中的數(shù)據(jù),同時實(shí)現(xiàn)相關(guān)設(shè)置。add()中的參數(shù)與add.yaxis()相似,這里僅提供特殊的參數(shù)說明 data_pair:系列數(shù)據(jù)項(xiàng),格式為(key1, value1), (key2, value2)。 radius:餅狀圖的半徑,數(shù)組的第一項(xiàng)是內(nèi)半徑,第二項(xiàng)是外半徑,默認(rèn)設(shè)置成百分比。 center

36、:餅狀圖的中心(圓心)坐標(biāo),數(shù)組的第一項(xiàng)是橫坐標(biāo),第二項(xiàng)是縱坐標(biāo)。默認(rèn)設(shè)置成百分比。 rosetype:是否展示成南丁格爾玫瑰圖,通過半徑區(qū)分?jǐn)?shù)據(jù)大小,有radius和area兩種模式。10.3 二維圖像繪制10.3.5 餅狀圖import pyecharts.options as optsfrom pyecharts.charts import Pieimport pandas as pdimport numpy as npfrom pandas import DataFrame,Seriesdata = pd.read_csv(film_orgin1.csv,encoding=ANSI)#

37、讀取文件data_2 = data.groupby(scores)data_describe = data_2.describe()data_mean = data_describe.iloc:,1mean_values = data_mean.values:,0mean_index = data_mean.indexmean_index_new = mean_values_new = for i in range(len(mean_values): mean_index_new.append(str(mean_indexi) mean_values_new.append(int(mean_v

38、aluesi)data_pair = list(z) for z in zip(mean_index_new, mean_values_new)data_pair.sort(key=lambda x: x1)10.3 二維圖像繪制10.3.5 餅狀圖c = ( Pie(init_opts=opts.InitOpts(width=1600px, height=800px, bg_color=#2c343c) .add( series_name=number, data_pair=data_pair, label_opts=opts.LabelOpts(is_show=False, positio

39、n=center), ) .set_global_opts( title_opts=opts.TitleOpts( title=Pie Pic, pos_left=center, pos_top=20, title_textstyle_opts=opts.TextStyleOpts(color=#fff), ), legend_opts=opts.LegendOpts(is_show=False), ) .set_series_opts( tooltip_opts=opts.TooltipOpts( trigger=item, formatter=a b: c (d%) ), label_op

40、ts=opts.LabelOpts(color=rgba(255, 255, 255, 0.3), ) .render(pie.html)10.3 二維圖像繪制10.3.5 餅狀圖10.3 二維圖像繪制10.3.5 餅狀圖在餅狀圖的繪制方案中,有一個繪制特例,即南丁格爾玫瑰圖。南丁格爾玫瑰圖又稱極區(qū)圖、雞冠花圖,是一種圓形的直方圖,一般用于表現(xiàn)不同項(xiàng)目之間的區(qū)別,并增強(qiáng)區(qū)別的表現(xiàn)力。由于該圖形通過面積代表不同的項(xiàng)目,而較小的差別體現(xiàn)在面積上,將呈現(xiàn)放大后的視覺差別。這種圖形在視覺上具備一定的創(chuàng)新性和美觀度。在使用餅狀圖繪制南丁格爾玫瑰圖時,需要增加屬性:rosetype,它分為radius和a

41、rea兩種模式。 radius:扇區(qū)圓心角展現(xiàn)數(shù)據(jù)的百分比,半徑展現(xiàn)數(shù)據(jù)的大小。 area:所有扇區(qū)圓心角相同,僅通過半徑展現(xiàn)數(shù)據(jù)大小。10.3 二維圖像繪制10.3.5 餅狀圖v= mean_index_newc = ( Pie() .add( , list(z) for z in zip(v, mean_values_new), radius=30%, 75%, center=25%, 50%, rosetype=radius, label_opts=opts.LabelOpts(is_show=False), ) .add( , list(z) for z in zip(v, mean_

42、values_new), radius=30%, 75%, center=75%, 50%, rosetype=area, ) .render(pie_rosetype.html)10.3 二維圖像繪制10.3.5 餅狀圖10.3 二維圖像繪制 10.3.6 漏斗圖 漏斗圖適用于業(yè)務(wù)流程比較規(guī)范、周期長、環(huán)節(jié)多的單流程單向分析。通過漏斗各環(huán)節(jié)業(yè)務(wù)數(shù)據(jù)的比較,能夠直觀地發(fā)現(xiàn)和說明問題所在的環(huán)節(jié),進(jìn)而作出決策。漏斗圖用梯形面積表示某個環(huán)節(jié)與上一個環(huán)節(jié)數(shù)值之間的差異。漏斗圖從上到下有邏輯上的順序關(guān)系,表現(xiàn)了隨著業(yè)務(wù)流程的推進(jìn)業(yè)務(wù)目標(biāo)完成的情況。 漏斗圖總是開始于一個100%的數(shù)量,結(jié)束于一個較小的數(shù)

43、量。 漏斗圖的適用場景是:含有分類數(shù)據(jù)或者連續(xù)數(shù)據(jù)的場景,如流量分析等。 漏斗圖的優(yōu)勢:可以體現(xiàn)明顯的縮減趨勢,清晰地展示業(yè)務(wù)流程中的薄弱環(huán)節(jié),并從中發(fā)現(xiàn)鏈條的瓶頸。 漏斗圖的劣勢:不適合表示無邏輯順序的分類對比。10.3 二維圖像繪制 10.3.6 漏斗圖在Pyecharts中,可以新建Funnel對象繪制漏斗圖。Funnel對象中也有add()方法,用于添加圖形中的數(shù)據(jù),同時實(shí)現(xiàn)相關(guān)設(shè)置,與Pie對象中的大部分參數(shù)相似,但是也存在一些特殊參數(shù): sort_:數(shù)據(jù)排序,取值范圍為ascending(升序)、descending(降序)、none,默認(rèn)為descending。 gap:數(shù)據(jù)圖形

44、間距,默認(rèn)值為0。10.3 二維圖像繪制 10.3.6 漏斗圖import pyecharts.options as optsfrom pyecharts.charts import Funnelimport pandas as pdimport numpy as npfrom pandas import DataFrame,Seriesdata = pd.read_csv(film_orgin1.csv,encoding=ANSI)#讀取文件data_2 = data.groupby(scores)data_describe = data_2.describe()data_mean = da

45、ta_describe.iloc:,1mean_values = data_mean.values:,0mean_index = data_mean.indexmean_index_new = mean_values_new = for i in range(len(mean_values): mean_index_new.append(str(mean_indexi) mean_values_new.append(int(mean_valuesi)10.3 二維圖像繪制 10.3.6 漏斗圖c = ( Funnel() .add( 商品, list(z) for z in zip(mean_

46、index_new, mean_values_new), label_opts=opts.LabelOpts(position=inside), ) .set_global_opts(title_opts=opts.TitleOpts(title=Funnel) .render(funnel.html)10.3 二維圖像繪制 10.3.6 漏斗圖10.4 三維圖像繪制 作為一款強(qiáng)大的可視化工具,Pyecharts在v1版本中,增加了Bar3D、Line3D、Scatter3D三種3D圖表。Pyecharts發(fā)揮了Python語言的特性,可以很好地實(shí)現(xiàn)豐富特效的數(shù)據(jù)可視化。 使用Pyechart

47、s進(jìn)行三維圖像設(shè)置時,Grid3Dopts、Axis3Dopts是常見的3D圖形配置項(xiàng)。需要注意的是,它們并不屬于全局配置項(xiàng)或者系列配置項(xiàng),它們僅適用于三維圖像繪制中。 在Pyecharts中,三維笛卡兒坐標(biāo)系配置項(xiàng)保存在class pyecharts.options.Grid3DOpts包中。10.4 三維圖像繪制名稱含義默認(rèn)值width三維笛卡兒坐標(biāo)系在三維場景中的寬度200height三維笛卡兒坐標(biāo)系在三維場景中的高度100depth三維笛卡兒坐標(biāo)系在三維場景中的深度80is_rotate是否開啟視角繞物體的自動旋轉(zhuǎn)查看Falserotate_speed物體自轉(zhuǎn)的速度。單位為角度/s,默

48、認(rèn)值為10,即36s轉(zhuǎn)一圈10rotate_sensitivity旋轉(zhuǎn)操作的靈敏度,值越大,越靈敏。支持使用數(shù)組分別設(shè)置橫向和縱向的旋轉(zhuǎn)靈敏度。如果設(shè)置為0,則無法旋轉(zhuǎn)110.4 三維圖像繪制 三維坐標(biāo)軸配置項(xiàng)保存在class pyecharts.options.Axis3DOpts包中 名稱含義默認(rèn)值data數(shù)據(jù)源,序列Nonetype_坐標(biāo)軸類型,可選value、category、time、logNonename坐標(biāo)軸名稱Nonename_gap坐標(biāo)軸名稱與軸線之間的距離,注意是三維空間的距離而非屏幕像素值20min_坐標(biāo)軸刻度最小值Nonemax_坐標(biāo)軸刻度最大值Nonesplitnum

49、坐標(biāo)軸的分割段數(shù),預(yù)估值,實(shí)際顯示的段數(shù)根據(jù)分割后坐標(biāo)軸刻度顯示的易讀程度進(jìn)行調(diào)整Noneinterval強(qiáng)制設(shè)置坐標(biāo)軸分割間隔None10.4 三維圖像繪制 10.4.1 三維柱狀圖 在Pyecharts中,可以新建Bar3D對象繪制三維柱狀圖。Bar3D對象中也有add()方法,用于添加圖形中的數(shù)據(jù),同時實(shí)現(xiàn)相關(guān)設(shè)置。參數(shù)說明: series_name:系列名稱,用于Tooltip浮動提示框的顯示,legend圖例篩選。 data:系列數(shù)據(jù),序列。 shading:三維柱狀圖中三維圖形的著色效果。color:只顯示顏色,不受光照等其他因素的影響。lambert:通過經(jīng)典的蘭伯特(Lambe

50、rt)著色表現(xiàn)光照帶來的明暗。realistic:真實(shí)感渲染。10.4 三維圖像繪制 10.4.1 三維柱狀圖 import pyecharts.options as optsfrom pyecharts.charts import Bar3Dimport randomimport pandas as pdimport numpy as npfrom pandas import DataFrame,Seriesdata = pd.read_csv(film_orgin1.csv,encoding=ANSI)#讀取文件data_2 = data.groupby(scores)data_descr

51、ibe = data_2.describe()data_mean = data_describe.iloc:,1data_count = data_describe.iloc:,0mean_values = data_mean.values:,0mean_index = data_mean.indexcount_values = data_count.values:,0mean_index_new = mean_values_new = count_values_new = data = 10.4 三維圖像繪制 10.4.1 三維柱狀圖 for i in range(len(mean_valu

52、es): data_item = mean_index_new.append(str(mean_indexi) mean_values_new.append(int(mean_valuesi) count_values_new.append(str(count_valuesi) data_item.append(i) data_item.append(i) data_item.append(int(mean_valuesi) data.append(data_item)c = ( Bar3D() .add( , d1, d0, d2 for d in data, xaxis3d_opts=op

53、ts.Axis3DOpts(mean_values, type_=category), yaxis3d_opts=opts.Axis3DOpts(count_values_new, type_=category), zaxis3d_opts=opts.Axis3DOpts(type_=value), ) .set_global_opts( visualmap_opts=opts.VisualMapOpts(max_=20), title_opts=opts.TitleOpts(title=Bar3D-基本示例), ) .render(bar3d_base.html)10.4 三維圖像繪制 10

54、.4.1 三維柱狀圖 在數(shù)據(jù)處理時,將mean_values、count_values_new和data中的數(shù)據(jù)作為3個維度的數(shù)據(jù)源。在導(dǎo)入包時,使用from pyecharts.charts import Bar3D導(dǎo)入三維柱狀圖的包。然后利用Bar3D()生成一個三維柱狀圖的對象c。 接下來,利用add()方法解包data中的三維數(shù)據(jù)。同時,對3個坐標(biāo)軸分別執(zhí)行Axis3Dopts(),實(shí)現(xiàn)不同的設(shè)置。例如,x軸進(jìn)行了以下設(shè)置:opts.Axis3DOpts(mean_values, type_=category),即設(shè)置數(shù)據(jù)源為mean_values,類別是category。然后設(shè)置全局

55、配置項(xiàng):VisualMapOpts。其中,設(shè)置title=Bar3D-基本示例,visualMapPiecewise的最大值(max_)為20。最后生成bar3d_base.html文件10.4 三維圖像繪制 10.4.1 三維柱狀圖 10.4 三維圖像繪制10.4.2 三維散點(diǎn)圖 import randomfrom pyecharts import options as optsfrom pyecharts.charts import Scatter3Dfrom pyecharts.faker import Fakerimport pandas as pdimport numpy as np

56、from pandas import DataFrame,Seriesdata = pd.read_csv(film_orgin1.csv,encoding=ANSI)#讀取文件data_ratings = data.loc:,ratingsdata_rank = data.loc:,rankdata_scores = data.loc:,scoresarray_z = (data_rank.values):,0array_y = (data_scores.values):,0array_x = data_ratings.valuesarray_x_new = for i in array_x

57、:,0:if i = 5-t:array_x_new.append(5)if i = 45-t:array_x_new.append(4.5)if i = 4-t:array_x_new.append(4)10.4 三維圖像繪制10.4.2 三維散點(diǎn)圖 data = for i in range(len(array_z): data_item = data_item.append(str(array_x_newi) data_item.append(str(array_yi) data_item.append(int(array_zi) data.append(data_item)Scatte

58、r_data = datascatter = ( Scatter3D(init_opts = opts.InitOpts(width=900px,height=600px) #初始化 .add(,Scatter_data, grid3d_opts=opts.Grid3DOpts( width=100, depth=100, rotate_speed=5, is_rotate=True ) .set_global_opts( title_opts=opts.TitleOpts(title=3D散點(diǎn)圖), # visualmap_opts=opts.VisualMapOpts( max_=50,

59、#最大值 pos_top=50, # range_color=Faker.visual_color #顏色映射 ) ) .render(3D散點(diǎn)圖.html)10.4 三維圖像繪制10.4.2 三維散點(diǎn)圖 通過from pyecharts.charts import Scatter3D,從Pyecharts中導(dǎo)入Scatter3D,然后直接獲取film_orgin1.csv文件中ratings列、scores列和rank列的數(shù)據(jù),分別作為三維圖形的x、y和z軸數(shù)據(jù)。需要注意的是,由于ratings列的數(shù)據(jù)格式是字符串,需要將其轉(zhuǎn)換為數(shù)值形式。因此,利用for循環(huán)遍歷全部的ratings信息,將

60、字符串分類轉(zhuǎn)換為數(shù)值。由于字符串只有3種形式,因此此處設(shè)置的取值范圍是4、4.5和5。利用for循環(huán)遍歷x、y和z軸的每一項(xiàng)數(shù)據(jù),以(x,y,z)的形式成對添加到data和Scatter_data中,此時數(shù)據(jù)源已經(jīng)準(zhǔn)備完畢。利用Scatter3D()生成一個三維散點(diǎn)圖的對象scatter,同時設(shè)置初始化配置項(xiàng)InitOpts:高度為900px,寬度為600px。利用add()方法進(jìn)行如下設(shè)置:顯示Scatter_data中的三維數(shù)據(jù);Grid3Dopts中設(shè)置寬、高均為100,旋轉(zhuǎn)角度rotate_speed=5,旋轉(zhuǎn)選項(xiàng)is_rotate=True。同時,對3個坐標(biāo)軸分別執(zhí)行Axis3Dop

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論