echarts图表之间的切换

简介: echarts图表之间的切换

首先先引入echarts插件

<script src="./js/echarts.js"></script>

搭建结构哦~

<div class="xin">
            <div id="zhi" onclick="zhixian()">转换为折线统计图</div>
            <div id="zhu" onclick="zhuxing()">转换为柱形统计图</div>
            <div id="qiu" onclick="qiuxing()">转换为散点统计图</div>
            <div id="wcy" onclick="round()">转换为扇形统计图</div>
            <div id="bolang" onclick="bor()">折线统计图2.0版本</div>
        </div>

然后就是呢~在js中引入假数据或外部接口并通过相应的点击事件赋给统计图type相应属性

 

let arr = new XMLHttpRequest();
      arr.open('get', "js/index.json");
      arr.send();
      arr.onreadystatechange = function() {
        if (arr.readyState == 4 && arr.status == 200) {
          let at = arr.responseText;
          obj = JSON.parse(at);
          console.log(obj[0].color);
          // 折线统计图
          zhi.onclick = function() {
            for (let i = 0; i < obj.length; i++) {
              obj[i].type = "line"
            }
            fun(obj)
          }
          // 柱形统计图
          zhu.onclick = function() {
            for (let i = 0; i < obj.length; i++) {
              obj[i].type = "bar"
            }
            fun(obj)
          }
          // 散点统计图
          qiu.onclick = function() {
            for (let i = 0; i < obj.length; i++) {
              obj[i].type = "scatter";
            }
            fun(obj)
          }
          fun(obj);
          // 扇形统计图
          wcy.onclick = function() {
            let num = [];
            let add = [];
            let zo = [];
            let get;
            add = [];
            let zzx = [];
            for (let i = 0; i < obj.length; i++) {
              obj[i].type = "pie";
              let http = 0;
              for (let a = 0; a < obj[i].data.length; a++) {
                http += obj[i].data[a].value;
                num.push(obj[i].name);
                console.log(http);
              }
              zo.push(JSON.parse(http));
              get = {
                value:zo[i],
                name:obj[i].name
              }
              zzx.push(get);
              let jy = {
                name:"测试总成绩",
                type:"pie",
                data:zzx
              }
              add.push(jy)
            }
            console.log(add);
            let option = {
              title: {
                text: '测试单科总成绩'
              },
              tooltip: {
                trigger: 'item'
              },
              xAxis: {
                show: 0 ,
                type: 'category',
                data: there
              },
              toolbox: {
                feature: {
                  restore: {},
                  saveAsImage: {},
                }
              },
              series: add
            };
            box.setOption(option);
          }
          bol.onclick = function(){
            let num = [];
            let there = ["小华", "小张", "小赵", "老魏", "小明"];
            let add = [];
            let zo = [];
            let get;
            add = [];
            let zzx = [];
            for(let i = 0 ; i < obj.length ; i++){
              obj[i].type = "line";
              num.push(obj[i].name);
              get = {
                name: obj[i].name,
                type: obj[i].type,
                stack: 'Total',
                smooth: true,
                lineStyle: {
                  width: 0
                },
                showSymbol: false,
                areaStyle: {
                  opacity: 0.6,
                  color: new echarts.graphic.LinearGradient(0, 0, 0, 1, obj[i].color),
                },
                emphasis: {
                  focus: 'series',
                },
                data: obj[i].data,
              }
              add.push(get)
              console.log(add);
            }
            let option = {
              color: ['#55ff00', '#ff0000', '#ff00ff'],
              title: {
                text: '测试成绩'
              },
              tooltip: {
                trigger: 'axis',
              },
              legend: {
                data: num
              },
              grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
              },
              toolbox: {
                feature: {
                  restore: {},
                  saveAsImage: {},
                }
              },
              xAxis: {
                show: 1 ,
                type: 'category',
                data: there
              },
              yAxis: {
                type: 'value'
              },
              series: add
            };
            box.setOption(option);
          }
        }
      }
      function fun(obj) {
        let get;
        add = [];
        for (let i = 0; i < obj.length; i++) {
          num.push(obj[i].name);
          get = {
            name: obj[i].name,
            type: obj[i].type,
            data: obj[i].data,
          }
          add.push(get);
        }
        thank();
      }
      function thank() {
        let option = {
          color: ['#55ff00', '#ff0000', '#ff00ff'],
          title: {
            text: '测试成绩',
          },
          tooltip: {
            trigger: 'axis',
          },
          legend: {
            data: num,
          },
          grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true,
          },
          toolbox: {
            feature: {
              restore: {},
              saveAsImage: {},
            }
          },
          xAxis: {
            show: 1 ,
            type: 'category',
            data: there
          },
          yAxis: {
            type: 'value'
          },
          series: add
        };
        box.setOption(option);
      }

希望能对大家有帮助哦~

相关文章
|
1月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
51 1
|
28天前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
184 0
|
2月前
|
Web App开发 数据可视化 前端开发
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
本文介绍了ECharts的基本使用和语法格式,包括如何引入ECharts、创建容器、初始化echarts实例对象、配置option参数和一些基础图表的绘制方法。文章还提供了简单图表绘制和使用图例添加的示例代码,以及对ECharts特性和优势的概述。
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
|
3月前
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
456 1
微信小程序使用echarts图表(ec-canvas)
|
3月前
|
前端开发 数据可视化 JavaScript
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
|
3月前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
3月前
Echarts——如何默认选中图表并显示tooltip
Echarts——如何默认选中图表并显示tooltip
59 1
|
3月前
|
JavaScript
Echarts——VUE中非根节点时不显示图表也无报错
Echarts——VUE中非根节点时不显示图表也无报错
38 1
|
4月前
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(10)--- 基于vue-echarts处理各种图表展示
循序渐进VUE+Element 前端应用开发(10)--- 基于vue-echarts处理各种图表展示
|
4月前
|
Apache
Axure rp9 引入Echarts图表 |手动引入图表 Apache Echarts
Axure rp9 引入Echarts图表 |手动引入图表 Apache Echarts
256 1