解决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 相关文章推荐
判断JavaScript对象是否可用的最正确方法分析
Oct 03 Javascript
javascript 防止刷新,后退,关闭
Aug 07 Javascript
javascript实现图片切换的幻灯片效果源代码
Dec 12 Javascript
浅谈checkbox的一些操作(实战经验)
Nov 20 Javascript
Angularjs 基础入门
Dec 26 Javascript
javascript实现简单的html5视频播放器
May 06 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
May 16 Javascript
JavaScript对象数组排序函数及六个用法
Dec 23 Javascript
Vue.js中extend选项和delimiters选项的比较
Jul 17 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
Dec 22 Javascript
详解微信小程序支付流程与梳理
Jul 16 Javascript
JS setTimeout与setInterval的区别
Apr 20 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系列学习之日期函数使用介绍
2012/08/18 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
Python笔记之facade模式
2019/11/20 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
HTML5文档结构标签
2017/04/21 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
演讲稿开场白
2014/01/13 职场文书
网上快餐厅创业计划书
2014/02/01 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
初中学生期末评语
2014/04/24 职场文书
大学英语专业求职信
2014/06/21 职场文书
四查四看整改措施
2014/09/19 职场文书
行政前台岗位职责
2015/04/16 职场文书
2015年计划生育责任书
2015/05/08 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js