标签导航:

echarts饼图指引线如何添加自定义圆点?

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属性)。 这样,圆点就能完美地贴合在指引线上,避免了之前方法的缺陷。 您可以根据需要调整颜色、字体大小等样式属性。 此方法简洁高效,避免了多图层叠加的复杂性,并确保了良好的交互体验。