Implementing Syncfusion ASP.NET Core Accumulation Charts
A comprehensive skill for implementing Syncfusion's ASP.NET Core Accumulation Chart component. This component renders circular data visualizations including Pie, Doughnut, Pyramid, and Funnel charts using Scalable Vector Graphics (SVG).
Table of Contents
When to Use This Skill
Use this skill when you need to:
- Create pie, doughnut, pyramid, or funnel charts in ASP.NET Core applications
- Visualize proportional data or percentage distributions
- Display hierarchical data with pyramid/funnel charts
- Add data labels, tooltips, and legends to accumulation charts
- Implement interactive features (exploding slices, selection, drill-down)
- Handle grouped data or empty points in charts
- Export or print accumulation charts
- Make charts accessible (WCAG 2.2 compliant)
- Dynamically update chart data in real-time
- Customize chart appearance with themes, colors, and gradients
Component Overview
AccumulationChart is a circular graphics component that divides data into segments to illustrate numerical proportions. It supports:
- Chart Types: Pie (including Doughnut variant), Pyramid, Funnel
- Note: Doughnut is achieved by setting
innerRadius on a Pie chart, not a separate type
- Smart Labels: Automatic label positioning to prevent overlapping
- Grouping: Combine small data points based on value or count
- Semi-Charts: Customize start and end angles for semi-pie/doughnut
- Legend: Display additional point information
- Tooltips: Interactive data point details
- Empty Points: Graceful handling of missing data
- Accessibility: Full WCAG 2.2 Level A & AA compliance
- Export: PNG, JPEG, SVG, PDF formats
- Print: Direct browser printing support
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
When to read: Setting up accumulation charts for the first time, or need complete installation and basic implementation guidance.
What you'll learn:
- Prerequisites and system requirements
- Installing Syncfusion NuGet packages
- Registering tag helpers and script resources
- Creating your first pie/doughnut chart
- Basic data binding (dataSource, xName, yName)
- CSS theme imports and script manager setup
- Running and testing the chart
- Complete minimal working example
Chart Types and Variants
📄 Read: references/chart-types.md
When to read: Need to implement specific chart types (Pie, Doughnut, Pyramid, Funnel) or customize chart geometry and appearance.
What you'll learn:
- Pie chart implementation and configuration
- Doughnut chart with inner radius and center labels
- Pyramid chart with width, gap, and neck customization
- Funnel chart with neck dimensions
- Radius customization for all chart types
- Start and end angles for semi-pie/semi-doughnut
- Exploding slices (single and multiple points)
- Chart center positioning
- Complete code examples for each type
Data Visualization Features
📄 Read: references/data-visualization.md
When to read: Enhancing charts with data labels, tooltips, legends, colors, or custom styling.
What you'll learn:
- Data label visibility, positioning, and templates
- Smart labels for overlap prevention
- Connector lines for outside labels
- Tooltip configuration and templates
- Legend positioning, alignment, and customization
- Title and subtitle configuration
- Point colors and gradient fills
- Text mapping from data source
- Border and margin customization
- Complete styling patterns
Data Handling
📄 Read: references/data-handling.md
When to read: Working with complex data scenarios like grouping small values, handling missing data, or updating charts dynamically.
What you'll learn:
- Grouping points by value or count threshold
- Group settings (threshold, mode, color, name)
- Empty points handling (null/undefined values)
- Empty point modes (Zero, Drop, Average, Gap)
- Dynamic data updates and live scenarios
- Data source binding patterns
- Sorting and ordering data
- Edge cases and troubleshooting
Advanced Features
📄 Read: references/advanced-features.md
When to read: Implementing annotations, export/print functionality, or migrating from EJ1 to EJ2.
What you'll learn:
- Chart annotations (text, shapes, images)
- Annotation positioning (coordinate, region, alignment)
- Export to image formats (PNG, JPEG, SVG)
- Export to PDF
- Print functionality and customization
- EJ1 to EJ2 API migration guide
- Performance optimization tips
- Complex implementation patterns
Accessibility
📄 Read: references/accessibility.md
When to read: Making charts accessible for users with disabilities or ensuring WCAG 2.2 compliance.
What you'll learn:
- WCAG 2.2 Level A & AA compliance features
- Keyboard navigation (Tab, arrow keys, Enter)
- ARIA attributes and roles
- Screen reader support and announcements
- High contrast theme support
- Focus indicators and visual feedback
- Color contrast requirements
- Accessible color palettes
- Testing with assistive technologies
- Complete accessible chart implementation
Quick Start Example
Here's a minimal example to render a pie chart in ASP.NET Core:
1. Install Package
Install-Package Syncfusion.EJ2.AspNet.Core -Version <your_version_here>
2. Register Tag Helper (~/Pages/_ViewImports.cshtml)
@addTagHelper *, Syncfusion.EJ2
3. Add Scripts (~/Pages/Shared/_Layout.cshtml)
<head>
<!-- Syncfusion JS -->
<script src="<!-- Add the appropriate Syncfusion CDN script link here -->"></script>
</head>
<body>
<!-- Content -->
<ejs-scripts></ejs-scripts>
</body>
4. Create Pie Chart (~/Pages/Index.cshtml)
@{
List<PieChartData> chartData = new List<PieChartData>
{
new PieChartData { xValue = "Chrome", yValue = 37 },
new PieChartData { xValue = "Firefox", yValue = 22 },
new PieChartData { xValue = "Safari", yValue = 19 },
new PieChartData { xValue = "Edge", yValue = 12 },
new PieChartData { xValue = "Others", yValue = 10 }
};
}
<ejs-accumulationchart id="pieChart" enableSmartLabels="true" title="Browser Market Share" subTitle="Pie chart showing browser usage distribution">
<e-accumulation-series-collection>
<e-accumulation-series dataSource="@chartData" xName="xValue" yName="yValue" name="Browsers">
<e-accumulationseries-datalabel visible="true" position="Outside" name="text" format="p0">
<e-connectorstyle type="Curve" length="20"></e-connectorstyle>
<e-font fontWeight="600"></e-font>
</e-accumulationseries-datalabel>
</e-accumulation-series>
</e-accumulation-series-collection>
<e-accumulationchart-legendsettings position="Bottom" alignment="Center" toggleVisibility="true">
</e-accumulationchart-legendsettings>
<e-accumulationchart-tooltipsettings enable="true" format="${point.x}: <b>${point.y}%</b>" header="Browser">
</e-accumulationchart-tooltipsettings>
</ejs-accumulationchart>
Key Points:
title and subTitle are direct attributes on <ejs-accumulationchart>, NOT child tags
<e-font> is the correct child tag inside <e-accumulationseries-datalabel>, NOT <e-datalabelfont>
- Use
format="p0" for percentage without decimals
5. Define Data Model (~/Pages/Index.cshtml.cs or separate class)
public class PieChartData
{
public string xValue { get; set; }
public double yValue { get; set; }
}
Result: A basic pie chart displaying browser usage statistics.
Common Patterns
Pattern 1: Doughnut/Donut Chart with Center Label
<ejs-accumulationchart id="container">
<e-accumulation-series-collection>
<e-accumulation-series dataSource="chartData" xName="x" yName="y" innerRadius="65%">
<!-- innerRadius goes on series, NOT on chart -->
</e-accumulation-series>
</e-accumulation-series-collection>
<e-accumulationchart-centerlabel text="Mobile<br>Browsers<br>Statistics">
</e-accumulationchart-centerlabel>
<e-accumulationchart-legendsettings visible="false">
</e-accumulationchart-legendsettings>
</ejs-accumulationchart>
Use Case: Dashboard KPIs with center text showing total value.
Pattern 2: Pie Chart with Smart Labels and Tooltips
<ejs-accumulationchart id="smartLabelChart" enableSmartLabels="true" title="Market Share" subTitle="Distribution by browser">
<e-accumulation-series-collection>
<e-accumulation-series dataSource="@chartData" xName="xValue" yName="yValue">
<e-accumulationseries-datalabel visible="true"
position="Outside"
name="text"
format="p0">
<e-connectorstyle type="Curve" length="20"></e-connectorstyle>
<e-font fontWeight="600"></e-font>
</e-accumulationseries-datalabel>
</e-accumulation-series>
</e-accumulation-series-collection>
<e-accumulationchart-legendsettings position="Bottom" alignment="Center" toggleVisibility="true">
</e-accumulationchart-legendsettings>
<e-accumulationchart-tooltipsettings enable="true" format="${point.x}: <b>${point.y}%</b>" header="Browser">
</e-accumulationchart-tooltipsettings>
</ejs-accumulationchart>
Use Case: Preventing label overlap in charts with many small slices.
Pattern 3: Grouped Data with Small Values
<ejs-accumulationchart id="groupedChart">
<e-accumulation-series-collection>
<e-accumulation-series dataSource="@chartData"
xName="xValue"
yName="yValue"
groupTo="11">
</e-accumulation-series>
</e-accumulation-series-collection>
</ejs-accumulationchart>
Use Case: Combining values below 11% into a single "Others" group.
Pattern 4: Funnel Chart with Export
<button id="exportBtn">Export as PNG</button>
<ejs-accumulationchart id="funnelChart">
<e-accumulation-series-collection>
<e-accumulation-series dataSource="@chartData"
xName="xValue"
yName="yValue"
type="Funnel"
neckWidth="15%"
neckHeight="18%">
</e-accumulation-series>
</e-accumulation-series-collection>
</ejs-accumulationchart>
<script>
document.getElementById('exportBtn').onclick = function() {
var chart = document.getElementById('funnelChart').ej2_instances[0];
chart.export('PNG', 'funnel-chart');
};
</script>
Use Case: Sales funnel visualization with image export.
API Reference
AccumulationChart Class
Represents the main accumulation chart component. All properties are defined in the Syncfusion.EJ2.Charts namespace.
Constructor
public AccumulationChart()
Core Properties
| Property |
Type |
Default |
Description |
API Reference |
Accessibility |
AccumulationAccessibility |
null |
Options to improve accessibility for accumulation chart elements |
AccumulationAccessibility |
Annotations |
List<AccumulationAnnotationSettings> |
null |
Annotations for highlighting specific data points |
AccumulationAnnotationSettings |
Background |
string |
null |
Background color (hex or rgba) |
- |
BackgroundImage |
string |
null |
Background image URL |
- |
Border |
AccumulationChartBorder |
null |
Chart border configuration |
AccumulationChartBorder |
Center |
AccumulationChartCenter |
null |
Center position of pie/doughnut (x, y percentages) |
AccumulationChartCenter |
CenterLabel |
AccumulationChartCenterLabel |
null |
Center label configuration for doughnut charts |
AccumulationChartCenterLabel |
DataSource |
object |
null |
Chart data collection |
- |
EnableAnimation |
bool |
true |
Enable chart animation on load |
- |
EnableBorderOnMouseMove |
bool |
true |
Enable border on mouse hover |
- |
EnableExport |
bool |
true |
Enable export to JPEG, PNG, SVG, PDF, XLSX, CSV |
- |
EnableHtmlSanitizer |
bool |
false |
Sanitize untrusted HTML in chart content |
- |
EnablePersistence |
bool |
false |
Persist component state across page reloads |
- |
EnableRtl |
bool |
false |
Enable right-to-left rendering |
- |
EnableSmartLabels |
bool |
true |
Auto-arrange labels to prevent overlap |
- |
FocusBorderColor |
string |
- |
Focus border color for accessibility |
- |
FocusBorderMargin |
double |
0 |
Focus border margin |
- |
FocusBorderWidth |
double |
1.5 |
Focus border width |
- |
Height |
string |
null |
Chart height (e.g., "450px", "100%") |
- |
HighlightColor |
string |
"" |
Color for highlighting data points on hover |
- |
HighlightMode |
AccumulationHighlightMode |
None |
Highlight mode: None or Point |
AccumulationHighlightMode |
HighlightPattern |
SelectionPattern |
None |
Pattern for highlighting series/points |
SelectionPattern |
IsMultiSelect |
bool |
false |
Enable multiple point selection (requires selectionMode=Point) |
- |
LegendSettings |
AccumulationChartLegendSettings |
null |
Legend configuration |
AccumulationChartLegendSettings |
Locale |
string |
"" |
Culture/localization override (default: en-US) |
- |
Margin |
AccumulationChartMargin |
null |
Chart margins (left, right, top, bottom) |
AccumulationChartMargin |
NoDataTemplate |
object |
null |
Template for empty chart state |
- |
SelectedDataIndexes |
object |
null |
Initial selected point indexes |
- |
SelectionMode |
AccumulationSelectionMode |
None |
Selection mode: None or Point |
AccumulationSelectionMode |
SelectionPattern |
SelectionPattern |
None |
Pattern for selected series/points |
SelectionPattern |
Series |
List<AccumulationSeries> |
null |
Chart series collection |
AccumulationSeries |
SubTitle |
string |
null |
Chart subtitle text |
- |
SubTitleStyle |
AccumulationChartSubTitleStyle |
null |
Subtitle font and styling |
AccumulationChartSubTitleStyle |
Theme |
AccumulationTheme |
Material |
Visual theme |
AccumulationTheme |
Title |
string |
null |
Chart title text |
- |
TitleStyle |
AccumulationChartTitleStyleSettings |
null |
Title font and styling |
AccumulationChartTitleStyleSettings |
Tooltip |
AccumulationChartTooltipSettings |
null |
Tooltip configuration |
AccumulationChartTooltipSettings |
UseGroupingSeparator |
bool |
false |
Use thousand separator for numbers |
- |
Width |
string |
null |
Chart width (e.g., "100px", "100%") |
- |
Event Properties
| Event |
Type |
Description |
AfterExport |
string |
Triggered after export completes |
AnimationComplete |
string |
Triggered after animation completes |
AnnotationRender |
string |
Triggered before annotation renders |
BeforeExport |
string |
Triggered before export starts |
BeforePrint |
string |
Triggered before print starts |
BeforeResize |
string |
Triggered before window resize |
ChartDoubleClick |
string |
Triggered on double-click |
ChartMouseClick |
string |
Triggered on mouse click |
ChartMouseDown |
string |
Triggered on mouse down |
ChartMouseLeave |
string |
Triggered when cursor leaves |
ChartMouseMove |
string |
Triggered on mouse move/hover |
ChartMouseUp |
string |
Triggered on mouse up |
LegendClick |
string |
Triggered after legend click |
LegendRender |
string |
Triggered before legend renders |
Load |
string |
Triggered before chart loads |
Loaded |
string |
Triggered after chart loads |
PointClick |
string |
Triggered when point is clicked |
PointMove |
string |
Triggered when point is hovered |
PointRender |
string |
Triggered before point renders |
Resized |
string |
Triggered after window resize completes |
SelectionComplete |
string |
Triggered after selection completes |
SeriesRender |
string |
Triggered before series renders |
TextRender |
string |
Triggered before data label renders |
TooltipRender |
string |
Triggered before tooltip renders |
AccumulationSeries Class
Represents a data series in the accumulation chart.
Properties
| Property |
Type |
Default |
Description |
API Reference |
DataSource |
object[] |
null |
Series data collection |
- |
XName |
string |
null |
Field name for X values (categories) |
- |
YName |
string |
null |
Field name for Y values (numeric data) |
- |
Type |
string |
"Pie" |
Series type: Pie, Pyramid, Funnel (Doughnut = Pie + innerRadius) |
- |
Radius |
string |
"80%" |
Chart radius (percentage or pixels) |
- |
InnerRadius |
string |
"0%" |
Inner radius for doughnut effect (percentage) |
- |
StartAngle |
double |
0 |
Start angle in degrees (0-360) |
- |
EndAngle |
double |
360 |
End angle in degrees (0-360) |
- |
Explode |
bool |
false |
Enable explosion on click |
- |
ExplodeIndex |
double |
null |
Index of pre-exploded point |
- |
ExplodeOffset |
string |
"10%" |
Distance exploded slice moves |
- |
GroupTo |
string |
null |
Grouping threshold (value or percentage) |
- |
GroupMode |
string |
"Value" |
Group mode: Value or Point |
- |
GroupName |
string |
"Others" |
Name for grouped points |
- |
PyramidMode |
string |
"Linear" |
Pyramid mode: Linear or Surface |
- |
FunnelMode |
string |
"Standard" |
Funnel mode: Standard or Trapezoidal |
- |
NeckWidth |
string |
"20%" |
Funnel neck width (percentage) |
- |
NeckHeight |
string |
"20%" |
Funnel neck height (percentage) |
- |
Width |
string |
"80%" |
Pyramid/Funnel width (percentage) |
- |
Height |
string |
"80%" |
Pyramid/Funnel height (percentage) |
- |
GapRatio |
double |
0 |
Gap between pyramid/funnel segments |
- |
Palettes |
string[] |
null |
Custom color palette |
- |
PointColorMapping |
string |
null |
Field name for point colors |
- |
PointRender |
string |
null |
Event triggered before point renders |
- |
DataLabel |
AccumulationDataLabelSettings |
null |
Data label configuration |
AccumulationDataLabelSettings |
EmptyPointSettings |
AccumulationChartEmptyPointSettings |
null |
Empty point handling |
AccumulationChartEmptyPointSettings |
ConnectorStyle |
AccumulationChartConnector |
null |
Connector line styling |
AccumulationChartConnector |
Border |
AccumulationChartBorder |
null |
Series border styling |
AccumulationChartBorder |
LegendShape |
LegendShape |
SeriesType |
Legend icon shape |
LegendShape |
TooltipMappingName |
string |
null |
Field for custom tooltip content |
- |
AccumulationDataLabelSettings Class
Configures data labels displayed on data points.
Properties
| Property |
Type |
Default |
Description |
Visible |
bool |
false |
Show/hide data labels |
Position |
string |
"Outside" |
Label position: Inside or Outside |
Name |
string |
null |
Field name for label text |
Template |
string |
null |
HTML template for labels |
Format |
string |
null |
Number format (e.g., "p1", "n2", "c2") |
TextWrap |
string |
"Normal" |
Text wrapping: Normal, Wrap, AnyWhere |
MaxWidth |
double |
null |
Max label width (pixels) |
Font |
object |
null |
Font configuration |
Border |
object |
null |
Label border configuration |
ConnectorStyle |
string |
"Line" |
Connector type: Line or Curve |
AccumulationChartLegendSettings Class
Configures the legend for the chart.
Properties
| Property |
Type |
Default |
Description |
API Reference |
Visible |
bool |
false |
Show/hide legend |
- |
Position |
string |
"Right" |
Legend position: Top, Bottom, Left, Right |
LegendPosition |
Alignment |
string |
"Center" |
Legend alignment: Near, Center, Far |
Alignment |
Width |
string |
"0" |
Legend width (pixels or percentage) |
- |
Height |
string |
"0" |
Legend height (pixels or percentage) |
- |
Reverse |
bool |
false |
Reverse legend item order |
- |
Layout |
string |
"Vertical" |
Layout: Vertical or Horizontal |
- |
MaximumColumns |
double |
null |
Max columns in horizontal layout |
- |
ShapeWidth |
double |
15 |
Legend shape width |
- |
ShapeHeight |
double |
15 |
Legend shape height |
- |
Title |
object |
null |
Legend title configuration |
- |
Template |
string |
null |
Custom HTML template for legend |
- |
TextWrap |
string |
"Normal" |
Text wrapping: Normal or Wrap |
- |
MaximumLabelWidth |
double |
null |
Max legend item label width |
- |
EnablePages |
bool |
false |
Enable paging for large legends |
- |
ToggleVisibility |
bool |
true |
Toggle point visibility on legend click |
- |
AccumulationChartTooltipSettings Class
Configures tooltips for the chart.
Properties
| Property |
Type |
Default |
Description |
Enable |
bool |
false |
Enable/disable tooltips |
Header |
string |
null |
Custom tooltip header |
Format |
string |
null |
Tooltip text format |
Template |
string |
null |
HTML template for tooltips |
Fill |
string |
null |
Tooltip background color |
Border |
object |
null |
Tooltip border configuration |
TextStyle |
object |
null |
Tooltip text styling |
Location |
object |
null |
Fixed tooltip position (x, y) |
Opacity |
double |
1 |
Tooltip opacity |
Shared |
bool |
false |
Show shared tooltip |
Available Enumerations
| Enum |
Values |
Description |
AccumulationTheme |
Fabric, FabricDark, Bootstrap4, Bootstrap, BootstrapDark, HighContrastLight, HighContrast, Tailwind, TailwindDark, Bootstrap5, Bootstrap5Dark, Fluent, FluentDark, Fluent2, Fluent2Dark, Fluent2HighContrast, Material3, Material3Dark, Material, MaterialDark |
Chart theme options |
AccumulationHighlightMode |
None, Point |
Highlight behavior |
AccumulationSelectionMode |
None, Point |
Selection behavior |
SelectionPattern |
None, Chessboard, Dots, DiagonalForward, Crosshatch, Pacman, DiagonalBackward, Grid, Turquoise, Star, Triangle, Circle, Tile, HorizontalDash, VerticalDash, Rectangle, Box, VerticalStripe, HorizontalStripe, Bubble |
Pattern options for highlighting/selection |
LegendShape |
Circle, Rectangle, Triangle, Diamond, Cross, HorizontalLine, VerticalLine, Pentagon, InvertedTriangle, SeriesType |
Legend icon shapes |
Related Classes
Key Properties
AccumulationChart Properties
| Property |
Type |
Description |
Example |
enableSmartLabels |
boolean |
Auto-arrange labels to prevent overlap |
true |
center |
object |
Position of chart center (x, y percentages) |
{x: "50%", y: "50%"} |
legendSettings |
object |
Legend configuration (position, alignment) |
{visible: true, position: 'Right'} |
tooltipSettings |
object |
Tooltip configuration and templates |
{enable: true, format: '${point.x}: ${point.y}'} |
title |
string |
Chart title text |
"Browser Market Share" |
height |
string |
Chart height |
"450px" |
width |
string |
Chart width |
"100%" |
theme |
string |
Visual theme |
"Material" |
background |
string |
Background color |
"#ffffff" |
AccumulationSeries Properties
| Property |
Type |
Description |
Example |
type |
string |
Chart type: Pie, Pyramid, Funnel (Doughnut = Pie + innerRadius) |
"Pie" |
dataSource |
object[] |
Data collection |
@chartData |
xName |
string |
Field for category labels |
"xValue" |
yName |
string |
Field for values |
"yValue" |
radius |
string |
Chart radius (percentage or pixel) |
"80%" |
innerRadius |
string |
Inner radius for doughnut (percentage) |
"40%" |
startAngle |
number |
Start angle in degrees |
0 |
endAngle |
number |
End angle in degrees |
360 |
explode |
boolean |
Enable slice explosion on click |
true |
explodeIndex |
number |
Index of pre-exploded slice |
2 |
explodeOffset |
string |
Explode distance |
"10%" |
groupTo |
string |
Threshold for grouping |
"11" |
groupMode |
string |
Group by: Point, Value |
"Value" |
DataLabel Properties
| Property |
Type |
Description |
Example |
visible |
boolean |
Show/hide data labels |
true |
position |
string |
Inside or Outside |
"Outside" |
name |
string |
Field name for label text |
"text" |
template |
string |
Custom HTML template |
"<div>${point.x}: ${point.y}%</div>" |
connectorStyle |
string |
Line or Curve |
"Curve" |
font |
object |
Font customization |
{size: '12px', color: '#000'} |
Common Use Cases
1. Market Share Analysis
Display product/service market distribution with pie charts showing competitor percentages.
2. Budget Allocation
Visualize department spending or resource allocation with doughnut charts and center totals.
3. Survey Results
Present poll or survey responses with grouped categories for small values.
4. Sales Funnel Tracking
Monitor conversion stages from leads to customers using funnel charts.
5. Organizational Hierarchy
Display team size distribution or role distribution with pyramid charts.
6. Mobile Dashboards
Create responsive data visualizations optimized for touch interactions and small screens.
7. Report Generation
Export charts as images or PDFs for automated reporting systems.
8. Real-Time Monitoring
Update charts dynamically to show live statistics (server status, user activity).
Related Components
- Chart: For line, bar, column, area, and other Cartesian charts
- RangeNavigator: For timeline-based data exploration
- StockChart: For financial data visualization
- TreeMap: For hierarchical data with rectangles
Browser Support
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Opera (latest)
Additional Resources
Next Steps:
- Read getting-started.md for detailed installation
- Explore chart-types.md for type-specific features
- Review data-visualization.md for styling
- Check accessibility.md for compliance requirements
1---2name: syncfusion-aspnetcore-accumulation-chart3description: Implement Syncfusion ASP.NET Core Accumulation Charts for proportional data visualization. Use this when creating pie charts, doughnut charts, pyramid charts, or funnel charts in ASP.NET Core applications. This skill covers chart setup, data binding, legends, tooltips, data labels, grouping, and accessibility features. Suitable for visualizing market share, sales distribution, survey results, and other percentage-based data representations.4---56# Implementing Syncfusion ASP.NET Core Accumulation Charts78A comprehensive skill for implementing Syncfusion's ASP.NET Core Accumulation Chart component. This component renders circular data visualizations including Pie, Doughnut, Pyramid, and Funnel charts using Scalable Vector Graphics (SVG).910## Table of Contents1112- [When to Use This Skill](#when-to-use-this-skill)13- [Component Overview](#component-overview)14- [Documentation and Navigation Guide](#documentation-and-navigation-guide)15 - [Getting Started](#getting-started)16 - [Chart Types and Variants](#chart-types-and-variants)17 - [Data Visualization Features](#data-visualization-features)18 - [Data Handling](#data-handling)19 - [Advanced Features](#advanced-features)20 - [Accessibility](#accessibility)21- [Quick Start Example](#quick-start-example)22 - [1. Install Package](#1-install-package)23 - [2. Register Tag Helper (~/Pages/_ViewImports.cshtml)](#2-register-tag-helper-pagesviewimportscshtml)24 - [3. Add Scripts (~/Pages/Shared/_Layout.cshtml)](#3-add-scripts-pagessharedlayoutcshtml)25 - [4. Create Pie Chart (~/Pages/Index.cshtml)](#4-create-pie-chart-pagesindexcshtml)26 - [5. Define Data Model (~/Pages/Index.cshtml.cs or separate class)](#5-define-data-model-pagesindexcshtmlcs-or-separate-class)27- [Common Patterns](#common-patterns)28 - [Pattern 1: Doughnut Chart with Center Label](#pattern-1-doughnut-chart-with-center-label)29 - [Pattern 2: Pie Chart with Smart Labels and Tooltips](#pattern-2-pie-chart-with-smart-labels-and-tooltips)30 - [Pattern 3: Grouped Data with Small Values](#pattern-3-grouped-data-with-small-values)31 - [Pattern 4: Funnel Chart with Export](#pattern-4-funnel-chart-with-export)32- [API Reference](#api-reference)33 - [AccumulationChart Class](#accumulationchart-class)34 - [AccumulationSeries Class](#accumulationseries-class)35 - [AccumulationDataLabelSettings Class](#accumulationdatalabelsettings-class)36 - [AccumulationChartLegendSettings Class](#accumulationchartlegendsettings-class)37 - [AccumulationChartTooltipSettings Class](#accumulationcharttooltipsettings-class)38 - [Available Enumerations](#available-enumerations)39 - [Related Classes](#related-classes)40- [Key Properties](#key-properties)41 - [AccumulationChart Properties](#accumulationchart-properties)42 - [AccumulationSeries Properties](#accumulationseries-properties)43 - [DataLabel Properties](#datalabel-properties)44- [Common Use Cases](#common-use-cases)45 - [1. Market Share Analysis](#1-market-share-analysis)46 - [2. Budget Allocation](#2-budget-allocation)47 - [3. Survey Results](#3-survey-results)48 - [4. Sales Funnel Tracking](#4-sales-funnel-tracking)49 - [5. Organizational Hierarchy](#5-organizational-hierarchy)50 - [6. Mobile Dashboards](#6-mobile-dashboards)51 - [7. Report Generation](#7-report-generation)52 - [8. Real-Time Monitoring](#8-real-time-monitoring)53- [Related Components](#related-components)54- [Browser Support](#browser-support)55- [Additional Resources](#additional-resources)565758## When to Use This Skill5960Use this skill when you need to:61- Create pie, doughnut, pyramid, or funnel charts in ASP.NET Core applications62- Visualize proportional data or percentage distributions63- Display hierarchical data with pyramid/funnel charts64- Add data labels, tooltips, and legends to accumulation charts65- Implement interactive features (exploding slices, selection, drill-down)66- Handle grouped data or empty points in charts67- Export or print accumulation charts68- Make charts accessible (WCAG 2.2 compliant)69- Dynamically update chart data in real-time70- Customize chart appearance with themes, colors, and gradients7172## Component Overview7374**AccumulationChart** is a circular graphics component that divides data into segments to illustrate numerical proportions. It supports:7576- **Chart Types:** Pie (including Doughnut variant), Pyramid, Funnel77 - **Note:** Doughnut is achieved by setting `innerRadius` on a Pie chart, not a separate type78- **Smart Labels:** Automatic label positioning to prevent overlapping79- **Grouping:** Combine small data points based on value or count80- **Semi-Charts:** Customize start and end angles for semi-pie/doughnut81- **Legend:** Display additional point information82- **Tooltips:** Interactive data point details83- **Empty Points:** Graceful handling of missing data84- **Accessibility:** Full WCAG 2.2 Level A & AA compliance85- **Export:** PNG, JPEG, SVG, PDF formats86- **Print:** Direct browser printing support8788## Documentation and Navigation Guide8990### Getting Started91📄 **Read:** [references/getting-started.md](references/getting-started.md)9293**When to read:** Setting up accumulation charts for the first time, or need complete installation and basic implementation guidance.9495**What you'll learn:**96- Prerequisites and system requirements97- Installing Syncfusion NuGet packages98- Registering tag helpers and script resources99- Creating your first pie/doughnut chart100- Basic data binding (dataSource, xName, yName)101- CSS theme imports and script manager setup102- Running and testing the chart103- Complete minimal working example104105### Chart Types and Variants106📄 **Read:** [references/chart-types.md](references/chart-types.md)107108**When to read:** Need to implement specific chart types (Pie, Doughnut, Pyramid, Funnel) or customize chart geometry and appearance.109110**What you'll learn:**111- Pie chart implementation and configuration112- Doughnut chart with inner radius and center labels113- Pyramid chart with width, gap, and neck customization114- Funnel chart with neck dimensions115- Radius customization for all chart types116- Start and end angles for semi-pie/semi-doughnut117- Exploding slices (single and multiple points)118- Chart center positioning119- Complete code examples for each type120121### Data Visualization Features122📄 **Read:** [references/data-visualization.md](references/data-visualization.md)123124**When to read:** Enhancing charts with data labels, tooltips, legends, colors, or custom styling.125126**What you'll learn:**127- Data label visibility, positioning, and templates128- Smart labels for overlap prevention129- Connector lines for outside labels130- Tooltip configuration and templates131- Legend positioning, alignment, and customization132- Title and subtitle configuration133- Point colors and gradient fills134- Text mapping from data source135- Border and margin customization136- Complete styling patterns137138### Data Handling139📄 **Read:** [references/data-handling.md](references/data-handling.md)140141**When to read:** Working with complex data scenarios like grouping small values, handling missing data, or updating charts dynamically.142143**What you'll learn:**144- Grouping points by value or count threshold145- Group settings (threshold, mode, color, name)146- Empty points handling (null/undefined values)147- Empty point modes (Zero, Drop, Average, Gap)148- Dynamic data updates and live scenarios149- Data source binding patterns150- Sorting and ordering data151- Edge cases and troubleshooting152153### Advanced Features154📄 **Read:** [references/advanced-features.md](references/advanced-features.md)155156**When to read:** Implementing annotations, export/print functionality, or migrating from EJ1 to EJ2.157158**What you'll learn:**159- Chart annotations (text, shapes, images)160- Annotation positioning (coordinate, region, alignment)161- Export to image formats (PNG, JPEG, SVG)162- Export to PDF163- Print functionality and customization164- EJ1 to EJ2 API migration guide165- Performance optimization tips166- Complex implementation patterns167168### Accessibility169📄 **Read:** [references/accessibility.md](references/accessibility.md)170171**When to read:** Making charts accessible for users with disabilities or ensuring WCAG 2.2 compliance.172173**What you'll learn:**174- WCAG 2.2 Level A & AA compliance features175- Keyboard navigation (Tab, arrow keys, Enter)176- ARIA attributes and roles177- Screen reader support and announcements178- High contrast theme support179- Focus indicators and visual feedback180- Color contrast requirements181- Accessible color palettes182- Testing with assistive technologies183- Complete accessible chart implementation184185## Quick Start Example186187Here's a minimal example to render a pie chart in ASP.NET Core:188189### 1. Install Package190191```bash192Install-Package Syncfusion.EJ2.AspNet.Core -Version <your_version_here>193```194195### 2. Register Tag Helper (~/Pages/_ViewImports.cshtml)196197```csharp198@addTagHelper *, Syncfusion.EJ2199```200201### 3. Add Scripts (~/Pages/Shared/_Layout.cshtml)202203```html204<head>205 <!-- Syncfusion JS -->206 <script src="<!-- Add the appropriate Syncfusion CDN script link here -->"></script>207</head>208<body>209 <!-- Content -->210 <ejs-scripts></ejs-scripts>211</body>212```213214### 4. Create Pie Chart (~/Pages/Index.cshtml)215216```cshtml217@{218 List<PieChartData> chartData = new List<PieChartData>219 {220 new PieChartData { xValue = "Chrome", yValue = 37 },221 new PieChartData { xValue = "Firefox", yValue = 22 },222 new PieChartData { xValue = "Safari", yValue = 19 },223 new PieChartData { xValue = "Edge", yValue = 12 },224 new PieChartData { xValue = "Others", yValue = 10 }225 };226}227228<ejs-accumulationchart id="pieChart" enableSmartLabels="true" title="Browser Market Share" subTitle="Pie chart showing browser usage distribution">229 <e-accumulation-series-collection>230 <e-accumulation-series dataSource="@chartData" xName="xValue" yName="yValue" name="Browsers">231 <e-accumulationseries-datalabel visible="true" position="Outside" name="text" format="p0">232 <e-connectorstyle type="Curve" length="20"></e-connectorstyle>233 <e-font fontWeight="600"></e-font>234 </e-accumulationseries-datalabel>235 </e-accumulation-series>236 </e-accumulation-series-collection>237 <e-accumulationchart-legendsettings position="Bottom" alignment="Center" toggleVisibility="true">238 </e-accumulationchart-legendsettings>239 <e-accumulationchart-tooltipsettings enable="true" format="${point.x}: <b>${point.y}%</b>" header="Browser">240 </e-accumulationchart-tooltipsettings>241</ejs-accumulationchart>242```243244**Key Points:**245- `title` and `subTitle` are **direct attributes** on `<ejs-accumulationchart>`, NOT child tags246- `<e-font>` is the correct child tag inside `<e-accumulationseries-datalabel>`, NOT `<e-datalabelfont>`247- Use `format="p0"` for percentage without decimals248249### 5. Define Data Model (~/Pages/Index.cshtml.cs or separate class)250251```csharp252public class PieChartData253{254 public string xValue { get; set; }255 public double yValue { get; set; }256}257```258259**Result:** A basic pie chart displaying browser usage statistics.260261## Common Patterns262263### Pattern 1: Doughnut/Donut Chart with Center Label264265```cshtml266<ejs-accumulationchart id="container">267 <e-accumulation-series-collection>268 <e-accumulation-series dataSource="chartData" xName="x" yName="y" innerRadius="65%">269 <!-- innerRadius goes on series, NOT on chart -->270 </e-accumulation-series>271 </e-accumulation-series-collection>272 <e-accumulationchart-centerlabel text="Mobile<br>Browsers<br>Statistics">273 </e-accumulationchart-centerlabel>274 <e-accumulationchart-legendsettings visible="false">275 </e-accumulationchart-legendsettings>276</ejs-accumulationchart>277```278279**Use Case:** Dashboard KPIs with center text showing total value.280281### Pattern 2: Pie Chart with Smart Labels and Tooltips282283```cshtml284<ejs-accumulationchart id="smartLabelChart" enableSmartLabels="true" title="Market Share" subTitle="Distribution by browser">285 <e-accumulation-series-collection>286 <e-accumulation-series dataSource="@chartData" xName="xValue" yName="yValue">287 <e-accumulationseries-datalabel visible="true" 288 position="Outside" 289 name="text"290 format="p0">291 <e-connectorstyle type="Curve" length="20"></e-connectorstyle>292 <e-font fontWeight="600"></e-font>293 </e-accumulationseries-datalabel>294 </e-accumulation-series>295 </e-accumulation-series-collection>296 <e-accumulationchart-legendsettings position="Bottom" alignment="Center" toggleVisibility="true">297 </e-accumulationchart-legendsettings>298 <e-accumulationchart-tooltipsettings enable="true" format="${point.x}: <b>${point.y}%</b>" header="Browser">299 </e-accumulationchart-tooltipsettings>300</ejs-accumulationchart>301```302303**Use Case:** Preventing label overlap in charts with many small slices.304305### Pattern 3: Grouped Data with Small Values306307```cshtml308<ejs-accumulationchart id="groupedChart">309 <e-accumulation-series-collection>310 <e-accumulation-series dataSource="@chartData" 311 xName="xValue" 312 yName="yValue"313 groupTo="11">314 </e-accumulation-series>315 </e-accumulation-series-collection>316</ejs-accumulationchart>317```318319**Use Case:** Combining values below 11% into a single "Others" group.320321### Pattern 4: Funnel Chart with Export322323```cshtml324<button id="exportBtn">Export as PNG</button>325326<ejs-accumulationchart id="funnelChart">327 <e-accumulation-series-collection>328 <e-accumulation-series dataSource="@chartData" 329 xName="xValue" 330 yName="yValue" 331 type="Funnel"332 neckWidth="15%"333 neckHeight="18%">334 </e-accumulation-series>335 </e-accumulation-series-collection>336</ejs-accumulationchart>337338<script>339 document.getElementById('exportBtn').onclick = function() {340 var chart = document.getElementById('funnelChart').ej2_instances[0];341 chart.export('PNG', 'funnel-chart');342 };343</script>344```345346**Use Case:** Sales funnel visualization with image export.347348## API Reference349350### AccumulationChart Class351352Represents the main accumulation chart component. All properties are defined in the `Syncfusion.EJ2.Charts` namespace.353354#### Constructor355356```csharp357public AccumulationChart()358```359360#### Core Properties361362| Property | Type | Default | Description | API Reference |363|----------|------|---------|-------------|---|364| `Accessibility` | `AccumulationAccessibility` | null | Options to improve accessibility for accumulation chart elements | [AccumulationAccessibility](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationAccessibility.html) |365| `Annotations` | `List<AccumulationAnnotationSettings>` | null | Annotations for highlighting specific data points | [AccumulationAnnotationSettings](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationAnnotationSettings.html) |366| `Background` | `string` | null | Background color (hex or rgba) | - |367| `BackgroundImage` | `string` | null | Background image URL | - |368| `Border` | `AccumulationChartBorder` | null | Chart border configuration | [AccumulationChartBorder](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartBorder.html) |369| `Center` | `AccumulationChartCenter` | null | Center position of pie/doughnut (x, y percentages) | [AccumulationChartCenter](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartCenter.html) |370| `CenterLabel` | `AccumulationChartCenterLabel` | null | Center label configuration for doughnut charts | [AccumulationChartCenterLabel](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartCenterLabel.html) |371| `DataSource` | `object` | null | Chart data collection | - |372| `EnableAnimation` | `bool` | true | Enable chart animation on load | - |373| `EnableBorderOnMouseMove` | `bool` | true | Enable border on mouse hover | - |374| `EnableExport` | `bool` | true | Enable export to JPEG, PNG, SVG, PDF, XLSX, CSV | - |375| `EnableHtmlSanitizer` | `bool` | false | Sanitize untrusted HTML in chart content | - |376| `EnablePersistence` | `bool` | false | Persist component state across page reloads | - |377| `EnableRtl` | `bool` | false | Enable right-to-left rendering | - |378| `EnableSmartLabels` | `bool` | true | Auto-arrange labels to prevent overlap | - |379| `FocusBorderColor` | `string` | - | Focus border color for accessibility | - |380| `FocusBorderMargin` | `double` | 0 | Focus border margin | - |381| `FocusBorderWidth` | `double` | 1.5 | Focus border width | - |382| `Height` | `string` | null | Chart height (e.g., "450px", "100%") | - |383| `HighlightColor` | `string` | "" | Color for highlighting data points on hover | - |384| `HighlightMode` | `AccumulationHighlightMode` | None | Highlight mode: None or Point | [AccumulationHighlightMode](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationHighlightMode.html) |385| `HighlightPattern` | `SelectionPattern` | None | Pattern for highlighting series/points | [SelectionPattern](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.SelectionPattern.html) |386| `IsMultiSelect` | `bool` | false | Enable multiple point selection (requires selectionMode=Point) | - |387| `LegendSettings` | `AccumulationChartLegendSettings` | null | Legend configuration | [AccumulationChartLegendSettings](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartLegendSettings.html) |388| `Locale` | `string` | "" | Culture/localization override (default: en-US) | - |389| `Margin` | `AccumulationChartMargin` | null | Chart margins (left, right, top, bottom) | [AccumulationChartMargin](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartMargin.html) |390| `NoDataTemplate` | `object` | null | Template for empty chart state | - |391| `SelectedDataIndexes` | `object` | null | Initial selected point indexes | - |392| `SelectionMode` | `AccumulationSelectionMode` | None | Selection mode: None or Point | [AccumulationSelectionMode](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationSelectionMode.html) |393| `SelectionPattern` | `SelectionPattern` | None | Pattern for selected series/points | [SelectionPattern](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.SelectionPattern.html) |394| `Series` | `List<AccumulationSeries>` | null | Chart series collection | [AccumulationSeries](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationSeries.html) |395| `SubTitle` | `string` | null | Chart subtitle text | - |396| `SubTitleStyle` | `AccumulationChartSubTitleStyle` | null | Subtitle font and styling | [AccumulationChartSubTitleStyle](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartSubTitleStyle.html) |397| `Theme` | `AccumulationTheme` | Material | Visual theme | [AccumulationTheme](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationTheme.html) |398| `Title` | `string` | null | Chart title text | - |399| `TitleStyle` | `AccumulationChartTitleStyleSettings` | null | Title font and styling | [AccumulationChartTitleStyleSettings](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartTitleStyleSettings.html) |400| `Tooltip` | `AccumulationChartTooltipSettings` | null | Tooltip configuration | [AccumulationChartTooltipSettings](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartTooltipSettings.html) |401| `UseGroupingSeparator` | `bool` | false | Use thousand separator for numbers | - |402| `Width` | `string` | null | Chart width (e.g., "100px", "100%") | - |403404#### Event Properties405406| Event | Type | Description |407|-------|------|-------------|408| `AfterExport` | `string` | Triggered after export completes |409| `AnimationComplete` | `string` | Triggered after animation completes |410| `AnnotationRender` | `string` | Triggered before annotation renders |411| `BeforeExport` | `string` | Triggered before export starts |412| `BeforePrint` | `string` | Triggered before print starts |413| `BeforeResize` | `string` | Triggered before window resize |414| `ChartDoubleClick` | `string` | Triggered on double-click |415| `ChartMouseClick` | `string` | Triggered on mouse click |416| `ChartMouseDown` | `string` | Triggered on mouse down |417| `ChartMouseLeave` | `string` | Triggered when cursor leaves |418| `ChartMouseMove` | `string` | Triggered on mouse move/hover |419| `ChartMouseUp` | `string` | Triggered on mouse up |420| `LegendClick` | `string` | Triggered after legend click |421| `LegendRender` | `string` | Triggered before legend renders |422| `Load` | `string` | Triggered before chart loads |423| `Loaded` | `string` | Triggered after chart loads |424| `PointClick` | `string` | Triggered when point is clicked |425| `PointMove` | `string` | Triggered when point is hovered |426| `PointRender` | `string` | Triggered before point renders |427| `Resized` | `string` | Triggered after window resize completes |428| `SelectionComplete` | `string` | Triggered after selection completes |429| `SeriesRender` | `string` | Triggered before series renders |430| `TextRender` | `string` | Triggered before data label renders |431| `TooltipRender` | `string` | Triggered before tooltip renders |432433### AccumulationSeries Class434435Represents a data series in the accumulation chart.436437#### Properties438439| Property | Type | Default | Description | API Reference |440|----------|------|---------|-------------|---|441| `DataSource` | `object[]` | null | Series data collection | - |442| `XName` | `string` | null | Field name for X values (categories) | - |443| `YName` | `string` | null | Field name for Y values (numeric data) | - |444| `Type` | `string` | "Pie" | Series type: Pie, Pyramid, Funnel (Doughnut = Pie + innerRadius) | - |445| `Radius` | `string` | "80%" | Chart radius (percentage or pixels) | - |446| `InnerRadius` | `string` | "0%" | Inner radius for doughnut effect (percentage) | - |447| `StartAngle` | `double` | 0 | Start angle in degrees (0-360) | - |448| `EndAngle` | `double` | 360 | End angle in degrees (0-360) | - |449| `Explode` | `bool` | false | Enable explosion on click | - |450| `ExplodeIndex` | `double` | null | Index of pre-exploded point | - |451| `ExplodeOffset` | `string` | "10%" | Distance exploded slice moves | - |452| `GroupTo` | `string` | null | Grouping threshold (value or percentage) | - |453| `GroupMode` | `string` | "Value" | Group mode: Value or Point | - |454| `GroupName` | `string` | "Others" | Name for grouped points | - |455| `PyramidMode` | `string` | "Linear" | Pyramid mode: Linear or Surface | - |456| `FunnelMode` | `string` | "Standard" | Funnel mode: Standard or Trapezoidal | - |457| `NeckWidth` | `string` | "20%" | Funnel neck width (percentage) | - |458| `NeckHeight` | `string` | "20%" | Funnel neck height (percentage) | - |459| `Width` | `string` | "80%" | Pyramid/Funnel width (percentage) | - |460| `Height` | `string` | "80%" | Pyramid/Funnel height (percentage) | - |461| `GapRatio` | `double` | 0 | Gap between pyramid/funnel segments | - |462| `Palettes` | `string[]` | null | Custom color palette | - |463| `PointColorMapping` | `string` | null | Field name for point colors | - |464| `PointRender` | `string` | null | Event triggered before point renders | - |465| `DataLabel` | `AccumulationDataLabelSettings` | null | Data label configuration | [AccumulationDataLabelSettings](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationDataLabelSettings.html) |466| `EmptyPointSettings` | `AccumulationChartEmptyPointSettings` | null | Empty point handling | [AccumulationChartEmptyPointSettings](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartEmptyPointSettings.html) |467| `ConnectorStyle` | `AccumulationChartConnector` | null | Connector line styling | [AccumulationChartConnector](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartConnector.html) |468| `Border` | `AccumulationChartBorder` | null | Series border styling | [AccumulationChartBorder](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartBorder.html) |469| `LegendShape` | `LegendShape` | SeriesType | Legend icon shape | [LegendShape](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.LegendShape.html) |470| `TooltipMappingName` | `string` | null | Field for custom tooltip content | - |471472### AccumulationDataLabelSettings Class473474Configures data labels displayed on data points.475476#### Properties477478| Property | Type | Default | Description |479|----------|------|---------|-------------|480| `Visible` | `bool` | false | Show/hide data labels |481| `Position` | `string` | "Outside" | Label position: Inside or Outside |482| `Name` | `string` | null | Field name for label text |483| `Template` | `string` | null | HTML template for labels |484| `Format` | `string` | null | Number format (e.g., "p1", "n2", "c2") |485| `TextWrap` | `string` | "Normal" | Text wrapping: Normal, Wrap, AnyWhere |486| `MaxWidth` | `double` | null | Max label width (pixels) |487| `Font` | `object` | null | Font configuration |488| `Border` | `object` | null | Label border configuration |489| `ConnectorStyle` | `string` | "Line" | Connector type: Line or Curve |490491### AccumulationChartLegendSettings Class492493Configures the legend for the chart.494495#### Properties496497| Property | Type | Default | Description | API Reference |498|----------|------|---------|-------------|---|499| `Visible` | `bool` | false | Show/hide legend | - |500| `Position` | `string` | "Right" | Legend position: Top, Bottom, Left, Right | [LegendPosition](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.LegendPosition.html) |501| `Alignment` | `string` | "Center" | Legend alignment: Near, Center, Far | [Alignment](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.Alignment.html) |502| `Width` | `string` | "0" | Legend width (pixels or percentage) | - |503| `Height` | `string` | "0" | Legend height (pixels or percentage) | - |504| `Reverse` | `bool` | false | Reverse legend item order | - |505| `Layout` | `string` | "Vertical" | Layout: Vertical or Horizontal | - |506| `MaximumColumns` | `double` | null | Max columns in horizontal layout | - |507| `ShapeWidth` | `double` | 15 | Legend shape width | - |508| `ShapeHeight` | `double` | 15 | Legend shape height | - |509| `Title` | `object` | null | Legend title configuration | - |510| `Template` | `string` | null | Custom HTML template for legend | - |511| `TextWrap` | `string` | "Normal" | Text wrapping: Normal or Wrap | - |512| `MaximumLabelWidth` | `double` | null | Max legend item label width | - |513| `EnablePages` | `bool` | false | Enable paging for large legends | - |514| `ToggleVisibility` | `bool` | true | Toggle point visibility on legend click | - |515516### AccumulationChartTooltipSettings Class517518Configures tooltips for the chart.519520#### Properties521522| Property | Type | Default | Description |523|----------|------|---------|-------------|524| `Enable` | `bool` | false | Enable/disable tooltips |525| `Header` | `string` | null | Custom tooltip header |526| `Format` | `string` | null | Tooltip text format |527| `Template` | `string` | null | HTML template for tooltips |528| `Fill` | `string` | null | Tooltip background color |529| `Border` | `object` | null | Tooltip border configuration |530| `TextStyle` | `object` | null | Tooltip text styling |531| `Location` | `object` | null | Fixed tooltip position (x, y) |532| `Opacity` | `double` | 1 | Tooltip opacity |533| `Shared` | `bool` | false | Show shared tooltip |534535### Available Enumerations536537| Enum | Values | Description |538|------|--------|-------------|539| `AccumulationTheme` | Fabric, FabricDark, Bootstrap4, Bootstrap, BootstrapDark, HighContrastLight, HighContrast, Tailwind, TailwindDark, Bootstrap5, Bootstrap5Dark, Fluent, FluentDark, Fluent2, Fluent2Dark, Fluent2HighContrast, Material3, Material3Dark, Material, MaterialDark | Chart theme options |540| `AccumulationHighlightMode` | None, Point | Highlight behavior |541| `AccumulationSelectionMode` | None, Point | Selection behavior |542| `SelectionPattern` | None, Chessboard, Dots, DiagonalForward, Crosshatch, Pacman, DiagonalBackward, Grid, Turquoise, Star, Triangle, Circle, Tile, HorizontalDash, VerticalDash, Rectangle, Box, VerticalStripe, HorizontalStripe, Bubble | Pattern options for highlighting/selection |543| `LegendShape` | Circle, Rectangle, Triangle, Diamond, Cross, HorizontalLine, VerticalLine, Pentagon, InvertedTriangle, SeriesType | Legend icon shapes |544545### Related Classes546547| Class | Namespace | Description | API Reference |548|-------|-----------|-------------|---|549| `AccumulationChartBorder` | Syncfusion.EJ2.Charts | Border configuration | [AccumulationChartBorder](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartBorder.html) |550| `AccumulationChartCenter` | Syncfusion.EJ2.Charts | Center position | [AccumulationChartCenter](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartCenter.html) |551| `AccumulationChartMargin` | Syncfusion.EJ2.Charts | Margin configuration | [AccumulationChartMargin](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartMargin.html) |552| `AccumulationChartConnector` | Syncfusion.EJ2.Charts | Connector line styling | [AccumulationChartConnector](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartConnector.html) |553| `AccumulationChartEmptyPointSettings` | Syncfusion.EJ2.Charts | Empty point handling | [AccumulationChartEmptyPointSettings](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChartEmptyPointSettings.html) |554| `AccumulationAnnotationSettings` | Syncfusion.EJ2.Charts | Annotation configuration | [AccumulationAnnotationSettings](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationAnnotationSettings.html) |555| `AccumulationAccessibility` | Syncfusion.EJ2.Charts | Accessibility options | [AccumulationAccessibility](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationAccessibility.html) |556557## Key Properties558559### AccumulationChart Properties560561| Property | Type | Description | Example |562|----------|------|-------------|---------|563| `enableSmartLabels` | boolean | Auto-arrange labels to prevent overlap | `true` |564| `center` | object | Position of chart center (x, y percentages) | `{x: "50%", y: "50%"}` |565| `legendSettings` | object | Legend configuration (position, alignment) | `{visible: true, position: 'Right'}` |566| `tooltipSettings` | object | Tooltip configuration and templates | `{enable: true, format: '${point.x}: ${point.y}'}` |567| `title` | string | Chart title text | `"Browser Market Share"` |568| `height` | string | Chart height | `"450px"` |569| `width` | string | Chart width | `"100%"` |570| `theme` | string | Visual theme | `"Material"` |571| `background` | string | Background color | `"#ffffff"` |572573### AccumulationSeries Properties574575| Property | Type | Description | Example |576|----------|------|-------------|---------|577| `type` | string | Chart type: Pie, Pyramid, Funnel (Doughnut = Pie + innerRadius) | `"Pie"` |578| `dataSource` | object[] | Data collection | `@chartData` |579| `xName` | string | Field for category labels | `"xValue"` |580| `yName` | string | Field for values | `"yValue"` |581| `radius` | string | Chart radius (percentage or pixel) | `"80%"` |582| `innerRadius` | string | Inner radius for doughnut (percentage) | `"40%"` |583| `startAngle` | number | Start angle in degrees | `0` |584| `endAngle` | number | End angle in degrees | `360` |585| `explode` | boolean | Enable slice explosion on click | `true` |586| `explodeIndex` | number | Index of pre-exploded slice | `2` |587| `explodeOffset` | string | Explode distance | `"10%"` |588| `groupTo` | string | Threshold for grouping | `"11"` |589| `groupMode` | string | Group by: Point, Value | `"Value"` |590591### DataLabel Properties592593| Property | Type | Description | Example |594|----------|------|-------------|---------|595| `visible` | boolean | Show/hide data labels | `true` |596| `position` | string | Inside or Outside | `"Outside"` |597| `name` | string | Field name for label text | `"text"` |598| `template` | string | Custom HTML template | `"<div>${point.x}: ${point.y}%</div>"` |599| `connectorStyle` | string | Line or Curve | `"Curve"` |600| `font` | object | Font customization | `{size: '12px', color: '#000'}` |601602## Common Use Cases603604### 1. Market Share Analysis605Display product/service market distribution with pie charts showing competitor percentages.606607### 2. Budget Allocation608Visualize department spending or resource allocation with doughnut charts and center totals.609610### 3. Survey Results611Present poll or survey responses with grouped categories for small values.612613### 4. Sales Funnel Tracking614Monitor conversion stages from leads to customers using funnel charts.615616### 5. Organizational Hierarchy617Display team size distribution or role distribution with pyramid charts.618619### 6. Mobile Dashboards620Create responsive data visualizations optimized for touch interactions and small screens.621622### 7. Report Generation623Export charts as images or PDFs for automated reporting systems.624625### 8. Real-Time Monitoring626Update charts dynamically to show live statistics (server status, user activity).627628## Related Components629630- **Chart:** For line, bar, column, area, and other Cartesian charts631- **RangeNavigator:** For timeline-based data exploration632- **StockChart:** For financial data visualization633- **TreeMap:** For hierarchical data with rectangles634635## Browser Support636637- Chrome (latest)638- Firefox (latest)639- Safari (latest)640- Edge (latest)641- Opera (latest)642643## Additional Resources644645- [Syncfusion ASP.NET Core Accumulation Chart Documentation](https://ej2.syncfusion.com/aspnetcore/documentation/accumulation-chart/getting-started)646- [API Reference](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.Charts.AccumulationChart.html)647- [Live Demos](https://ej2.syncfusion.com/aspnetcore/AccumulationChart/Pie)648- [GitHub Examples](https://github.com/SyncfusionExamples/ASP-NET-Core-Getting-Started-Examples/tree/main/AccumulationChart)649650---651652**Next Steps:**6531. Read [getting-started.md](references/getting-started.md) for detailed installation6542. Explore [chart-types.md](references/chart-types.md) for type-specific features6553. Review [data-visualization.md](references/data-visualization.md) for styling6564. Check [accessibility.md](references/accessibility.md) for compliance requirements