解决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 相关文章推荐
ArrayList类(增强版)
Apr 04 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
JavaScript的作用域和块级作用域概念理解
Sep 21 Javascript
js阻止事件追加的具体实现
Oct 15 Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 Javascript
vue双向绑定简要分析
Mar 23 Javascript
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
深入理解Vue2.x的虚拟DOM diff原理
Sep 27 Javascript
微信小程序支付功能 php后台对接完整代码分享
Jun 12 Javascript
彻底弄懂 JavaScript 执行机制
Oct 23 Javascript
Angular7.2.7路由使用初体验
Mar 01 Javascript
微信打开网址添加在浏览器中打开提示的办法
May 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 页面编码声明方法详解(header或meta)
2010/03/12 PHP
队列在编程中的实际应用(php)
2010/09/04 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python利用ansible分发处理任务
2015/08/04 Python
python监控文件并且发送告警邮件
2018/06/21 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
eBay美国官网:eBay.com
2020/10/24 全球购物
会计实习生工作总结的自我评价
2013/10/07 职场文书
中专生的个人自我评价
2013/12/11 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
有关爱国演讲稿
2014/05/07 职场文书
骨干教师考核方案
2014/05/09 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书