IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> ECharts笔记 -> 正文阅读

[JavaScript知识库]ECharts笔记

ECharts的基本使用

ECharts官网

使用步骤

  1. 引入 echarts.js 文件

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

  2. 准备一个呈现图表的盒子

    <div id="main" style="width: 600px;height:400px;"></div>   

  3. 初始化 echarts 实例对象

    var myChart =echarts.init(document.getElementById('main'))

  4. 准备配置项

    var option = {
    ??xAxis: { // x轴
    ????type: 'category',//类名
    ????data: ['小明', '小红', '小王']
    ?},
    ??yAxis: {// y轴
    ????type: 'value'//数组
    ?},
    ??series: [
    ???{
    ??????name: '语文',
    ??????type: 'bar',//图标类型
    ??????data: [70, 92, 87],
    ???}
    ?]
    }

  5. 将配置项设置给 echarts 实例对象

    myChart.setOption(option)

除了配置项会发生改变之外,其他的代码 都是固定不变的

ECharts常用的图表

  • 柱状图bar(柱状图描述的是分类数据,呈现的是每一个分类中有多少)

  • 折线图 line (分析数据随时间的变化趋势)

  • 散点图 scatter (分析不同维度数据之间的相关性)

  • 饼图 pie (分析不同分类的数据的占比情况)

  • 地图 map (分析不同地理位置上数据的差异)

  • 雷达图 radar(分析多个维度的数据与标准数据的对比情况)

  • 仪表盘图 gauge(展现某个指标的进度或实际情况 )

配置项小结

通用配置

  • title 标题

    • textStyle borderWidth borderColor borderRadius 文字样式 边框宽度 边框颜色 边框圆角

      left top right bottom 左边 顶部 右边 底部

  • tooltip 提示内容

    • trigger triggerOn formatter 触发类型 触发时机 内容自定义

  • toolbox.feature

    • saveAsImage dataView restore dataZoom magicType 保存图片 数据视图 重置 缩放 图表转换

  • legend 图例数据

    • data 图例数据, 需要和series数组中某组数据的name值一致

直角坐标系配置

(bar,line,scatee)

  • grid

    showborderWidthborderColorlefttopright
    是否可见边框宽度边框颜色左边顶部右边

    还有宽高和底部等

  • axis

    typedatapositon
    轴类型数据显示位置
  • dataZoom

    typexAxisIndexyAxisIndexstartend
    缩放块类型x轴索引y轴索引开始结束

具体详情配置可参照官方手册

高级配置

