ECharts饼图指引线:优雅添加自定义圆点
许多开发者在创建ECharts饼图时,希望在数据标签的引导线上添加自定义圆点,以提升图表的美观度和信息传达效果。本文提供一种高效简洁的方法,避免了多图层叠加的复杂性。
以往尝试在label.formatter中直接添加圆点,或使用双饼图叠加的方法,都存在圆点位置不精确或交互困难等问题。 本文的核心在于巧妙利用label.formatter和label.rich属性精确控制圆点位置。
以下代码展示了如何在单个饼图中实现指引线上的自定义圆点:
let echartData = [ { name: 'A类', value: 3720 }, { name: 'B类', value: 2920 }, { name: 'C类', value: 2200 }, { name: 'D类', value: 1420 }, { name: 'E类', value: 3200 }, { name: 'F类', value: 2420 }, { name: 'G类', value: 2200 }, { name: 'H类', value: 1420 }, { name: 'I类', value: 3200 }, { name: 'J类', value: 2420 } ]; option = { series: [{ name: '下月应收件保费占比最高的产品', type: 'pie', radius: ['43%', '73.4%'], center: ['50%', '50%'], hoverAnimation: false, data: echartData, label: { normal: { formatter: (params) => `{icon|●}{name|${params.name}} {value|${params.value}}`, rich: { icon: { fontSize: 16, color: 'inherit' }, name: { fontSize: 18, padding: [0, 0, 0, 10], color: '#000' }, value: { fontSize: 14, fontWeight: 'bolder', padding: [10, 0, 0, 20], color: 'inherit' } } } } }] };
这段代码通过{icon|●}在formatter中插入圆点,并使用rich属性精确控制圆点和文本的样式及间距(padding属性)。 这样,圆点就能完美地贴合在指引线上,避免了之前方法的缺陷。 您可以根据需要调整颜色、字体大小等样式属性。 此方法简洁高效,避免了多图层叠加的复杂性,并确保了良好的交互体验。