timeline-markpoint

描述:当前是关于Echarts图表中的 示例。
 
            var data0 = [0, 0, 0, 0, 0, 0, 0]
var data = [60, 85, 110, 160, 90, 80, 190]
var xdata = ['06-02', '06-03', '06-04', '06-05', '06-06', '06-07', '06-08']
var color = ['#EAEAEA', '#454545', '#000000']
// 定义变量xIndex 表示X轴序号, Ymonth 表示柱状图的label值
var xIndex,Ymonth


var markArr = [],
    temObj = null;
data.forEach(function(v, i) {
        
        temObj = {
            value: v,
            xAxis: i,
            yAxis: v
        }

    markArr.push(temObj)
});

option = {
    // backgroundColor: color[2],
    // 关闭提示框, 替换为柱状图的点击事件
    tooltip: {
        trigger: "none"
    },
 
    grid: {
        left: "10%",
        top: "35%",
        bottom: "10%",
        right: "10%",
        containLabel: true
    },
     dataZoom: [{
            type: 'slider',
            show: true,
            height: 20,
            left: '10%',
            right: '10%',
            bottom: '6%',
            start: 50,
            end: 100,
            textStyle: {
                 color:'rgba(0,0,0,.7)',
                fontSize: 12,
            },
        }, {
            type: 'inside'
        }

    ],
    xAxis: {
        data: xdata,
        type: 'category',
        splitLine: {
            show: false
        },
        axisLine: {
            show: false
        },
        axisTick: {
            show: false
        },
        axisLabel: {
            color:'rgba(0,0,0,.7)',
            // color: color[1],
            fontSize: 14,
            margin: 20
        }
    },
    yAxis: {
        type: 'value',
        splitNumber: 4,
        interval: 50,
        splitLine: {
            show: true,
            lineStyle: {
                color:'rgba(0,0,0,.7)',
                // color: color[1],
                type: 'dashed'
            }
        },
        axisLine: {
            show: false,
        },
        axisTick: {
            show: false
        },
        axisLabel: {
            color:'rgba(0,0,0,.7)',
            // color: color[1],
            fontSize: 14
        }
    },
    series: [{
            type: 'bar',
            barWidth: 2,
            data: data,
           
           color:'rgba(0,0,0,.7)',
            label: {
                show: true,
                position: 'top',
                // 标签刻度值位置
                offset: [0, -15],
                fontSize: 16,
                formatter: function(params) {
                    // 判断收益是否大于0, 或者是否对应当前数据
                    if(params.value === 0 || params.value !== Ymonth) {
                        return ''
                    } else {
                        return params.value
                    }
                }
            },
            markPoint:{
                symbol:'rect',
                symbolSize:[100,50],
                symbolOffset:[0, '-50%'],
                itemStyle:{
                    normal:{
                        color:'rgba(0,0,0,.3)',
                    }
                },
                label:{
                    show:true,
                    color:'rgba(0,0,0,1)',
                    formatter:'xxxxxx{c}%'
                },
                data:markArr
            }
        },
        // 俩散点图作为圆柱端点
        {
            type: 'scatter',
            symbolSize: 8,
            itemStyle: {
                borderWidth: 2.5,
                borderColor: color[0],
                color: color[2],
                opacity: 1
            },
            silent: true,
            data: data0
        },
        // {
        //     type: 'scatter',
        //     symbolSize: 8,
        //     itemStyle: {
        //         borderWidth: 2.5,
        //         borderColor: color[0],
        //         color: color[2],
        //         opacity: 1
        //     },
        //     silent: true,
        //     data: data
        // }

    ]
}

// 给每条数据的热区增加点击事件
myChart.getZr().on('click', function(params) {
    var pointInPixel= [params.offsetX, params.offsetY]
    if (myChart.containPixel('grid', pointInPixel)) {
        var pointInGrid = myChart.convertFromPixel({seriesIndex: 0}, pointInPixel)
        // X轴序号
        xIndex = pointInGrid[0]
        // 获取当前图表的option
        var op = myChart.getOption()
        // 获得图表中我们想要的数据
        Ymonth = op.series[0].data[xIndex]
        // console.log('点击了第' + xIndex + '条数据')
        myChart.setOption({
            xAxis: [{
                axisLabel: {
                    color: function(value, index) {
                        return index === xIndex ? color[0] : color[1]
                    }
                }
            }]
        })
    }
})