显示相关


  • 主题 (默认俩款,可自定义)

    var chart = echarts.init(dom, 'light')
    var chart = echarts.init(dom, 'dark')
  • 调色盘(局部全局、渐变色)

  • 样式

  • 自适应

    • 步骤1:监听窗口大小变化

    • 步骤2:在事件处理函数中调用 ECharts 实例对象的 resize 即可

    • <!DOCTYPE html>
      <html lang="en">
      <head>
      ??<script src="js/echarts.min.js"></script>
      </head>
      <body>
      ??<div style=" height:400px;border:1px solid red"></div>
      <script>
      ??var mCharts = echarts.init(document.querySelector("div"))
      ??var xDataArr = ['张三', '李四', '王五', '闰土', '小明', '茅台', '二妞', '大
      强']
      ??var yDataArr = [88, 92, 63, 77, 94, 80, 72, 86]
      ??var option = {
      ????xAxis: {
      ??????type: 'category',
      ??????data: xDataArr
      ???},
      ????yAxis: {
      ??????type: 'value'
      ???},
      ????series: [
      ?????{
      ????????type: 'bar',
      ????????data: yDataArr
      ?????}
      ???]
      ?};
      ?mCharts.setOption(option)
      ??// 监听window大小变化的事件
      ??window.onresize = function () {
      ????// 调用echarts示例对象的resize方法
      ????mCharts.resize()
      ?}
      ??// window.onresize = mCharts.resize
      </script>
      </body>
      </html>

动画

ECharts 已经内置好了加载数据的动画, 我们只需要在合适的时机显示或者隐藏即可

加载动画

  • 显示加载动画

    • mCharts.showLoading()
      一般, 我们会在获取图表数据之前 显示加载动画

  • 隐藏加载动画

    • mCharts.hideLoading()
      一般, 我们会在获取图表数据之后 隐藏加载动画, 显示图表

增量动画


所有数据的更新都通过 setOption 实现, 我们不用考虑数据到底产生了那些变化, ECharts 会找到两组 数据之间的差异然后通过合适的动画去表现数据的变化

动画的配置


  • 开启动画 animation: true

  • 动画时长 animationDuration: 5000

  • 缓动动画 animationEasing : 'bounceOut'

    linear ,线性变化, 这样动画效果会很均匀 bounceOut ,这样动画效果会有一个回弹效果

  • 动画阈值 animationThreshold: 8 单种形式的元素数量大于这个阈值时会关闭动画

交互API

全局echarts对象

全局 echarts 对象是引入 echarts.js 文件之后就可以直接使用的

  • echarts.init(初始化ECharts实例对象 使用主题)

  • echarts.registerTheme (注册主题 只有注册过的主题,才能在init方法中使用该主题)

  • echarts.registerMap

    注册地图数据
    $.get('json/map/china.json', function (chinaJson) {
    ??????echarts.registerMap('china', chinaJson);
    });
    geo组件使用地图数据
    var option = {
    ??geo: {
    ?????type: 'map',
    ?????map: 'china',
    ?},
    })

  • echarts.connect

    • 一个页面中可以有多个独立的图表

    • 每一个图表对应一个 ECharts 实例对象

    • connect 可以实现多图关联,传入联动目标为 EChart 实例,支持数组

      <!DOCTYPE html>
      <html lang="en">
      <head>
      ??<script src="js/echarts.min.js"></script>
      ??<script src="js/jquery.min.js"></script>
      </head>
      <body>
      ??<div style="width: 600px;height:400px;border:1px solid red"></div>
      ??<div style="width: 600px;height:400px;border:1px solid green" id="div1">
      </div>
      <script>
      ??var mCharts = echarts.init(document.querySelector("div"), 'itcast')
      ??var xDataArr = ['张三', '李四', '王五', '闰土', '小明', '茅台', '二妞', '大
      强']
      ??var yDataArr = [88, 92, 63, 77, 94, 80, 72, 86]
      ??var option = {
      ????xAxis: {
      ??????type: 'category',
      ??????data: xDataArr
      ???},
      ????toolbox: {
      ??????feature: {
      ????????saveAsImage: {}
      ?????}
      ???},
      ????yAxis: {
      ??????type: 'value'
      ??????},
      ????series: [
      ?????{
      ????????type: 'bar',
      ????????data: yDataArr
      ?????}
      ???]
      ?};
      ??mCharts.setOption(option)
      ??$.get('json/map/china.json', function (chinaJson) {
      ????echarts.registerMap('china', chinaJson)
      ????var mCharts2 = echarts.init(document.querySelector('#div1'));
      ????var option2 = {
      ??????geo: {
      ????????type: 'map',
      ????????map: 'china'
      ?????}
      ???}
      ????mCharts2.setOption(option2)
      ????echarts.connect([mCharts, mCharts2])
      ?})
      </script>
      </body>
      </html>

      这样, 由于我们打开了toolbox中的saveAsImage, 所以会出现下载图片的按钮. 而通过 echarts.connect([mCharts, mCharts2]) , 此时点击下载图片按钮, 保存下来的图片就是两个图 表的图片了.

echartsInstance对象


eChartsInstance 对象是通过 echarts.init 方法调用之后得到的

  • echartsInstance.setOption (设置或修改图表实例的配置项以及数据 多次调用setOption方法 合并新的配置和旧的配置 增量动画)

  • echartsInstance.resize

    重新计算和绘制图表
    一般和window对象的resize事件结合使用
    window.onresize = function(){
    ??myChart.resize();
    }
  • echartsInstance.on echartsInstance.off(绑定或者解绑事件处理函数)

    • 鼠标事件

      常见事件: 'click'、'dblclick'、'mousedown'、'mousemove'、'mouseup' 等
      事件参数 arg: ?和事件相关的数据信息
      
      
      mCharts.on('click', function (arg) {
      ??// console.log(arg)
      ??console.log('饼图被点击了')
      })
      解绑事件:
      
      mCharts.off('click')

    • ECharts 事件

      常见事件:
      legendselectchanged、'datazoom'、'pieselectchanged'、'mapselectchanged'
      等
      事件参数 arg: ?和事件相关的数据信息
      mCharts.on('legendselectchanged', function (arg) {
      ??console.log(arg)
      ??console.log('图例选择发生了改变...')
      })

  • echartsInstance.dispatchAction (主动触发某些行为, 使用代码模拟用户的行为)

    // 触发高亮的行为
    mCharts.dispatchAction({
    ??type: "highlight",
    ??seriesIndex: 0,
    ??dataIndex: 1
    })
    // 触发显示提示框的行为
    mCharts.dispatchAction({
    ??type: "showTip",
    ??seriesIndex: 0,
    ??dataIndex: 3
    })

  • echartsInstance.clear (清空当前实例,会移除实例中所有的组件和表清空之后可以再次 setOption)

  • echartsInstance.dispose(销毁实例销毁后实例无法再被使用)


  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 08:56:16  更:2021-08-28 08:57:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 4:31:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计