Echarts地图(散点图)
series
symbolSize(散点图)
首先series是个对象,里面存放多个数组,symbolSize要放到series对象的数组中,具体放在含有type:"scatter"的数组中,但是散点如何使用呢? 我看了一下各种博客、Echarts官网、样例,然后自己测试了一下,发现传给symbolSize中的参数由三种值组成,传过来的参数也就是同级的data属性,data是一个二维数组,其中每个数组中由三种值构成,分别是[经度,纬度,对应的数值]。举个例子,武汉的地理坐标是(114.31,30.52),设置的值为50,那你在data数组中应该是这样[114.31,30.52,50]。 如果你想让散点的大小根据具体数值来变化,修改返回值即可,如图
symbolSize: function (val) { return val[2]; //返回data数组中对应的数值 },
今天遇到坑了。。代码如下
series: [{ name: 投资项目数, // 浮动框的标题 type: effectScatter, coordinateSystem: geo ,// 对应上方配置 data:this.sizeList, symbolSize: function (val) { if(parseInt(val[2]/10)>15){ return 15; } return parseInt(val[2]/10); }, showEffectOn: render, // 绘制完成后显示特效 rippleEffect: { brushType: stroke, //圆点的波纹方式 }, hoverAnimation: true, //动画效果 label: { normal: { formatter: {a}.split(",")[2], position: right, show: true }, emphasis: { //label标签样式控制 show: true } }, zlevel: 1 //用于分层 },
label中的formatter格式化问题 **formatter:’{a}’.split(",")[2]**是可以显示的,显示的是特定的值 但是在tooltip提示框中的formatter这样写却不好使,formatter:’{c}’.split(",")[2],显示的却是{c}完整的字符串,用substring()截取也不好使(前提已经用typeof测过了,是String类型)… 看来用字符串模板不好使,试一下用回调函数
formatter: function(params){ // console.log(params); return params.seriesName+"<br>"+params.name+":"+params.value[2]; }
最后通过回调函数终于弄出来啦~,效果如图 最后需要提醒一下,有可能会有人问,为什么data数组对象中的value不只设置投资项目数的值? 由于要在相应的城市下显示项目数,所以就像文章头说的那样,每个数组中由三种值构成,分别是[经度,纬度,对应的数值],前两个值要存放城市的经纬度,所以value就需要拆分,把项目数挑出来~
额,o_o ....echarts中的属性好多,多背背相关的单词吧。。