echarts怎么实现如下效果?

想用echarts实现如下效果:

clipboard.png

边上有白色描边,明显一点如下图:

clipboard.png

但是现在用边框border实现会有如下问题:

clipboard.png

代码:

 var option = {
                legend: {
                    textStyle: {
                        color: '#999999',
                        fontSize: '12'
                    },
                    selectedMode: false,
                    bottom: 15,
                    data: []
                },
                series: [{
                    name: '',
                    type: 'pie',
                    radius: ['70%', '30%'],
                    center: ['50%', '46%'],
                    minAngle: 20,
                    data: arr1,
                    silent: true,
                    itemStyle: {
                        normal: {
                            borderColor: '#fff',
                            borderWidth:2,
                            label: {
                                show: true,
                                formatter: function (obj) {
                                    if(obj.data == '101'){
                                        return '';
                                    } else {
                                        return obj.percent.toFixed(0) + '%';
                                    }
                                }
                            }

                        }
                    },
                    label: {
                        normal: {
                            position: 'inside'
                        }
                    }
                }],
                color: ['#E1E1E1'],
                textStyle: {
                    fontSize: 14
                }
            };

阅读 3.9k
2 个回答

用另一个环盖住就可以了.让没有border的环层级高一点,盖住有环的.

 var option = {
    legend: {
        textStyle: {
            color: '#999999',
            fontSize: '12'
        },
        selectedMode: false,
        bottom: 15,
        data: []
    },
    series: [{
        name: '',
        type: 'pie',
        radius: ['30%', '70%'],
        center: ['50%', '46%'],      
        data: arr1,
        zlevel: 2,
        silent: true,
        itemStyle: {
            normal: {
                borderColor: '#fff',
                borderWidth:2,
                label: {
                    show: true,
                    formatter: function (obj) {
                        if(obj.data == '101'){
                            return '';
                        } else {
                            return obj.percent.toFixed(0) + '%';
                        }
                    }
                }

            }
        },
        label: {
            normal: {
                position: 'inside'
            }
        }
    },
    {
        name: '',
        type: 'pie',
        radius: ['31%', '69%'],
        center: ['50%', '46%'],      
        data: arr1,
        zlevel: 3,
        silent: true,
        itemStyle: {
            normal: {             
                label: {
                    show: true,
                    formatter: function (obj) {
                        if(obj.data == '101'){
                            return '';
                        } else {
                            return obj.percent.toFixed(0) + '%';
                        }
                    }
                }

            }
        },
        label: {
            normal: {
                position: 'inside'
            }
        }
    }
    ],
    color: ['#E1E1E1'],
    textStyle: {
        fontSize: 14
    }
};

border有问题?有个方案就是同心圆。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题