横向标尺

描述:当前是关于Echarts图表中的 柱状图 示例。
 
            var xMax = 30;
var barWidth = 20;
var kd = [];
var kdUnit = 5;
// 刻度使用柱状图模拟,短设置3,长的设置5;构造一个数据
for (var i = 0, len = xMax; i <= len; i++) {
    if (i > xMax) {
        kd.push('0');
    } else {
        if (i % kdUnit === 0) {
            kd.push('-5');
        } else {
            kd.push('-3');
        }
    }
}
var option = {
    backgroundColor: '#0e1733',
    xAxis: [
        {
            show: false,
            min: 0,
            max: xMax,
            inverse: true,
        },
        {
            show: false,
            data: [],
            min: -3,
            max: 33,
            inverse: true,
        },
    ],
    yAxis: [
        {
            show: false,
            data: [],
        },
        {
            show: false,
            data: [],
        },
        {
            show: false,
            data: [],
        },
        {
            show: false,
            min: -90,
            max: 100,
        },
    ],
    series: [
        {
            name: '急需改造',
            type: 'bar',
            barWidth: 24,
            // silent: true,
            stack: true,
            yAxisIndex: 0,
            data: [
                {
                    value: 5,
                    label: {
                        normal: {
                            show: true,
                            color: '#fff',
                            fontSize: 14,
                            formatter: function (params) {
                                return '优秀';
                            },
                        },
                    },
                    itemStyle: {
                        normal: {
                            color: '#528CED',
                        },
                    },
                },
            ],
        },
        {
            name: ' ',
            type: 'bar',
            stack: true,
            barWidth: 24,
            // silent: true,
            yAxisIndex: 0,
            data: [
                {
                    value: 5,
                    label: {
                        normal: {
                            show: true,
                            color: '#fff',
                            fontSize: 14,
                            formatter: function (params) {
                                return '良好';
                            },
                        },
                    },
                    itemStyle: {
                        normal: {
                            color: '#3DD7C1',
                        },
                    },
                },
            ],
        },
        {
            name: ' ',
            type: 'bar',
            stack: true,
            barWidth: 24,
            // silent: true,
            yAxisIndex: 0,
            data: [
                {
                    value: 5,
                    label: {
                        normal: {
                            show: true,
                            color: '#fff',
                            fontSize: 14,
                            formatter: function (params) {
                                return '一般';
                            },
                        },
                    },
                    itemStyle: {
                        normal: {
                            color: '#E5BB3C',
                        },
                    },
                },
            ],
        },
        {
            name: ' ',
            type: 'bar',
            stack: true,
            barWidth: 5,
            // silent: true,
            yAxisIndex: 0,
            data: [
                {
                    value: 15,
                    label: {
                        normal: {
                            show: true,
                            color: '#fff',
                            fontSize: 14,
                            formatter: function (params) {
                                return '急需改造';
                            },
                        },
                    },
                    itemStyle: {
                        normal: {
                            color: '#EF5286',
                        },
                    },
                },
            ],
        },
        {
            name: '刻度',
            type: 'bar',
            xAxisIndex: 1,
            yAxisIndex: 3,
            label: {
                normal: {
                    show: true,
                    position: 'top',
                    distance: -50,
                    color: '#35F7FF',
                    fontSize: 15,
                    formatter: function (params) {
                        // 因为柱状初始化为0,温度存在负值,所以,原本的0-100,改为0-130,0-30用于表示负值
                        if (params.dataIndex < xMax && params.dataIndex % 10 === 0) {
                            return params.dataIndex - 15;
                        } else {
                            if (params.dataIndex % 10 === 0) {
                                return params.dataIndex - 15;
                            } else {
                                return '';
                            }
                        }
                    },
                },
            },
            data: kd,
            barWidth: 2,
            itemStyle: {
                normal: {
                    color: '#35F7FF',
                    barBorderRadius: 10,
                },
            },
            z: 3,
            markPoint: {
                data: [
                    {
                        value: '-5',
                        xAxis: 15 - 5,
                        y: 200,
                        // symbol: 'image://img/04.png',
                        // symbolSize: [20, 32],
                        itemStyle: {
                            normal: {
                                color: '#E5BB3C',
                                barBorderRadius: 10,
                            },
                        },
                        label: {
                            position: 'top',
                            show: true,
                            color: '#E5BB3C',
                            fontSize: 14,
                            fontWeight: 'bold',
                            formatter: function (params) {
                                return `当前能效` + params.value;
                            },
                        },
                    },
                ],
            },
        },
    ],
};