echarts柱形图中类似这种数据分区效果如何实现?

发布于 2022-09-13 00:35:46 字数 88 浏览 14 评论 0

柱形图中类似这种数据分区效果如何实现?
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疏忽 2022-09-20 00:35:46

借助第二个x坐标轴可以hack出来,分组文字居中需要你自己优化一下。

option = {
    xAxis: [{
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },{
        position: 'bottom',// 将分组x轴位置定至底部,不然默认在顶部
        offset: 55,// 向下偏移,使分组文字显示位置不与原x轴重叠
        axisLine: {
           show: false // 隐藏分组x轴的轴线
        },
        axisTick: {
            length: 1000, // 延长刻度线做分组线 
            inside: true, // 使刻度线相对轴线在上面与原x轴相接,默认在轴线下方
            lineStyle: {color: '#ff9800'},// 非必须,仅为了演示,明显标示出分组刻度线
            interval: function (index, value) {
               return index === 0 || index === 4 || index === 6 // 在0、5、6处各画一条刻度线
            }
        },
        axisLabel: {
                    inside: true,// 使刻度名称相对轴线在上面与原x轴相接,默认在轴线下方
                    interval: 0,// 强制显示全部刻度名
                    formatter: function (val, index) {
                        var _wid = window.innerWidth /70; // 70这个数字请自行对着自己项目页面调试,作者使用echarts示例编辑器window.innerWidth跟实际用于显示的width无法对应上
                        var _pla = new Array(Number(_wid.toFixed(0))).fill(' ');
                        if (val === 'Tue') {
                            return _pla.join('')+'2019'
                        } else if (index === 4) {
                            return _pla.join('')+'2020'
                        } else if (index === 6) {
                            return '2021'
                        }
                    }
                },
        data:['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    }],
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [120, 200, 150, 80, 70, 110, 130],
        type: 'bar'
    }]
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文