实现比较简单,在series.data[i]上加个value属性,visualMap指定维度和系列即可。
但是,如果有其他系列,且其visualMap数据映射维度不为0(比如scatter,value为[x, y, mapValue],映射维度为2),就会有维度冲突。
起因是项目依赖升级,echarts从4升到5,有个地图的功能是这样,但是升级后线画不出来。本以为是lines或geo配置有误,找了半天定位是visualMap的问题。接着又到echarts GitHub issue上找类似问题,看源码。
源码定位也有一点收获:
- echarts包只管配置,绘制代码都在zrender里,比如这次定位的lines,位于zrender/lib/graphic/shape/Polyline
- 其他忘了,主要看了lines、visualMap和zrender的一些部分
尝试构造lines.data数组或value数组,都不行,lines只取value的第一项。
又考虑将visualMap映射维度设为0,其他系列指定data的1、2项为坐标,也以失败告终。
最后解决是将dimension和seriesIndex属性删了,利用默认值的特性
dimension
关于4能画出线但5不行的猜想:当指定dimension的data为undefined时,4会给个默认值0,刚好与实际值在同一个区间,所以误打误撞,显示是正常的。
网友评论