交互API

全局echarts对象

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

  • echarts.init

  初始化ECharts实例对象使用主题

  • echarts.registerTheme

  注册主题只有注册过的主题,才能在init方法中使用该主题

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

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

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

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

<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 box = echarts.init(document.querySelector("div"))
    var xDataArr = ['张三', '李四', '王五', '赵六']
    var yDataArr = [80, 90, 70, 80]
    var option = {
      toolbox: {
        feature: {
          saveAsImage: {}
        }
      },
      xAxis: {
        type: 'category',
        data: xDataArr
      },
      yAxis: {
        type: 'value'
      },
      series: [
        {
          type: 'bar',
          data: yDataArr,
          markPoint: {
            data: [
              {
                type: 'max', name: '最大值'
              },
              {
                type: 'min', name: '最小值'
              }
            ]
          },
          markLine: {
            data: [
              {
                type: 'average', name: '平均值'
              }
            ]
          },
          label: {
            show: true,
            rotate: 60
          },
          barWidth: '30%'
        }
      ]
    }
    box.setOption(option)

    var box2 = echarts.init(document.querySelector('#div1'))
    $.get('json/map/china.json', function(res){
      echarts.registerMap('china', res)
      var option2 = {
        geo: {
          type: 'map',
          map: 'china'
        }
      }
      box2.setOption(option2)
       echarts.connect([box, box2]) // 将柱状图和地图关联起来
    })
  </script>
</body>

   加载的图片                                  下载之后的图片

 

 echartsInstance对象

 

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

1>echartsInstance.setOption

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

2>echartsInstance.resize

重新计算和绘制图表,一般和window对象的resize事件结合使用

window.onresize = function(){
  box.resize();
}
或者
windows.onresize=box.resize

3>echartsInstance.on和echartsInstance.off

绑定或者解绑事件处理函数

  • 鼠标事件

常见事件: 'click'、'dblclick'、'mousedown'、'mousemove'、'mouseup' 等事件,参数 arg:  和事件相关的数据信息

box.on('click', function (arg) {
  // console.log(arg)
  console.log('点击了')
})
解绑事件:
box.off('click')
  • ECharts 事件

常见事件:legendselectchanged、'datazoom'、'pieselectchanged'、'mapselectchanged'等,事件参数 arg:  和事件相关的数据信息

box.on('legendselectchanged', function (arg) {
  console.log(arg)
  console.log('图例选择发生了改变...')
})
  • echartsInstance.dispatchAction

主动触发某些行为, 使用代码模拟用户的行为

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

清空当前实例,会移除实例中所有的组件和图表

清空之后可以再次 setOption

  • echartsInstance.dispose

销毁实例

销毁后实例无法再被使用

 

posted @ 2021-11-10 22:57  keyeking  阅读(34)  评论(0编辑  收藏  举报