• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

解决echarts数据二次渲染不成功的问题

vue 搞代码 4年前 (2022-01-08) 19次浏览 已收录 0个评论

这篇文章主要介绍了解决echarts数据二次渲染不成功的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

最近在使用echarts做报表需求,二次生成报表时数据合并,无法正确显示。

本文来源gaodai$ma#com搞$代*码*网一次渲染:

第二次渲染:

可以看到这里的echarts项的series变为2个(如上图),但是渲染后的效果series项还是和第一次相同。

解决办法:

应该设置mychart.setoption({},true);

原因:

chart.setOption(option,notMerge,lazyUpdate);

option:图表的配置项和数据

notMerge:可选,是否不跟之前设置的option进行合并,默认为false,即合并。(这里是导致二次渲染不成功的根本)

lazyUpdate:可选,在设置完option后是否不立即更新图表,默认为false,即立即更新。

补充知识:请求到数据后echarts图表的重新渲染问题

我就废话不多说了,大家还是直接看代码吧~

 export default{ data(){ return{ //定义接受数据的空数组 柱状图 e2data1:[], e2data2:[], } mounted() { //加载图表 this.drawLine(); }, created(){ // 并发发送多个请求 axios.all([this.getTable1Data1()]) .then(axios.spread(function (acct, perms) { console.log("所有数据请求成功"); })); }, methods:{ getTable1Data1(){ let formData=new FormData; formData.append("companyName",this.chose); return axios.post('/StockFirstnfirstout/trendChart',formData) .then(response=> { let list=response.data.trendChartOfMonth; //每次加载前清空接口数据 this.e2data1=[]; this.e2data2=[]; list.forEach((value,i)=>{ this.e2data1.push(value.count); this.e2data2.push(value.saleMonth); }); //重新渲染图表 myChart2.setOption({ xAxis: { data:this.e2data2 }, series: [ {name:'柱状图', data: this.e2data1 }] }); console.log(this.e2data1); console.log(this.e2data2); }) .catch(error=> { console.log(error); }); }, // 基于准备好的dom,初始化echarts实例 //注意出myChart2的作用域 myChart2 = echarts.init(document.getElementById('zhLine')); myChart2.setOption({ title: {text: '本月累计趋势图', // textStyle:{ color:'#000',  //颜色 fontStyle:'normal',  //风格 fontWeight:'normal', //粗细 fontFamily:'Microsoft yahei', //字体 fontSize:16,  //大小 align:'center', //水平对齐 lineHeight:50 }, //  title位置 padding:[20, 0, 20, 30] }, legend: { data:['环比',], //折点提示位置 left:'90%', top:'5%' }, grid:{   //显示数据的图表位于当前canvas的坐标轴 x:50, y:80, borderWidth:1, }, tooltip: { trigger: 'axis', backgroundColor : '#ccc', axisPointer: { type: 'cross', crossStyle: { color: '#999' } } }, xAxis : [ { name:'日期', type : 'category', data : this.e2data2, axisLine: { lineStyle: { color: '#999' } }, axisTick:{ show:false }, }, ], yAxis : [ { type : 'value', name:'台数', interval: 30, scale: true, show:true, splitLine:{ show:false }, axisTick:{ show:false }, nameTextStyle:{ padding: [0,0,0,-20], color:'#999999' }, axisLine: { lineStyle: { color: '#999' } }, }, { type: 'value', // name: '温度', min: 0, //取消y轴网格 interval: 25, scale: true, show:true, splitLine:{ show:false }, axisTick:{ show:false }, axisLine: { lineStyle: { color: '#999' } }, } ], series : [ { name:'环比', type:'line', stack: '总量', color:'#fccd35', symbolSize: 8, //按右边y轴显示 yAxisIndex: 1, data:[30, 15, 42, 65, 38, 40, 78,50] }, { name:'柱状图', type:'bar', //柱状图宽度 barWidth: '13%', data:this.e2data1, itemStyle:{ normal:{ color:'#84d1d3' } }, }, ], }); } } 

以上就是解决echarts数据二次渲染不成功的问题的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:解决echarts数据二次渲染不成功的问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址