解决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资料prototype 属性
Mar 13 Javascript
二叉树先序遍历的非递归算法具体实现
Jan 09 Javascript
js实现checkbox全选和反选示例
May 01 Javascript
jQuery新的事件绑定机制on()示例应用
Jul 18 Javascript
JS实现超简单的鼠标拖动效果
Nov 02 Javascript
js操作cookie保存浏览记录的方法
Dec 25 Javascript
jQuery改变form表单的action,并进行提交的实现代码
May 25 Javascript
从零学习node.js之文件操作(三)
Feb 21 Javascript
javascript 正则表达式分组、断言详解
Apr 20 Javascript
小程序实现上下移动切换位置
Sep 23 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
Oct 11 Javascript
js实现拖拽元素选择和删除
Aug 25 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笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
php实现搜索类封装示例
2016/03/31 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
prototype1.4中文手册
2006/09/22 Javascript
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
javascript版2048小游戏
2015/03/18 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
python 伯努利分布详解
2020/02/25 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
物业工作计划书
2014/01/10 职场文书
个人剖析材料范文
2014/09/30 职场文书
毕业实习计划书
2015/01/16 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技