版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据可视化原理及应用
樊银亭夏敏捷主编清华大学出版社第8章ECharts高级应用8.1ECharts的图表混搭及多图表联动8.2动态切换主题及自定义ECharts主题8.3ECharts中的事件和行为8.4ECharts异步加载数据和动态更新简介ECharts中除了提供常规的图表外,还支持多图表、组件的联动和混搭展现。本章介绍ECharts的图表混搭及多图表联动、动态切换主题、自定义ECharts主题、ECharts中的事件和行为,以及如何使用异步数据加载和显示加载动画等。8.1ECharts的图表混搭及多图表联动为了使图表更具表现力,可以使用混搭图表对数据进行展现。当多个系列的数据存在极强的不可分离的关联意义时,为了避免在同一个直角系内同时展现时产生混乱,需要使用联动的多图表对其进行展现。8.1ECharts的图表混搭及多图表联动8.1.1ECharts的图表混搭在ECharts的图表混搭中,一个图表包含唯一图例、工具箱、数据区域缩放模块、值域漫游模块和一个直角坐标系,直角坐标系可包含一条或多条类目轴线、一条或多条值轴线,类目轴线和值轴线最多上、下、左、右共4条。ECharts中支持任意图表的混搭,其中常见的图表混搭有折线图与柱状图的混搭、折线图与饼状图的混搭等。【例8-1】利用某地区一年的降水量和蒸发量数据绘制双y轴的折线图与柱状图混搭图表,如图8-1所示。8.1ECharts的图表混搭及多图表联动【例8-1】利用某地区一年的降水量和蒸发量数据绘制双y轴的折线图与柱状图混搭图表,如图8-1所示。图8-1折线图与柱状图混搭图表8.1ECharts的图表混搭及多图表联动【例8-2】利用ECharts各图表的在线构建次数、各版本下载的数据绘制柱状图与饼图混搭图表,如图8-2所示。左侧的柱状图表示ECharts各图表的在线构建次数,右边的饼图表示ECharts各版本下载情况统计。图8-2柱状图与饼图混搭8.1ECharts的图表混搭及多图表联动8.1.2ECharts的多图表联动当需要展示的数据比较多时,放在一个图表进行展示的效果并不佳,此时,可以考虑使用两个图表进行联动展示。ECharts提供了多图表联动(connect)的功能,连接的多个图表可以共享组件事件并实现保存图片时的自动拼接。多图表联动支持直角坐标系下tooltip的联动。实现EChart中的多图表联动,可以使用以下两种方法。(1)分别设置每个ECharts对象为相同的group值,并通过在调用ECharts对象的connect方法时,传入group值,从而使用多个ECharts对象建立联动关系。8.1ECharts的图表混搭及多图表联动(2)直接调用ECharts的connect方法,参数为一个由多个需要联动的ECharts对象所组成的数组,格式如下。echarts.connect([myChart1,myChart2]);若想要解除已有的多图表联动,则可以调用disConnect方法,格式如下。echarts.disConnect('group1');【例8-3】利用某学院2019年和2020年的专业招生情况绘制柱状图联动图表,如图8-3所示。8.1ECharts的图表混搭及多图表联动图8-3柱状图联动图表8.2动态切换主题及自定义ECharts主题主题是ECharts图表的风格抽象,用于统一多个图表的风格样式。为了顺应不同的绘图风格需求,需要下载ECharts官方提供default、infographic、shine、roma、macarons、vintage等主题,并利用某大学各专业招生数据实现动态主题的切换。此外,为了让图表整体换装,还需要制作自定义主题。8.2.1ECharts中动态切换主题切换ECharts主题的步骤如下。(1)下载主题文件。在使用主题之前需要下载主题.js文件(在ECharts官网上下载官方提供的主题,如macarons.js,或自定义主题)。(2)引用主题文件。将下载的主题.js文件引用到HTML页面中。注意,如果ECharts主题中需要使用到jQuery,那么还应该再在页面中引用jQuery的.js文件。(3)指定主题名。在ECharts对象初始化时,通过init的第2个参数指定需要引入的主题名。如varmyChart=echarts.init(document.getElementById('main'),主题名)。【例8-5】利用某大学各专业招生情况绘制ECharts的infographic主题柱状图,如图8-5所示。由图8-5可知,图形使用了3种不同的灰度表示每个专业分别在2021年、2022年、2023年的招生情况。8.2.1ECharts中动态切换主题【例8-5】利用某大学各专业招生情况绘制ECharts的infographic主题柱状图,如图8-5所示。由图8-5可知,图形使用了3种不同的灰度表示每个专业分别在2021年、2022年、2023年的招生情况。8.2.2自定义ECharts主题ECharts除了默认主题样式之外,还可以使用主题在线构建工具,根据需求快速直观地生成主题配置文件,并在ECharts中使用自定义的主题样式。自定义主题步骤。(1)打开ECharts的主题构建工具(ApacheECharts主题编辑器,/zh/theme-builder.html),如图8-6所示。(2)选择和配置主题。(3)配置文件下载。8.3ECharts中的事件和行为事件是用户或浏览器自身执行的某种动作,如click、mouseover、页面加载完毕后触发load事件,都属于事件。为了记录用户的操作和行为路径,需要完成鼠标事件处理和组件交互的行为事件的处理。8.3.1ECharts中鼠标事件的处理响应某个事件的函数称为事件处理程序,也可称为事件处理函数、事件句柄。鼠标事件即鼠标操作点击图表的图形(如click、dblclick、contextmenu)或hover图表的图形(如mouseover、mouseout、mousemove)时触发的事件。在ECharts中,用户的任何操作,都可能会触发相应的事件。在ECharts中,支持9种常规的鼠标事件,包括click、dblclick、mousedown、mousemove、mouseup、mouseover、mouseout、globalout、contextmenu。其中,click事件最为常用。常规的鼠标事件及说明如表8-1所示。8.3.1ECharts中鼠标事件的处理事件代码书写形式如下。myChart.on('click',function(params){//在用户单击后控制台打印数据的名称
console.log(params);});myChart.on('mouseover',function(params){console.log(params);});//只对指定的组件的图形元素的触发回调myChart.on('click','series.line',function(params){console.log(params);});例如:处理单击事件并且弹出数据元素名称。myChart.on('click',function(params){alert();});8.3.1ECharts中鼠标事件的处理【例8-6】利用某学院2023年专业招生情况绘制柱状图,如图8-9所示。图8-9触发鼠标单击事件的提示对话框8.3.2ECharts组件交互的行为事件用户在使用交互的组件后触发的行为事件,即调用“dispatchAction”后触发的事件,如切换图例开关时触发legendselectchanged事件(这里需要注意,切换图例开关是不会触发legendselected事件的)、数据区域缩放时触发的datazoom事件等。1.组件交互的行为事件在ECharts中,基本上所有的组件交互行为都会触发相应的事件。在ECharts中的交互事件及事件说明如表8-3所示。8.3.2ECharts组件交互的行为事件下面是监听一个图例开关事件的示例。//图例开关的行为只会触发legendselectchanged事件myChart.on('legendselectchanged',function(params){//获取单击图例的选中状态
varisSelected=params.selected[];//在控制台中打印
console.log((isSelected?'选中了':'取消选中了')+'图例'+);//打印所有图例的状态
console.log(params.selected);});8.3.2ECharts组件交互的行为事件2.代码触发ECharts中组件的行为上面只说明了用户的交互操作,但有时候也会需要在程序里调用方法并触发图表的行为,比如显示提示框tooltip。ECharts通过dispatchAction({type:''})来触发图表行为,统一管理了所有动作,也可以根据需要去记录用户的行为路径。【例8-7】利用代码触发ECharts饼图图表行为,实现饼图区块的轮播高亮显示和出现提示框tooltip,如图8-10所示。8.4ECharts异步加载数据和动态更新ECharts通常数据设置在setOption中,如果需要异步加载从服务器得到数据,可以配合jQuery等工具,在异步获取数据后通过setOption填入数据和配置项就行。8.4.1实现异步加载数据echarts_test_data.json数据如下。{"data_pie":[{"value":235,"name":"视频广告"},{"value":274,"name":"联盟广告"},{"value":310,"name":"邮件营销"},{"value":335,"name":"直接访问"},{"value":400,"name":"搜索引擎"}]}下面实例中通过jQuery异步加载服务器上的echarts_test_data.json数据。【例8-8】通过jQuery异步加载json数据。这里的json数据不是直接写在data里的,而是异步加载从服务器获取得到的。8.4.1实现异步加载数据注意本程序需要在服务器端运行,否则会出现AccesstoXMLHttpRequestat'/static/js/echarts_test_data.json'fromorigin'null'hasbeenblockedbyCORSpolicy:No'Access-Control-Allow-Origin'headerispresentontherequestedresource.跨域访问问题。当然可以把json数据放在本地服务器上data文件夹下,则访问如下:
varmyChart=echarts.init(document.getElementById('main'));$.get('data/echarts_test_data.json',function(data){….},'json')8.4.2实现数据的动态更新ECharts由数据驱动,数据的改变驱动图表展现的改变,因此动态数据的实现也变得异常简单。所有数据的更新都通过setOption实现,实现数据的动态更新只需要定时获取数据,使用setOption填入数据,而不用考虑数据到底产生了那些变化,ECharts会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。【例8-9】动态模拟显示100天的对应成交数据变化动图。例如显示"2022/10/3"到"2023/1/9"的对应100天成交数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 植物多样性题目及答案
- AI在智慧健康养老服务中的应用
- 医院安全生产委员会会议制度
- 【方案】2026低碳智慧园区综合解决方案
- 万安县县城砂场搬迁工程水土保持方案报告表
- 泽信启元·缔01水土保持报告表
- 网络信息安全基础(AIGC版)随堂前测练习题及参考答案 项目7-任务1-前测练习-单选题5
- 人工智能通识导论(理论篇)课件 第1章-从梦想到现实:AI发展简史
- 2026半结构化幼儿教师面试题及答案
- 2026年慢性咳嗽诊疗指南考试试题
- 2024年高考文综(海南卷)政治试题及答案
- 绿色氢能产业发展白皮书2024
- 城际铁路公司招聘笔试题
- JB T 7392-2006数字压力表行业标准
- 食品微生物学(第二版) 课件 第二章原核微生物
- 学前融合教育 课件 第七章 促进五大领域发展的学前融合教育
- JGJ114-2014 钢筋焊接网混凝土结构技术规程
- 无机及分析化学考试题三(含答案)
- 通识写作:怎样进行学术表达学习通超星课后章节答案期末考试题库2023年
- GB/T 9237-2017制冷系统及热泵安全与环境要求
- 博士后出站研究报告
评论
0/150
提交评论