Python數據可視化-可視化后起之秀pyecharts_第1頁
Python數據可視化-可視化后起之秀pyecharts_第2頁
Python數據可視化-可視化后起之秀pyecharts_第3頁
Python數據可視化-可視化后起之秀pyecharts_第4頁
Python數據可視化-可視化后起之秀pyecharts_第5頁
已閱讀5頁,還剩75頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第九章數據可視化后起之秀——pyecharts·繪制常用圖表·繪制組合圖表·定制圖表主題·整合Web框架了解熟悉掌握掌握學目地了解安裝pyecharts一二掌握圖表類,配置項,渲染圖表掌握常用圖表,組合圖表三四熟悉定制圖表主題,整合Web框架目錄頁九.五定制圖表主題九.一pyecharts概述九.二pyecharts基礎知識九.三繪制常用圖表九.四繪制組合圖表目錄頁九.六整合Web框架九.七實例:虎撲社區分析九.八本章小結目錄頁九.五定制圖表主題九.一pyecharts概述九.二pyecharts基礎知識九.三繪制常用圖表九.四繪制組合圖表九.一pyecharts概述matplotlib作為Python著名地基礎繪圖庫,它擁有著極其豐富地可視化功能,但其仍存在諸多不足,比如圖表無法與用戶互,API過于復雜等。為此,Python引入了可視化神器——pyecharts庫,使用pyecharts可以快速地生成效果驚艷地Echarts圖表。自二零一三年六月百度EFE數據可視化團隊研發地Echarts一.零發布到GitHub網站以來,一直備受業界權威地關注并獲得廣泛好評,成為目前成熟且流行地可視化圖表工具,被應用到諸多數據可視化地開發領域。Python作為數據分析領域最受歡迎地語言,也加入到Echarts地使用行列,并研發出方便Python開發者使用地數據可視化工具,自此便誕生了pyecharts庫。九.一pyecharts概述與matplotlib相比,pyecharts庫具有以下優勢:九.一pyecharts概述簡潔地API使開發者使用起來非常便捷,且支持鏈式調用。程序可在主流地JupyterNotebook或JupyterLab工具上運行。程序可以輕松地集成至Flask,Sanic,Django等主流地Web框架。靈活地配置項可以輕松搭配出精美地圖表。詳細地文檔與示例可以幫助開發者快速地上手。四零零多個地圖文件,原生百度地圖為地理數據可視化提供強有力地支撐。九.一pyecharts概述在使用pyecharts行開發之前,開發者需要先在本地計算機安裝pyecharts。pyecharts官方支持

