问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Vue实现循环渲染多个相同echarts图表

发布网友 发布时间:2024-10-02 11:19

我来回答

1个回答

热心网友 时间:2024-10-09 05:48

由于在项目中需要对数据进行可视化处理,也就是用图表展示,众所周知echarts是非常强大的插件。一开始想在网上找一个基于vue封装好的,有时候一个页面我们会用到很多个echarts图表,如果我们每一个图表单独编写,既费时又费力,有时候对于图表个数不固定的时候,单个编写echarts图表就行不通了,所以想到了用v-for循环。

以下是我使用的一些心得体会~

<template><divclass="container"><divv-for="(axis,index)intarget":key="index"style="width:100%;height:350px;margin-bottom:20px;overflow:hidden;"><divclass="roseChart"style="width:100%;height:100%;"></div></div></div></template><script>exportdefault{data(){return{target:[//循环5个折线图{id:'1',name:'折线图1'},{id:'2',name:'折线图2'}{id:'3',name:'折线图3'}{id:'4',name:'折线图4'}{id:'5',name:'折线图5'}],seriesData:[],}},created(){letparams={siteId:'',startTime:this.time[0],endTime:this.time[1]}API.GetList(params).then(res=>{if(res.code=="200"){this.seriesData=res.data;this.$nextTick(()=>{this.drawRose()})}else{returnfalse}})},methods:{drawRose(){varroseCharts=document.getElementsByClassName('roseChart');for(vari=0;i<roseCharts.length;i++){//通过for循环,在相同class的dom内绘制元素varmyChart=echarts.init(roseCharts[i]);varoption={color:['#07cdbd','#28bf7e','#ed7c2f','#f2a93b'],title:{text:"["+this.seriesData[i].name+"]"+"-"+this.target[i].name,textStyle:{color:'#666',fontWeight:'bold',fontSize:16}},tooltip:{trigger:'axis',axisPointer:{type:'cross',label:{backgroundColor:'#6a7985'}}},toolbox:{show:true,feature:{magicType:{type:['line','bar']},saveAsImage:{}}},grid:{left:'1%',right:'1%',bottom:'1%',containLabel:true},xAxis:[{type:'category',boundaryGap:false,axisTick:{show:false,},splitLine:{show:false,},axisLine:{show:true,lineStyle:{color:"rgba(0,0,0,.1)",},},axisLabel:{//interval:0,textStyle:{color:"rgba(0,0,0,.6)",fontWeight:"normal",fontSize:"12",},},data:this.seriesData[i].dateTime}],yAxis:[{type:'value',axisTick:{show:false,},splitLine:{show:false,},axisLine:{show:true,lineStyle:{color:"rgba(0,0,0,.1)",},},axisLabel:{//interval:0,textStyle:{color:"rgba(0,0,0,.6)",fontWeight:"normal",fontSize:"12",},},}],series:[{name:this.seriesData[i].name,type:'line',barWidth:25,stack:'总量',smooth:true,symbol:"circle",symbolSize:5,areaStyle:{normal:{color:newecharts.graphic.LinearGradient(0,0,0,1,[{offset:0,color:"rgba(98,201,141,0.5)"},{offset:1,color:"rgba(98,201,141,0.1)"}],false),shadowColor:"rgba(0,0,0,0.1)",shadowBlur:6}},data:this.seriesData[i].dataVal,}]}myChart.setOption(option,true);window.addEventListener("resize",()=>{if(myChart){myChart.resize();}});}},},}</script>

备注:echarts循环的时候,需要注意数组数据格式,数据格式要跟echartsseries属性接收数据格式保持一致,数据才能够正确渲染出来。

热心网友 时间:2024-10-09 05:45

由于在项目中需要对数据进行可视化处理,也就是用图表展示,众所周知echarts是非常强大的插件。一开始想在网上找一个基于vue封装好的,有时候一个页面我们会用到很多个echarts图表,如果我们每一个图表单独编写,既费时又费力,有时候对于图表个数不固定的时候,单个编写echarts图表就行不通了,所以想到了用v-for循环。

以下是我使用的一些心得体会~

<template><divclass="container"><divv-for="(axis,index)intarget":key="index"style="width:100%;height:350px;margin-bottom:20px;overflow:hidden;"><divclass="roseChart"style="width:100%;height:100%;"></div></div></div></template><script>exportdefault{data(){return{target:[//循环5个折线图{id:'1',name:'折线图1'},{id:'2',name:'折线图2'}{id:'3',name:'折线图3'}{id:'4',name:'折线图4'}{id:'5',name:'折线图5'}],seriesData:[],}},created(){letparams={siteId:'',startTime:this.time[0],endTime:this.time[1]}API.GetList(params).then(res=>{if(res.code=="200"){this.seriesData=res.data;this.$nextTick(()=>{this.drawRose()})}else{returnfalse}})},methods:{drawRose(){varroseCharts=document.getElementsByClassName('roseChart');for(vari=0;i<roseCharts.length;i++){//通过for循环,在相同class的dom内绘制元素varmyChart=echarts.init(roseCharts[i]);varoption={color:['#07cdbd','#28bf7e','#ed7c2f','#f2a93b'],title:{text:"["+this.seriesData[i].name+"]"+"-"+this.target[i].name,textStyle:{color:'#666',fontWeight:'bold',fontSize:16}},tooltip:{trigger:'axis',axisPointer:{type:'cross',label:{backgroundColor:'#6a7985'}}},toolbox:{show:true,feature:{magicType:{type:['line','bar']},saveAsImage:{}}},grid:{left:'1%',right:'1%',bottom:'1%',containLabel:true},xAxis:[{type:'category',boundaryGap:false,axisTick:{show:false,},splitLine:{show:false,},axisLine:{show:true,lineStyle:{color:"rgba(0,0,0,.1)",},},axisLabel:{//interval:0,textStyle:{color:"rgba(0,0,0,.6)",fontWeight:"normal",fontSize:"12",},},data:this.seriesData[i].dateTime}],yAxis:[{type:'value',axisTick:{show:false,},splitLine:{show:false,},axisLine:{show:true,lineStyle:{color:"rgba(0,0,0,.1)",},},axisLabel:{//interval:0,textStyle:{color:"rgba(0,0,0,.6)",fontWeight:"normal",fontSize:"12",},},}],series:[{name:this.seriesData[i].name,type:'line',barWidth:25,stack:'总量',smooth:true,symbol:"circle",symbolSize:5,areaStyle:{normal:{color:newecharts.graphic.LinearGradient(0,0,0,1,[{offset:0,color:"rgba(98,201,141,0.5)"},{offset:1,color:"rgba(98,201,141,0.1)"}],false),shadowColor:"rgba(0,0,0,0.1)",shadowBlur:6}},data:this.seriesData[i].dataVal,}]}myChart.setOption(option,true);window.addEventListener("resize",()=>{if(myChart){myChart.resize();}});}},},}</script>

备注:echarts循环的时候,需要注意数组数据格式,数据格式要跟echartsseries属性接收数据格式保持一致,数据才能够正确渲染出来。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
便携式发电机十大名牌 冬天夜跑同时锻炼身体和意志的句子锦集 冬天的时候跑步可以达到46~60分钟 可是夏天了跑步25分钟左右就已经感觉... 孩子病毒性感冒咳嗽厉害怎么办 严重的病毒性感冒几天能好 宝宝六个月因为病毒性感冒而咳嗽有痰可每次咳嗽出来的痰他吐不出来怎 ... ios购买的app怎么退款 求助!书法高手!用什么书法来“魏亮”这二字最漂亮? 万事胜意,喜乐长安繁体 什么叫喜乐长安 3步搞定复杂的ECharts可视化图表! 盐城市区有哪些中学 盐城市有哪些初级中学 盐城市第三中学领导分工 现在有什么学校叫3十4的吗?意思是高中和大学一起 ...春夏多备这几双鞋,不仅好看还很时髦,搭什么衣服都好看,你怎么看? 孩子6岁注意力不集中 ...了来电显示,所有来电都是 “未知”,这是怎么回事? 求这首歌的歌名!!!悬赏 孝妇河的介绍 孝妇河的地形.气候.地势.资源 哪个星座男更适合双子女? 双子座和谁最般配-匹配顺序优先 双子座和谁在一起更好,双子座和什么座最配做朋友 虾肉小馄饨的做法小妙招 机械键盘和一般键盘有什么不一样 鲜虾猪肉馄饨的做法 到春节适合头发会扎了到哪里 指甲鱼是什么意思? 春节小女生最适合梳什么样的头发 500㎎这是代表毫克不 怎样启用管理员账户? ㎎这什么代号是水的立方,还是毫,或克 1㎎等于多少克 求好玩的飞行模拟游戏,空战时震撼的那种!下载别慢的让人受不了!_百度... 我在OPPO下载了华为游戏中心,下载游戏后,显示安装包不存在,怎么破 现代空战3d战队版高速下载 珠海纳思达电子科技有限公司荣誉认证 ...游戏,现在换成了oppo,并在新手机上安装了华为应用市场 用烧饼修改器怎么修改火线指令 诺曼底 里面的金钱数 在线等解 或者其他... 请问下 在云南省腾冲乡级建一栋别墅要花多少钱 算地皮 中级装修 别墅... 珠海赛纳打印科技股份有限公司简介 长期面对电脑好吗? 碘酒的作用 使用碘酒的注意事项 云南隔音轻钢别墅质量好不好 syb申请书怎么写的 谁可以办银行30年免还贷款?云南的,不要前期的。实在是没办法了_百度知... 经传股事汇app怎么样?有什么功能 中衍期货是什么 关于北京集体户口(工作户)夫妻申请两限房的问题