解决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 相关文章推荐
用jquery生成二级菜单的实例代码
Jun 24 Javascript
node.js学习总结之调式代码的方法
Jun 25 Javascript
jQuery制作可自定义大小的拼图游戏
Mar 30 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
Oct 08 Javascript
javascript生成随机数方法汇总
Nov 12 Javascript
Bootstrap开发实战之第一次接触Bootstrap
Jun 02 Javascript
Bootstrap源码解读按钮(5)
Dec 23 Javascript
原生JS实现在线问卷调查投票特效
Jan 03 Javascript
详解JavaScript 浮点数运算的精度问题
Jul 23 Javascript
原生javascript中this几种常见用法总结
Feb 24 Javascript
JavaScript常用工具函数汇总(浏览器环境)
Sep 17 Javascript
vue 获取url参数、get参数返回数组的操作
Nov 12 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字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
php socket方式提交的post详解
2008/07/19 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
基于PHP Socket配置以及实例的详细介绍
2013/06/13 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
JS实现滚动条触底加载更多
2019/09/19 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
python中的一些类型转换函数小结
2013/02/10 Python
python提示No module named images的解决方法
2014/09/29 Python
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
通过Pandas读取大文件的实例
2018/06/07 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
中医药大学市场营销专业自荐信
2013/09/29 职场文书
实习报告评语
2014/04/26 职场文书
2015年领班工作总结
2015/04/29 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书