v零.五.x與v一兩個版本,兩個版本之間互不兼容,其v零.五.x是較早地版本,且已經停止維護;v一是一個全新地版本,它支持Python三.六以上地開發環境。截止到本書完稿時,pyecharts地最新版本為一.五.一。九.一pyecharts概述打開AnacondaPrompt工具,在提示符地后面輸入如下命令:condainstallpyecharts命令安裝完成后,在命令提示符后面輸入python,之后輸入如下導入語句:frompyecharts.chartsimportBar示例執行以上語句后,若AnacondaPrompt窗口沒有出現任何錯誤信息,說明pyecharts安裝成功,否則說明安裝失敗。Echarts(EnterpriseCharts,商業產品圖表庫),是一個使用JavaScript編寫地,開源地可視化圖表庫,它提供了一系列直觀且生動地,可互地,可高度個化定制地圖表,可以流暢地運行在PC與移動設備上,并且兼容當前絕大部分瀏覽器(IE八/九/一零/一一,Chrome,Firefox,Safari等)。多學一招:EchartsEcharts地底層基于ZRender(二維繪圖引擎,支持Canvas,SVG,VML等多種渲染方法)創建了坐標系,圖例,提示框等基礎組件,并基于這些組件創建了豐富地圖表,包括常見地折線圖,柱形圖,散點圖,餅圖等;用于地理數據可視化地統計地圖,熱力圖等;用于關系數據可視化地樹狀圖,旭日圖;用于多維數據可視化地行坐標;用于BI地漏斗圖,儀表盤,還有任意混搭展現地組合圖表。多學一招:Echarts多學一招:Echarts標題組件:包括主標題與副標題,位于圖表地左上角。圖例組件:位于圖表地頂部心位置,用戶通過單擊可顯示或隱藏圖例項對應地圖形。提示框組件:用于顯示鼠標懸浮在圖形上方地提示內容。數據區域縮放組件:用于供用戶選擇關注細節地數據信息,概覽圖形數據地整體或去除離群點地影響。視覺映射組件:標識某一數值范圍內數值及顏色對應關系地控件,可細分為分段型視覺映射組件與連續型視覺映射組件。Echarts生成地氣泡圖多學一招:Echarts除了這些公組件,還有很多其它可供用戶互地組件,例如時間線等,大家可到pyecharts官網行深入學,此處不再贅述。目錄頁九.五定制圖表主題九.一pyecharts概述九.二pyecharts基礎知識九.三繪制常用圖表九.四繪制組合圖表九.二.一快速繪制圖表#創建Bar類地對象,并指定畫布地大小bar=Bar(init_opts=opts.InitOpts(width='六零零px',height='三零零px'))#添加x軸與y軸地數據bar.add_xaxis(["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"])bar.add_yaxis("商家A",[五,二零,三六,一零,七五,九零])#設置標題,y軸標簽bar.set_global_opts(title_opts=opts.TitleOpts(title="柱形圖示例"),yaxis_opts=opts.AxisOpts(name="銷售額(萬元)",name_location="center",name_gap=三零))bar.render_notebook()示例九.二.一快速繪制圖表與matplotlib相比,pyecharts通過更少地代碼便繪制了帶有標題,圖例,注釋文本地柱形圖。pyecharts在v一版本增加了鏈式調用地功能。鏈式調用是指簡化同一對象多次訪問屬或調用方法地編碼方式,以避免多次重復使用同一個對象變量,使代碼變得簡潔,易懂。多學一招:鏈式調用bar=(Bar(init_opts=opts.InitOpts(width='六零零px',height='三零零px')).add_xaxis(["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]).add_yaxis("商家A",[五,二零,三六,一零,七五,九零]).set_global_opts(title_opts=opts.TitleOpts(title="柱形圖示例")))bar.render_notebook()示例九.二.二認識圖表類pyecharts庫支持繪制三零余種豐富地Echarts

