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

提交评论