插件窝 干货文章 如何在ECharts饼图指引线末端添加自定义圆点?

如何在ECharts饼图指引线末端添加自定义圆点?

圆点 引线 定义 样式 957    来源:    2025-03-20

在ECharts中,饼图的指引线(label line)默认是没有圆点的。如果你想在指引线的末端添加自定义圆点,可以通过以下步骤实现:

1. 使用 series.labelLine 配置指引线

首先,你需要配置饼图的 series.labelLine 属性来显示指引线。

2. 使用 series.labelrich 配置自定义圆点

你可以通过 series.labelrich 配置来添加自定义的圆点。rich 允许你在标签中使用富文本,包括自定义的样式和图标。

示例代码

option = {
    tooltip: {
        trigger: 'item',
        formatter: '{a} <br/>{b}: {c} ({d}%)'
    },
    series: [
        {
            name: '访问来源',
            type: 'pie',
            radius: '55%',
            data: [
                {value: 335, name: '直接访问'},
                {value: 310, name: '邮件营销'},
                {value: 234, name: '联盟广告'},
                {value: 135, name: '视频广告'},
                {value: 1548, name: '搜索引擎'}
            ],
            label: {
                formatter: '{b|{b}}\n{hr|}\n{d|{d}%}',
                rich: {
                    b: {
                        fontSize: 16,
                        lineHeight: 33
                    },
                    hr: {
                        borderColor: '#aaa',
                        width: '100%',
                        borderWidth: 0.5,
                        height: 0
                    },
                    d: {
                        fontSize: 14,
                        padding: [3, 4, 3, 4],
                        borderRadius: 2,
                        backgroundColor: '#eee',
                        color: '#333'
                    },
                    dot: {
                        width: 10,
                        height: 10,
                        borderRadius: 5,
                        backgroundColor: '#ff4500',
                        align: 'center',
                        verticalAlign: 'middle'
                    }
                }
            },
            labelLine: {
                lineStyle: {
                    color: '#999'
                },
                length: 20,
                length2: 30
            },
            emphasis: {
                label: {
                    show: true,
                    fontSize: '20',
                    fontWeight: 'bold'
                }
            }
        }
    ]
};

3. 添加自定义圆点

rich 配置中,你可以定义一个 dot 样式,然后在 formatter 中使用这个样式来显示圆点。

formatter: function (params) {
    return `{dot|}\n{b|${params.name}}\n{hr|}\n{d|${params.percent}%}`;
}

4. 调整指引线和圆点的位置

你可能需要调整 labelLinelengthlength2 属性,以及 rich 中的 dot 样式的位置,以确保圆点与指引线的末端对齐。

最终效果

通过上述配置,你可以在饼图的指引线末端添加一个自定义的圆点,并且可以根据需要调整圆点的样式和位置。

注意事项

  • rich 配置中的 dot 样式可以根据需要进行调整,比如颜色、大小、形状等。
  • 如果指引线的长度或位置不合适,可以通过调整 labelLinelengthlength2 属性来微调。

通过这种方式,你可以在ECharts饼图中实现指引线末端添加自定义圆点的效果。