echarts图表-饼图、柱状图、折线图、散点图之间相互切换

简介: echarts图表-饼图、柱状图、折线图、散点图之间相互切换

如有不足的地方还望大家多多指点

1.创建简单的图表

首先第一步下载echarts.js插件

点击这里前往下载

点进去之后跟着步骤进行下载

下载完之后引入./js/echarts.js插件

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

第二步:

创造一个容器,必须设置宽和高,具体大小不固定

<div id="main" style="width: 100%;height:99vh;"></div>

第三步:

创建一个script标签

<script type="text/javascript"></script>

第四步:

通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法生成一个简单的柱状图

下面就是完整的代码。然后具体编辑可以根据上面的链接进行修改哦~

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>ECharts</title>
    <!-- 引入刚刚下载的 ECharts 文件 -->
    <script src="./js/echarts.js"></script>
  </head>
  <body>
    <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
    <div id="main" style="width: 100%;height:99vh;"></div>
    <script type="text/javascript">
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById('main'));
      // 指定图表的配置项和数据
      var option = {
        title: {
          text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
          data: ['销量']
        },
        xAxis: {
          data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
        },
        yAxis: {},
        series: [
          {
            name: '销量',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
          }
        ]
      };
      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    </script>
  </body>
</html>

最终效果如下:

2.结构样式

<div id="main" style="width: 100%;height:99vh;"></div>
    <div style="position: absolute;bottom: 20px;left: 40%;">
      <button id="sector">饼图</button>
      <button id="Cylindrical">柱状图</button>
      <button id="Folding">折线图</button>
      <button id="Scatterplot">散点图</button>
    </div>

3.json数据

let data;
      let xml = new XMLHttpRequest()
      xml.open('GET', 'js/index.json')
      xml.send()
      xml.onreadystatechange = function() {
        if (xml.status == 200 && xml.readyState == 4) {
          let text = xml.responseText;
          data = JSON.parse(text)
          title(data)//调用数据类型转换函数
          box(data)//调用表格渲染函数
        }
      }
[{
    "name": "小张",
    "type": "line",
    "color": [{
        "offset": 0,
        "color": "rgb(225,225,0)"
      },
      {
        "offset": 1,
        "color": "rgb(85, 255, 127)"
      }
    ],
    "data": [{
        "name": "语文",
        "value": 124
      },
      {
        "name": "数学",
        "value": 103
      },
      {
        "name": "英语",
        "value": 15
      },
      {
        "name": "化学",
        "value": 24
      },
      {
        "name": "物理",
        "value": 258
      },
      {
        "name": "地理",
        "value": 31
      },
      {
        "name": "体育",
        "value": 329
      },
      {
        "name": "生物",
        "value": 44
      },
      {
        "name": "历史",
        "value": 51
      }
    ]
  },
  {
    "name": "小红",
    "type": "line",
    "color": [{
        "offset": 0,
        "color": "rgb(225,225,0)"
      },
      {
        "offset": 1,
        "color": "rgb(0, 170, 255)"
      }
    ],
    "data": [{
        "name": "语文",
        "value": 192
      },
      {
        "name": "数学",
        "value": 103
      },
      {
        "name": "英语",
        "value": 115
      },
      {
        "name": "化学",
        "value": 224
      },
      {
        "name": "物理",
        "value": 138
      },
      {
        "name": "地理",
        "value": 141
      },
      {
        "name": "体育",
        "value": 152
      },
      {
        "name": "生物",
        "value": 261
      },
      {
        "name": "历史",
        "value": 171
      }
    ]
  },
  {
    "name": "小王",
    "type": "line",
    "color": [{
        "offset": 0,
        "color": "rgb(225,225,0)"
      },
      {
        "offset": 1,
        "color": "rgb(255, 170, 255)"
      }
    ],
    "data": [{
        "name": "语文",
        "value": 62
      },
      {
        "name": "数学",
        "value": 73
      },
      {
        "name": "英语",
        "value": 85
      },
      {
        "name": "化学",
        "value": 94
      },
      {
        "name": "物理",
        "value": 108
      },
      {
        "name": "地理",
        "value": 111
      },
      {
        "name": "体育",
        "value": 121
      },
      {
        "name": "生物",
        "value": 131
      },
      {
        "name": "历史",
        "value": 141
      }
    ]
  },
  {
    "name": "小陈",
    "type": "line",
    "color": [{
        "offset": 0,
        "color": "rgb(225,225,0)"
      },
      {
        "offset": 1,
        "color": "rgb(85, 255, 255)"
      }
    ],
    "data": [{
        "name": "语文",
        "value": 42
      },
      {
        "name": "数学",
        "value": 53
      },
      {
        "name": "英语",
        "value": 55
      },
      {
        "name": "化学",
        "value": 64
      },
      {
        "name": "物理",
        "value": 68
      },
      {
        "name": "地理",
        "value": 71
      },
      {
        "name": "体育",
        "value": 81
      },
      {
        "name": "生物",
        "value": 91
      },
      {
        "name": "历史",
        "value": 101
      }
    ]
  },
  {
    "name": "小董",
    "type": "line",
    "color": [{
        "offset": 0,
        "color": "rgb(225,225,0)"
      },
      {
        "offset": 1,
        "color": "rgb(255, 255, 127)"
      }
    ],
    "data": [{
        "name": "语文",
        "value": 22
      },
      {
        "name": "数学",
        "value": 33
      },
      {
        "name": "英语",
        "value": 35
      },
      {
        "name": "化学",
        "value": 44
      },
      {
        "name": "物理",
        "value": 48
      },
      {
        "name": "地理",
        "value": 51
      },
      {
        "name": "体育",
        "value": 61
      },
      {
        "name": "生物",
        "value": 71
      },
      {
        "name": "历史",
        "value": 81
      }
    ]
  }
]

