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天前
|
开发者 容器
Echarts饼图实现-今日进度-动态图
构建一个动态旋转的ECharts饼图,包括渐变色和动画效果。初始化ECharts实例,设置图表尺寸和背景,配置标题、颜色、系列数据及自定义渲染。利用`renderItem`绘制弧线和圆点,`getCirlPoint`计算坐标。通过`setInterval`和`draw`函数实现旋转动画。完整代码可在链接下载。
7 0
Echarts饼图实现-今日进度-动态图
Echarts各类图表常用配置项说明,附示例代码
Echarts各类图表常用配置项说明,附示例代码
|
10天前
|
搜索推荐 数据可视化 BI
ECharts 蓝色系-荧光图标折线图01案例
ECharts 案例展示了一周内各路线数据的蓝色荧光折线图,揭示流量趋势。预览包括静态图片和动态GIF。使用ECharts 5.2.0配置图表,包含背景、网格、图例及数据。代码示例初始化图表、定义X轴类别和Y轴值,以及系列颜色。完整案例可在链接中下载。案例结合动态效果与个性化设计,增强数据可视化的吸引力。
14 0
ECharts 蓝色系-荧光图标折线图01案例
|
3天前
|
计算机视觉
Echarts饼图,自定义饼图图例的排列方式, formatter使用语法
Echarts饼图,自定义饼图图例的排列方式, formatter使用语法
|
3天前
|
数据可视化 JavaScript 前端开发
使用 ECharts 绘制3D饼图,立体效果华丽渲染!
使用 ECharts 绘制3D饼图,立体效果华丽渲染!
|
3天前
|
JavaScript Apache CDN
Vue项目使用ECharts实现图表
Vue项目使用ECharts实现图表
13 0
|
7天前
|
Serverless 开发者 容器
Echarts饼图-今日进度-动态图
构建一个动态饼图,采用ECharts,背景为蓝色科技风,有星球转动效果。通过`echarts.init`初始化,设置图表尺寸和背景色,配置`option`对象含标题、颜色等。利用`series`定义渐变色并自定义渲染,通过`renderItem`绘制弧线和圆点。`getCirlPoint`函数计算坐标,`draw`函数更新角度实现动画。代码包括图表初始化、系列配置、动画逻辑等关键部分。完整代码可在链接处下载。
25 0
|
10天前
|
JavaScript Apache 容器
如何使用ECharts制作一个简单的柱状图
如何使用ECharts制作一个简单的柱状图
18 0
|
1月前
|
数据可视化 JavaScript 前端开发
Echarts是一个开源的JavaScript可视化库,用于创建各种类型的图表
Echarts是JavaScript的开源可视化库,Python通过Pyecharts库可调用它来绘制图表。示例展示了如何用Pyecharts创建柱状图:定义图表对象,设置标题和坐标轴,添加X轴、Y轴数据,最后渲染展示。Pyecharts还支持折线图、散点图、饼图等多种图表类型,更多详情可查阅官方文档。
59 0
|
1月前
|
前端开发 JavaScript 定位技术
Docusaurus框架——react+antd+echarts自定义mdx生成图表代码解释文档
Docusaurus框架——react+antd+echarts自定义mdx生成图表代码解释文档
49 0