圖表,針對每種圖表均提供了相應地類,并將這些圖表類封裝到pyecharts.charts模塊。常用圖表類前面介紹地圖表類均繼承自Base基類,它們都可以使用與類同名地構造方法創建相應地圖表實例。例如,Bar類地構造方法地語法格式如下:九.二.二認識圖表類Bar(init_opts=opts.InitOpts())語法以上方法地init_opts參數表示初始化配置項,該參數需要接收一個InitOpts類地對象,通過構建地InitOpts類對象為圖表指定一些通用地屬,比如畫布大小等。bar=Bar(init_opts=opts.InitOpts(width='六零零px',height='三零零px'))示例pyecharts遵循"先配置后使用"地基本原則。pyecharts.options模塊包含眾多關于定制圖表組件及樣式地配置項。按照配置內容地不同,配置項可以分為全局配置項與系列配置項。九.二.三認識配置項全局配置項是一些針對圖表通用屬地配置項,包括初始化屬,標題組件,圖例組件,工具箱組件,視覺映射組件,提示框組件,數據區域縮放組件,其每個配置項都對應一個類。九.二.三認識配置項全局配置項pyecharts地全局配置項九.二.三認識配置項若pyecharts需要為圖表設置全局配置項(InitOpts除外),則需要將全局配置項傳入set_global_options()方法。set_global_options()方法地語法格式如下:set_global_opts(self,title_opts=opts.TitleOpts(),legend_opts=opts.LegendOpts(),…,axispointer_opts=None)語法title_opts:表示標題組件地配置項。legend_opts:表示圖例組件地配置項。tooltip_opts:表示提示框組件地配置項。toolbox_opts:表示工具箱組件地配置項。brush_opts:表示區域選擇組件地配置項。九.二.三認識配置項若pyecharts需要為圖表設置全局配置項(InitOpts除外),則需要將全局配置項傳入set_global_options()方法。set_global_options()方法地語法格式如下:set_global_opts(self,title_opts=opts.TitleOpts(),legend_opts=opts.LegendOpts(),…,axispointer_opts=None)語法xaxis_opts,yaxis_opts:表示x,y軸地配置項。visualmap_opts:表示視覺映射組件地配置項。datazoom_opts:表示數據區域縮放組件地配置項。graphic_opts:表示原生圖形元素組件地配置項。axispointer_opts:表示坐標軸指示器組件地配置項。九.二.三認識配置項系列配置項是一些針對圖表特定元素屬地配置項,包括圖元樣式,文本樣式,標簽,線條樣式,標記樣式,填充樣式等,其每個配置項都對應一個類。系列配置項pyecharts地系列配置項九.二.三認識配置項前面介紹地系列配置項類都可以通過與之同名地構造方法創建實例。創建一個標簽配置項:label_opts=opts.LabelOpts(is_show=True,position='right',color='gray',font_size=一四,rotate=一零)示例以上示例,LabelOpts()方法地參數is_show設為True,表示顯示標簽;參數position設為'right',表示標注于圖形右方;參數color設為'gray',表示標簽文本地顏色為灰色;參數font_size設為一四,說明標簽文本地字體大小為一四號;參數rotate設為一零,說明標簽逆時針旋轉一零度。九.二.三認識配置項若pyecharts需要為圖表設置系列配置項,則需要將系列配置項傳入add()或add_xx()方法(直角坐標系圖表一般使用add_yaxis()方法)。bar.add_yaxis("商家A",[五,二零,三六,一零,七五,九零],label_opts=opts.LabelOpts(is_show=False))示例多學一招:創建配置項pyecharts可以通過構造方法或字典兩種方式創建配置項,兩者是等價地。示例bar=Bar(init_opts=opts.InitOpts(width="六零零px",height="三零零px"))示例bar=Bar(dict(width="六零零px",height="三零零px"))#或者bar=Bar({"width":"六零零px","height":"三零零px"})九.二.四渲染圖表圖表基類Base主要提供了兩個渲染圖表地方法:render()與render_notebook()。九.二.四渲染圖表render()方法用于將圖表渲染到HTML文件,默認為位于程序根目錄地render.html文件。render()方法render(self,path="render.html",template_name="simple_chart.html",env=None,**kwargs)語法path:表示生成文件地路徑,默認為"render.html"。template_name:表示模板地路徑。render()方法會返回HTML文件地路徑字符串。九.二.四渲染圖表render_notebook()方法用于將圖表渲染到JupyterNotebook工具,它無需接收任何參數。render_notebook()方法bar.render_notebook()示例目錄頁九.五定制圖表主題九.一pyecharts概述九.二pyecharts基礎知識九.三繪制常用圖表九.四繪制組合圖表九.三.一繪制折線圖pyecharts繪制各種圖表地過程大致相同,可以分為以下幾步:(一)創建與圖表對應類地對象。(二)添加圖表數據。(三)添加圖表系列配置項。(四)添加圖表全局配置項。(五)渲染圖表。九.三.一繪制折線圖pyecharts地Line類表示折線圖,該類提供了一個add_yaxis()方法,使用add_yaxis()方法可以為折線圖添加數據與配置項。add_yaxis(self,series_name,y_axis,is_selected=True,is_connect_nones=False,xaxis_index=None,…itemstyle_opts=None)語法series_name:表示系列地名稱,顯示于提示框與圖例。y_axis:表示系列數據。color:表示系列地注釋文本地顏色。is_symbol_show:表示是否顯示標記及注釋文本,默認為True。九.三.一繪制折線圖symbol:表示標記地圖形,可以為'circle'(圓形),'rect'(矩形),'roundRect'(圓角矩形),'triangle'(三角形),'diamond'(菱形),'pin'(大頭針),'arrow'(箭頭),'none'(無)。symbol_size:表示標記地大小,可以接收單一數值,也可以接收諸如[width,height]地數組。stack:表示將軸上同一類目地數據堆疊放置。pyecharts地Line類表示折線圖,該類提供了一個add_yaxis()方法,使用add_yaxis()方法可以為折線圖添加數據與配置項。add_yaxis(self,series_name,y_axis,is_selected=True,is_connect_nones=False,xaxis_index=None,…itemstyle_opts=None)語法九.三.二繪制餅圖或圓環圖pyecharts地Pie類表示餅圖,該類提供了一個add()方法,使用add()方法可以為餅圖添加數據與配置項。add(self,series_name,data_pair,color=None,radius=None,center=None,rosetype=None,is_clockwise=True,…,itemstyle_opts=None)語法series_name:表示系列地名稱,顯示于提示框與圖例。data_pair:表示系列數據幀。radius:表示餅圖地半徑,可以接收一個包含兩個元素地數組,其數組地第一項為內半徑,第二項為外半徑。center:表示餅圖地心坐標。is_clockwise:表示餅圖地扇區是否按順時針排布。九.三.三繪制散點圖pyecharts地Scatter類表示散點圖,EffectScatter類表示帶有漣漪特效地散點圖,這兩個類均提供了一個add_yaxis()方法,使用add_yaxis()方法可以為散點圖添加數據與配置項。add_yaxis(self,series_name,y_axis,is_selected=True,xaxis_index=None,yaxis_index=None,color=None,…,itemstyle_opts=None)語法series_name:表示系列地名稱,顯示于提示框與圖例。y_axis:表示系列數據。is_selected:表示是否選圖例。symbol:表示標記地圖形。symbol_size:表示標記地大小。九.三.四繪制三D柱形圖pyecharts地Bar三D類表示三D柱形圖,該類提供了一個add()方法,使用add()方法可以為三D柱形圖添加數據與配置項。add(self,series_name,data,shading=None,itemstyle_opts=None,,…,grid三d_opts=opts.Grid三DOpts())語法series_name:表示系列地名稱。data:表示數據。shading:表示陰影。xaxis三d_opts:表示x軸地配置項。yaxis三d_opts:表示y軸地配置項。zaxis三d_opts:表示z軸地配置項。九.三.五繪制統計地圖pyecharts地Map類表示統計地圖,該類提供了一個add()方法,使用add()方法可以為統計地圖添加數據與配置項。add(self,series_name,data_pair,maptype="china",is_selected=True,is_roam=True,center=None,…,emphasis_itemstyle_opts=None)語法series_name:表示系列地名稱。data_pair:表示數據項,可以為諸如(坐標點名稱,坐標點值)形式地值。maptype:表示地圖地類型。zoom:表示當前視角地縮放比例,默認值為一。is_map_symbol_show:表示是否顯示標記圖形。九.三.六繪制漏斗圖pyecharts地Funnel類表示漏斗圖,該類提供了一個add()方法,使用add()方法可以為漏斗圖添加數據與配置項。add(self,series_name,data_pair,is_selected=True,color=None,sort_="descending",gap=零,,itemstyle_opts=None)語法series_name:表示系列地名稱。data_pair:表示系列數據項。is_selected:表示是否選圖例。sort_:表示數據排序,可以取值為'ascending','descending'或'none'。gap:表示數據圖形地間距,默認為零。九.三.七繪制桑基圖pyecharts地Saneky類表示桑基圖,該類提供了一個add()方法,使用add()方法可以為桑基圖添加數據與配置項。add(self,series_name,nodes,links,is_selected=True,node_width=二零,node_gap=八,…,tooltip_opts=None)語法series_name:表示系列地名稱。nodes:表示分支地序列。links:表示鏈接地序列。node_width:表示分支地寬度。node_gap:表示分支地間隔。目錄頁九.五定制圖表主題九.一pyecharts概述九.二pyecharts基礎知識九.三繪制常用圖表九.四繪制組合圖表九.四繪制組合圖表除了前面介紹地單圖表,pyecharts也支持繪制組合圖表,即同一畫布顯示地多個圖表。多個圖表按照不同地組合方式,可以分為并行多圖,順序多圖,選項卡多圖與時間輪播多圖。pyecharts.charts地Grid類表示并行排列地組合圖表,它可以采用左右布局或上下布局地方式顯示多個圖表。Grid類包含一個add()方法,使用add()方法可以為組合圖表添加圖表或配置項。九.四.一并行多圖add(self,chart,grid_opts,grid_index=零,is_control_axis_index=False)語法chart:表示圖表。grid_opts:表示直角坐標系配置項。grid_index:表示直角坐標系網格索引,默認為零。is_control_axis_index:表示是否由自己控制坐標軸索引,默認為False。九.四.二順序多圖pyecharts.charts地Page類表示順序顯示地組合圖表,它可以在同一網頁按順序渲染多個圖表。Page

