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


Posted in Javascript onJuly 20, 2020

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

第一次渲染:

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

第二次渲染:

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

可以看到这里的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数据二次渲染不成功的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
Aug 13 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
Dec 15 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
May 09 Javascript
js移除事件 js绑定事件实例应用
Nov 28 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
BootStrap响应式导航条实例介绍
May 06 Javascript
AngularJS实现路由实例
Feb 12 Javascript
JS实现给json数组动态赋值的方法示例
Mar 19 Javascript
优雅的在React项目中使用Redux的方法
Nov 10 Javascript
vue实现页面滚动到底部刷新
Aug 16 Javascript
分享15个Webpack实用的插件!!!
Mar 31 Javascript
详细分析vue表单数据的绑定
Jul 20 #Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
Jul 20 #Javascript
mpvue 项目初始化及实现授权登录的实现方法
Jul 20 #Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
Jul 20 #Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
Jul 20 #Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
Jul 20 #Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
Jul 20 #Javascript
You might like
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
php中session与cookie的比较
2015/01/27 PHP
php导出生成word的方法
2015/12/25 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
2017/11/21 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
pytorch AvgPool2d函数使用详解
2020/01/03 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
金融学专业大学生职业生涯规划
2014/03/07 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
银行给客户的感谢信
2015/01/23 职场文书
事业单位聘任报告
2015/03/02 职场文书
员工离职通知函
2015/04/25 职场文书
2015年科协工作总结
2015/05/19 职场文书
会计专业自荐信范文
2019/05/22 职场文书