echarts 认知笔记

0、echarts.setOption的核心认知

请注意,它是合并对象,而不是替换对象。

举个简单的例子,如果你第一次setOption时在series中配置了10个对象。

那么你下一次你意图使用只有两个对象的series来替换时,你并不能删除原有的10个,你只能替换series数组最前的两个。

明白了吧?如果不明白的话,可以使用myCharts.getOption()打印一下。

 

myCharts.setOption({ 
    series: [
        { ... }, 
        { ... }
    ]
})

但你甚至不能使用10个空对象来替换,为啥?因为是合并对象,而不是替换,如果你提供了空对象,通过合并Object.assign了解一下实际上还是原来的配置。

 

 

如果你真的想删除这10个,要么使用myCharts.clear() 。 这是可行的,但这可能又不是你想要的。

或者就是将这10个series循环替换掉核心属性如data,类似series.effectScatter这种配置如果没有data那就等于不存在。

 

 

1、ehcart legend的认知

legend 默认是根据所有series的name属性来生成的。但通常都是由我们自定义一个字符串数组来作为data属性的值。

注意:如果你想为自己的effectScatter使用该关联的话,你必须插入多次不同颜色的series.effectScatter配置才行。

legend: {
    orient: 'horizontal',
    selectedMode: 'multiple',
    bottom: '0',
    left: 'center',
    width: 740,
    itemWidth: 20,
    itemHeight: 20,
    textStyle: {
        color: '#000',
        fontSize: 16
    },
    data: ['治安消防', '交通管理', '市场管理', '民政救济', '文教卫体', '三农问题', '重大突发事件', '涉法事项', '涉军涉警', '无效来电', '行政效能投诉', '城市建设', '房产管理', '环境保护', '市容城管', '交通运输', '经济财贸', '其他事件'],
}

 

  

2、tooltip 的认知

http://gallery.echartsjs.com/editor.html?c=xBkU4Ocw-7&tdsourcetag=s_pctim_aiomsg

虽然官网说series.effectScatter中可以配置 tooltip ,但我试了几遍还是没反应,只能在根配置中起到效果。

其实也一样可以达到目的,只需要在formatter中进行过滤,如果非effectScatter的就不return,就不会显示tooltip 了。

tooltip: {
    show: true,
    trigger:'item',
    alwaysShowContent:true,
    backgroundColor:'rgba(50,50,50,0.7)',
    hideDelay:100,
    triggerOn:'mousemove',
    enterable:true,
    padding: 15,
    formatter: function (params, ticket, callback) {
        // 必须是effectScatter才可以出现tooltip
        if (params.componentSubType === 'effectScatter') {
            return `<div> ... </div>`
        }
    }
},

 

posted @ 2018-10-20 21:26  贝尔塔猫  阅读(504)  评论(0编辑  收藏  举报