4.渲染图表函数

function box(data) {
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        // 指定图表的配置项和数据
        var option = {
          title: {
            text: '成绩表',  
            textStyle: {
              color: '#ffaaff'
            }
          },
          toolbox: {
            feature: {
              saveAsImage: {},
              restore: {},
            }
          },
          tooltip: {
            trigger: 'item',
            axisPointer: {
              type: 'cross',
              label: {
                backgroundColor: '#6a7985'
              }
            }
          },
          legend: {
            data: '',
            show: true,
            backgroundColor: '#aaffff',
            shadowBlur: 22,
            shadowColor: 'red'
          },
          xAxis: {
            data: tel,
            show: status
          },
          yAxis: {
            show: status
          },
          series: list
        };
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
      }

5.柱状图和折线图还有散点图的数据格式

function title(data) {
        status = true
        tel = ['语文', '数学', '英语', '化学', '物理', '地理', '体育', '生物', '历史']
        list = [];
        for (let i = 0; i < data.length; i++) {
          let obj = {
            type: data[0].type,
            name: data[i].name,
            data: data[i].data,
            step: data[i].step
          }
          list.push(obj)
          name.push(data[i].name)
        }
      }

6.柱状图

1. Cylindrical.onclick = function() {
2.        data[0].type = 'bar'
3.        title(data)
4.        box(data)
5.      }

7.折线图

  Folding.onclick = function() {
      data[0].type = 'line'
        title(data)
        box(data)
      }

8.饼图

由于饼图的格式与其他不同所以我们要再次进行转换然后在调用渲染函数

sector.onclick = function() {
        tel = ''
        status = false
        kill = [];
        list = [];
        nam = [];
        for (let i = 0; i < data.length; i++) {
          data[i].type = 'pie'
          let num = 0;
          for (let q = 0; q < data[i].data.length; q++) {
            num += data[i].data[q].value
          }
          kill.push(JSON.parse(num))
          let ob = {
            name: data[i].name,
            value: kill[i]
          }
          nam.push(ob)
          let obj = {
            name: '总成绩',
            type: data[0].type,
            data: nam
          }
          list.push(obj)
        }
        box(data)
      }

9.散点图

Scatterplot.onclick = function() {
        data[0].type = 'scatter'
        title(data)
        box(data)
      }


相关文章
|
1月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
57 1
|
1月前
|
算法 Java Linux
java制作海报五:java 后端整合 echarts 画出 折线图,项目放在linux上,echarts图上不显示中文,显示方框口口口
这篇文章介绍了如何在Java后端整合ECharts库来绘制折线图,并讨论了在Linux环境下ECharts图表中文显示问题。
39 1
|
2月前
|
数据格式
ECharts 饼图
本章节我们将绘制饼图。
57 15
|
1月前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
232 0
|
1月前
|
JSON JavaScript 前端开发
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
401 0
|
2月前
|
Web App开发 数据可视化 前端开发
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
本文介绍了ECharts的基本使用和语法格式,包括如何引入ECharts、创建容器、初始化echarts实例对象、配置option参数和一些基础图表的绘制方法。文章还提供了简单图表绘制和使用图例添加的示例代码,以及对ECharts特性和优势的概述。
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
|
1月前
|
XML 前端开发 数据库
echarts饼图前后端代码SpringCloud+Vue3
echarts饼图前后端代码SpringCloud+Vue3
32 0
|
3月前
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
482 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实现图表的制作

热门文章

最新文章