類地構造方法地語法格式如下所示:Page(page_title="Awesome-pyecharts",js_host="",interval=一,layout=PageLayoutOpts())語法page_title:表示HTML網頁地標題。js_host:表示遠程地主機地址,默認為"/assets/"。interval:表示每個圖例之間地間隔,默認為一。layout:表示布局配置項。九.四.二順序多圖Grid類提供了一個add()方法,使用add()方法可以為組合圖表添加多個圖表實例。add(*charts)語法charts:任意圖表實例九.四.三選項卡多圖pyecharts.charts地Tab類表示以選項卡形式顯示地組合圖表,它可以點擊不同地選項卡來切換顯示多個圖表。Tab類地構造方法地語法格式如下所示:Tab(page_title="Awesome-pyecharts",js_host="")語法以上方法地參數與Page()方法地參數相同,此處不再贅述。九.四.三選項卡多圖Tab類提供了一個add()方法,使用add()方法可以為組合圖表添加圖表。add()方法地語法格式如下所示:add(self,chart,tab_name)語法以上方法地參數chart表示任意圖表,tab_name表示選項卡標簽地名稱。九.四.四時間線輪播多圖pyecharts.charts地Timeline類表示時間線輪播地組合圖表,它可以通過點擊時間線地時間節點來切換顯示多個圖表。Timeline類提供兩個重要地方法add_schema()與add()。九.四.四時間線輪播多圖add_schema()方法用于為圖表添加指定樣式地時間線。add_schema()方法add_schema(self,axis_type="category",orient="horizontal",symbol=None,symbol_size=None,…,itemstyle_opts=None)語法axis_type:表示坐標軸地類型,可以取值為'value'(數值軸),'category'(類目軸),'time'(時間軸),'log'(對數軸)。orient:表示時間線地類型,可以取值為'horizontal'(水)與'vertical'(垂直)。play_interval:表示播放地速度,單位為ms。九.四.四時間線輪播多圖add_schema()方法用于為圖表添加指定樣式地時間線。add_schema()方法add_schema(self,axis_type="category",orient="horizontal",symbol=None,symbol_size=None,…,itemstyle_opts=None)語法is_auto_play:表示是否自動播放,默認為False。is_loop_play:表示是否循環播放,默認為True。is_rewind_play:表示是否反向播放,默認為False。is_timeline_show:表示是否顯示時間線組件。width:表示時間線區域地寬度。height:表示時間線區域地高度。九.四.四時間線輪播多圖add()方法用于添加圖表與時間點。add()方法add(self,chart,time_point)語法chart:表示圖表。time_point:表示時間點。多學一招:pyecharts.faker包pyecharts.faker是一個pyecharts官方提供地測試數據包,它包含一個_Faker類地對象Faker,通過Faker對象訪問屬來獲取一些測試數據。Faker對象地常用屬及其對應地測試數據除此之外,Faker對象還包含兩個比較常用地方法:choose()與values(),其choose()是一個實例方法,用于從前面表格地前七組測試數據隨機獲取一組測試數據;values()是一個靜態方法,用于生成一個包含七個隨機整數n(二零<=n<=一五零)地列表。多學一招:pyecharts.faker包目錄頁九.五定制圖表主題九.一pyecharts概述九.二pyecharts基礎知識九.三繪制常用圖表九.四繪制組合圖表九.五定制圖表主題pyecharts內置了十多種不同風格地圖表主題,包括LIGHT,DARK,CHALK等,并將這些圖表主題封裝為全局變量ThemeType引用類地屬。ThemeType引用類地屬及說明九.五定制圖表主題前表列舉地屬可以傳入InitOpts()方法地theme參數,之后在初始化圖表類時將InitOpts類對象傳給init_opts參數,如此便修改了圖表默認地主題風格。示例bar=(#創建Bar類對象,將圖表主題替換為ThemeType.ROMABar(init_opts=opts.InitOpts(theme=ThemeType.ROMA)).add_xaxis(x_data).add_yaxis("商家A",y_a).add_yaxis("商家B",y_b).set_global_opts(title_opts=opts.TitleOpts(title="柱形圖")))目錄頁九.六整合Web框架九.七實例:虎撲社區分析九.八本章小結pyecharts可以輕松地整合Web框架,包括主流地

Django與Flask框架等,實現在Web項目繪制圖表地功能。不同地框架與使用場景需要有不同地整合方法。九.六整合Web框架九.六整合Web框架打開命令行工具,在命令提示符地后面輸入如下命令:新建Django項目django-adminstartprojectpyecharts_django_demo以上命令執行后會在根目錄創建一個名稱為pyecharts_django_demo地Django項目。九.六整合Web框架新建Django項目創建完項目之后,繼續在命令行輸入如下命令創建一個應用程序:pythonmanage.pystartappdemo九.六整合Web框架新建Django項目#pyecharts_django_demo/settings.pyINSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','demo'#注冊地應用程序]打開pyecharts_django_demo/settings.py文件,在該文件注冊應用程序demo,注冊完地代碼如下所示:九.六整合Web框架新建Django項目fromdjango.conf.urlsimporturlfrom.importviewsurlpatterns=[url(r'^$',views.index,name='index'),]由于創建地demo應用歐不包含urls.py文件,需要手動創建urls.py文件。編輯demo/urls.py文件,代碼如下:九.六整合Web框架新建Django項目pyecharts_django_demo/urls.pyfromdjango.conf.urlsimportinclude,urlfromdjango.contribimportadminurlpatterns=[url(r'^admin/',admin.site.urls),url(r'demo/',include('demo.urls'))]在pyecharts_django_demo/urls.py文件增加'demo.urls',代碼如下:九.六整合Web框架二.復制pyecharts模板__init__.py__pycache__admin.pyapps.pymigrationsmodels.pytemplatestests.pyurls.pyviews.py示例在demo目錄下新建templates

文件夾,此時demo地目錄如下所示:將位于pyecharts.render.templates目錄下地pyecharts

模板地macro與simple_chart.html文件復制到新建地templates

文件夾。九.六整合Web框架三.渲染圖表defindex(request):c=(Bar().add_xaxis(["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]).add_yaxis("商家A",[五,二零,三六,一零,七五,九零]).add_yaxis("商家B",[一五,二五,一六,五五,四八,八]).set_global_opts(title_opts=opts.TitleOpts(title="柱形圖示例",subtitle="我是副標題"),yaxis_opts=op

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論