ECharts图表 折线图自定义->给某个点做标记

21,189 阅读2分钟

ECharts图表是商业级数据图表,是纯Javascript的图表库。最近的项目中出现一个需求,需要折线图某个点着重的标记出来。

在查阅ECharts文档后,以ECharts官方实例的基础上进行修改就可以达成这个目标啦~

附上官方实例链接[gallery.echartsjs.com/editor.html…]:

需求是,黑色三个圆点需要标记出来,黑色的两条线也要以两条虚线自定义画出来。

查找到markPoint属性,设置折线图各个点值;markLine属性,设置虚线值。

markPoint: {
            data: [
                {
                    name:'某个坐标',
                    yAxis:'2.2',
                    xAxis:'04:30',
                    value:'标记1'
                    
                },
                {
                    name:'某个坐标',
                    yAxis:'3',
                    xAxis:'05:30',
                    value:'标记2'
                },{
                    name:'某个坐标',
                    yAxis:'2.1',
                    xAxis:'06:00',
                    value:'标记3'
                }
            ]
        },
markLine: {
            data: [{
                    // type: 'average',
                    yAxis:-1,
                    name: '最小范围',
                    itemStyle: {
                        color: '#2E90D1'
                    }
                },
                {
                    yAxis:5,
                    name:'最大范围',
                    itemStyle: {
                    color: '#2E90D1'
                }
            }]
        }
        
      

完成~

如果希望标注基于直角系的定位,可以通过xAxis,yAxis实现,这两个值都会根据坐标轴类型与值进行计算。

除了上面的方法,下面几种方式也可以指定标注的位置。

1.通过 x, y 属性指定相对容器的屏幕坐标,单位像素,支持百分比。

2.用 coord 属性指定数据在相应坐标系上的坐标位置,单个维度支持设置 'min', 'max', 'average'。

3.直接用 type 属性标注系列中的最大值,最小值。这时候可以使用 valueIndex 指定是在哪个维度上的最大值、最小值、平均值。或者可以使用 valueDim 指定在哪个维度上的最大值、最小值、平均值。

当多个属性同时存在时,优先级按上述的顺序。

示例:

data: [
    {
        name: '最大值',
        type: 'max'
    }, 
    {
        name: '某个坐标',
        coord: [10, 20]
    }, {
        name: '固定 x 像素位置',
        yAxis: 10,
        x: '90%'
    }, 
    {
        name: '某个屏幕坐标',
        x: 100,
        y: 100
    }
]