echarts快速踩坑索引

2022-04-281973

如何快速查找相应的配置

当你想改某个位置,但又不知道这部位配置叫什么,可以优先查找术语手册,常用的组件说明都有,点击后即跳转配置文档相应位置;

术语速查手册 - Apache ECharts 术语速查手册

当然,如果再手册上找不着,可以去示例页面查找类似的demo,然后根据其配置内容查找。

Examples - Apache ECharts - 官方示例

如果碰到那些骚里骚气的图表,官方示例找不到,可以试试下方链接。

isqqwE - echarts - Demo

常用配置简要

官方配置文档

对于绘制大部分常用的统计图,其实只需要留意几个配置即可

  • legend - 图例
  • grid - 绘图网格
  • xAxis 、yAxis、series - x 轴 y轴 和 数据系列集
  • dataZoom - 缩放区域

grid 和 dataZoom 多数用于图表绘制的位置控制(另外是X和Y轴边缘线可以利用grid.border处理,就不需要特意掐准x轴和y轴的数值了)

xAxis 、yAxis、series 才是主要数据处理配置 ,三者配置相互作用。 xyAxis 有三种类型( type)

  • 'value' 数值轴,适用于连续数据。

  • 'category' 类目轴,适用于离散的类目数据。为该类型时类目数据可自动从 series.datadataset.source 中取,或者可通过 xAxis.data 设置类目数据。

  • 'time' 时间轴,适用于连续的时序数据,时间刻度会根据轴自动转换。

    虽然时间类型数据也可以用value和category 实现,但是如果时间换算的逻辑写得不好,会对后续的维护非常不友好,比如数据类型、数据范围的变化,基本都需要重新转换。 所以涉及会变动的时间,建议还是直接使用time类

  • 'log' 对数轴。适用于对数数据。

关于交互事件

官方API文档

碰到需要做图表交互的需求,可以使用官方提供的API ,大部分描述都可以在文档中查阅, 这里就只简单讲讲自定义点击事件。

echarts 有提供了click 的鼠标点击事件, 但其只能作用域具体组件(比如线图的线,条状图的条形) ,如果没有数据时, 点什么也不会触发。

如果碰到硬性需求, 可以使用 getZr ,获取整个画布的原生点击事件 ,然后可以利用其原生event进行下一步操作,下方代码demo罗列了几个常用判断。

// 画布原生点击事件处理
myChart.getZr().on('click', (event) => {

     // 获取根据点击的位置
     const pointInPixel = [event.offsetX, event.offsetY];

     // 没有 target 意味着鼠标/指针不在任何一个图形元素上,是点击空白处。
     if (eventStop?.gridClick || !event.target) {}

     // 判断是否在grid表格范围内
     if (myChart.containPixel('grid', pointInPixel)) {} 


     // 获取到所点击的轴下标  dataIndex 数据类型[ int,int ] , 分别时x轴和y轴下标
     //传入坐标到convertFromPixel 方法
     let dataIndex = myChart.convertFromPixel({ seriesIndex: 0 }, pointInPixel);

 });

关于插件

官方直接提供的echarts是基础图表工具 , 所以提供了扩展功能 ,比如词云、地图、特效等。

(扩展下载 - Apache ECharts)

分享
点赞2
打赏
上一篇:代理工具Fiddler -调试与替换接口状态
下一篇:uni-app开发APP端的层级问题