apache/echarts

[Feature] Support endAngle Configuration for series-sunburst

Closed this issue · 1 comments

What problem does this feature solve?

The current implementation of the series-sunburst chart in ECharts only supports a startAngle property to control the starting angle of the chart. However, it lacks an endAngle property, which makes it impossible to limit the chart to specific angular ranges. This restriction is a significant limitation for use cases where users need to create semi-circular or custom-arc Sunburst charts, such as in dashboards, radial layouts, or data visualizations with overlapping elements that require precise angle control.

For example, in a dashboard, users might want to align a semi-circular Sunburst chart with other half-circle visualizations or restrict the chart to a specific angular range to avoid overlapping with other components.

What does the proposed API look like?

The proposed API introduces a new endAngle property to the series-sunburst configuration. The endAngle property would define the ending angle (in degrees) of the Sunburst chart, similar to how the startAngle currently defines the starting angle.

option = {
  series: [
    {
      type: 'sunburst',
      data: [
        { name: 'A', value: 10 },
        { name: 'B', value: 20 },
        { name: 'C', value: 30 }
      ],
      radius: ['20%', '90%'],
      startAngle: 225, // Start at 225 degrees
      endAngle: -45,  // End at -45 degrees (semi-circle)
      label: {
        show: true,
        position: 'outside'
      }
    }
  ]
};

The startAngle determines where the Sunburst chart begins, in this case at 225 degrees.
The endAngle determines where the Sunburst chart ends, in this case at -45 degrees, creating a custom arc.

This configuration produces a partial circular chart that starts at 225° and ends at -45°, covering an arc of 270°. It follows a similar angle configuration to the series-gauge component (default angle settings).

already doable with a little data preprocessing - Demo
image
📌 please close issue if problem solved.