javascript - 请问Echarts堆积图如何实现数据条空白部分的颜色?
PHP中文网
PHP中文网 2017-04-10 17:56:30
[JavaScript讨论组]

图中剩余空白部分,即红色框内颜色如何设置为灰色。
链接描述

app.title = '堆叠条形图';

option = {
    tooltip : {
        trigger: 'axis',
        axisPointer : {            // 坐标轴指示器,坐标轴触发有效
            type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
        }
    },
    legend: {
        data: ['直接访问', '邮件营销','联盟广告','视频广告','搜索引擎']
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis:  {
        type: 'value'
    },
    yAxis: {
        type: 'category',
        data: ['周一','周二','周三','周四','周五','周六','周日']
    },
    series: [
        {
            name: '直接访问',
            type: 'bar',
            stack: '总量',
            label: {
                normal: {
                    show: true,
                    position: 'insideRight'
                }
            },
            data: [320, 302, 301, 334, 390, 330, 320]
        },
        {
            name: '邮件营销',
            type: 'bar',
            stack: '总量',
            label: {
                normal: {
                    show: true,
                    position: 'insideRight'
                }
            },
            data: [120, 132, 101, 134, 90, 230, 210]
        },
        {
            name: '联盟广告',
            type: 'bar',
            stack: '总量',
            label: {
                normal: {
                    show: true,
                    position: 'insideRight'
                }
            },
            data: [220, 182, 191, 234, 290, 330, 310]
        },
        {
            name: '视频广告',
            type: 'bar',
            stack: '总量',
            label: {
                normal: {
                    show: true,
                    position: 'insideRight'
                }
            },
            data: [150, 212, 201, 154, 190, 330, 410]
        },
        {
            name: '搜索引擎',
            type: 'bar',
            stack: '总量',
            label: {
                normal: {
                    show: true,
                    position: 'insideRight'
                }
            },
            data: [820, 832, 901, 934, 1290, 1330, 1320]
        }
    ]
};
PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
高洛峰

默认的有数据了才会渲染,才可以指定颜色,剩余的空白部分连数据都没有,是不可以改变颜色的

怪我咯

你可以用总量减去那5个,剩余部分,再给一个对象。。。

阿神

官方示例,多看文档。

PHPz

提供一个笨点的思路,之前工作中处理过echarts的图表叠加效果:

回到题主的问题:
想设置后面白色的区域为新颜色,就新建一个canvas;
大小同echarts图表一样,用PS或什么软件测出echarts绘制这几个横条的位置,JS绘制矩形色块在我们新建的canvas上面。
通过toDataURL获取到echarts图表绘制出的base64;
再通过putImageData把获得的base64叠加到新的canvas上;
思路图:↓

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号