Implementing Syncfusion Angular Chart Component
A comprehensive guide for implementing the Syncfusion Angular Chart component, a high-performance, interactive data visualization library supporting 25+ chart types including line, bar, area, column, pie, financial, and specialized series. Optimized for responsive rendering, smooth interactions, and large datasets.
When to Use This Skill
Use this skill when you need to:
- Visualize Data: Display numerical data as charts, graphs, or plots in Angular applications
- Trend Analysis: Show data trends over time using line, spline, or area charts
- Comparisons: Compare categorical data using column, bar, or grouped charts
- Financial Data: Implement stock charts with candlestick, OHLC, or technical indicators
- Statistical Analysis: Use box plots, histograms, or pareto charts for distributions
- Multi-dimensional Data: Display scatter plots or bubble charts for correlation analysis
- Real-time Monitoring: Create live-updating charts for dashboards or monitoring systems
- Interactive Exploration: Add zooming, panning, crosshair, tooltips, or selection features
- Custom Visualizations: Combine multiple series types, axes, or create complex layouts
- Accessible Charts: Implement WCAG-compliant charts with keyboard navigation and screen reader support
Component Overview
The Syncfusion Angular Chart is a feature-rich data visualization component with:
- 25+ Series Types: Line, spline, step line, area, column, bar, scatter, bubble, pie, financial (candlestick, OHLC), statistical (box & whisker, histogram, pareto), polar, radar, waterfall, and more
- Interactive Features: Zooming (selection, mouse wheel, pinch), panning, tooltips, crosshair, trackball, selection, data editing
- Multiple Axes: Support for primary, secondary, and multiple axes with different data types (numeric, datetime, logarithmic, category)
- Chart Elements: Legends, data markers, data labels, annotations, trendlines, technical indicators, striplines
- Data Binding: Local arrays, remote data (OData, DataManager), JSON sources, dynamic updates
- Customization: Themes, CSS styling, color palettes, responsive design, animations
- Export & Print: Export to PDF, SVG, PNG, JPEG, CSV, XLSX formats
- Accessibility: WCAG compliance, keyboard navigation, ARIA attributes, internationalization, RTL support
Quality Standards for This Skill
This skill documentation follows strict quality standards to ensure accuracy and production-readiness:
✅ API Accuracy Standards
- Property Names: Use exact Syncfusion v33+ API property names (e.g.,
legendSettings NOT legend)
- Type Safety: All code examples use explicit TypeScript types from
@syncfusion/ej2-angular-charts
- Verification: All properties verified against official Syncfusion API docs
- No Assumptions: Never guess property names—always check official documentation first
✅ Code Quality Standards
- TypeScript Strict Mode: All examples compile with
"strict": true
- No
any Types: 100% type coverage, no loose typing
- Tested Examples: Code examples tested in real Angular projects
- Import Statements: All required types explicitly imported
✅ Documentation Standards
- Clear Property Names: Template property names clearly distinguished from TypeScript names
- Type Declarations: TypeScript type models documented for each property
- Common Mistakes Section: Each feature includes "❌ Don't do this" examples
- Related Properties: Links to related settings and cross-references
🔍 Common Pitfalls (Learn From Mistakes)
| ❌ WRONG |
✅ CORRECT |
Why |
[legend] |
[legendSettings] |
Must use Settings suffix for config objects |
| No type declared |
public legendSettings: LegendSettingsModel = {...} |
Type safety enables IDE IntelliSense |
[tooltips] |
[tooltip] |
Use singular form, not plural |
| Global marker config |
Per-series marker config |
Markers are series-specific |
See: Property Mapping Guide for complete reference
For Developers: Skill Development Guide explains how to maintain this documentation
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
When you need to:
- Install and set up the Chart component in an Angular project
- Understand prerequisites and system requirements
- Add the
@syncfusion/ej2-angular-charts package
- Configure CSS themes and imports
- Create your first basic chart
- Understand the chart module structure
Series Types
📄 Read: references/series-types.md
When you need to:
- Choose the appropriate chart type for your data
- Implement line series (line, step line, spline, stacked, multi-colored)
- Create area charts (area, stacked, 100% stacked, range, spline range)
- Build column and bar charts (column, bar, stacked, range)
- Visualize financial data (candlestick, hilo, hilo-open-close)
- Use statistical charts (box & whisker, histogram, pareto, error bar)
- Create specialized charts (scatter, bubble, polar, radar, waterfall, vertical)
- Combine multiple series types in one chart
Chart Elements
📄 Read: references/chart-elements.md
When you need to:
- Configure and customize legends (positioning, templates, styling)
- Add data markers to highlight points (shapes, sizes, visibility)
- Display data labels on chart elements (positioning, templates, formatting)
- Add custom annotations (text, shapes, images at specific coordinates)
- Include trendlines (linear, exponential, polynomial, moving average)
- Add technical indicators (RSI, MACD, Bollinger Bands, EMA, SMA)
- Highlight specific ranges with striplines
- Apply gradient fills to series
Axes and Layout
📄 Read: references/axes-and-layout.md
When you need to:
- Configure axis types (numeric, datetime, logarithmic, category)
- Set up primary and secondary axes
- Add multiple axes for different data scales
- Format axis labels (rotation, alignment, multilevel labels)
- Customize gridlines and tick marks
- Implement axis crossing and inversed axes
- Create charts with multiple panes
- Configure chart title, subtitle, and dimensions
- Set chart margins and padding
Interactive Features
📄 Read: references/interactive-features.md
When you need to:
- Enable zooming (selection zoom, mouse wheel zoom, pinch zoom, zoom toolbar)
- Implement panning for navigating zoomed charts
- Add tooltips (default, custom templates, shared tooltips)
- Enable crosshair for precise value reading
- Use trackball for multi-series point tracking
- Implement selection (point, series, cluster, drag selection)
- Enable data editing by dragging points
- Synchronize multiple charts for coordinated interactions
Data Binding
📄 Read: references/data-binding.md
When you need to:
- Bind local data (arrays of objects, JSON)
- Connect to remote data sources (OData, RESTful APIs)
- Use DataManager for advanced data operations
- Handle dynamic data updates and real-time data
- Manage empty points and null values
- Map data fields to chart properties
- Optimize performance for large datasets
- Handle asynchronous data loading
Customization
📄 Read: references/customization.md
When you need to:
- Apply built-in themes (Material, Bootstrap, Fabric, Tailwind, etc.)
- Customize chart appearance with CSS
- Use Theme Studio for custom theme generation
- Configure color palettes for series
- Style individual series with custom colors and patterns
- Implement responsive design for different screen sizes
- Configure chart background, border, and area
- Customize animation effects
Accessibility
📄 Read: references/accessibility.md
When you need to:
- Implement WCAG 2.0/2.1 compliant charts
- Enable keyboard navigation (arrow keys, tab, enter)
- Configure ARIA attributes for screen readers
- Ensure proper color contrast and focus indicators
- Support high contrast themes
Property Mapping Guide
📄 Read: references/property-mapping-guide.md
⚠️ START HERE if you:
- Are confused about which properties to use
- Want to understand the
Settings suffix convention
- Need to know which properties are chart-level vs series-level
- Want to avoid common API naming mistakes
- Need TypeScript type information for all properties
Key Resources:
- Complete property mapping table with ✅/❌ comparisons
- Common naming pitfalls (legend vs legendSettings)
- Type-safe implementation patterns
- QA verification checklist for new properties
Skill Development Guide
📄 Read: references/skill-development-guide.md
For Skill Developers & Contributors:
- 4 Key Areas for improving skill documentation
- The
legendSettings case study (what went wrong, how to fix)
- API accuracy verification process
- QA checklist for pre-release documentation
- Common pitfalls to avoid
- Implement internationalization (i18n) for multiple languages
- Enable localization (l10n) for regional formats
- Add RTL (right-to-left) support for appropriate languages
- Configure advanced accessibility features
Advanced Features
📄 Read: references/advanced-features.md
When you need to:
- Handle chart events (load, loaded, pointClick, seriesRender, axisLabelRender, etc.)
- Export charts (PDF, SVG, PNG, JPEG, CSV, XLSX)
- Implement print functionality
- Understand module injection for tree-shaking
- Use different render methods (SVG, Canvas)
- Configure animation settings
- Handle empty point modes
- Access chart API methods programmatically
- Implement advanced event-driven interactions
Common Patterns and Examples
📄 Read: references/common-patterns.md
When you need to:
- See complete examples for common use cases
- Build a trend analysis dashboard
- Create a financial stock chart with technical indicators
- Implement real-time data monitoring with live updates
- Build multi-axis comparison charts
- Create distribution analysis visualizations
- Find troubleshooting solutions for common issues
- Learn performance optimization techniques
- Migrate from EJ1 to EJ2 Chart
- Follow best practices for chart implementation
Quick Start Example
Here's a minimal example to create a basic line chart:
import { ChartModule } from '@syncfusion/ej2-angular-charts'
import { CategoryService, LineSeriesService, DateTimeService } from '@syncfusion/ej2-angular-charts'
import { Component, OnInit } from '@angular/core';
@Component({
imports: [ ChartModule ],
providers: [ CategoryService, LineSeriesService, StepLineSeriesService, SplineSeriesService, StackingLineSeriesService, DateTimeService,
SplineAreaSeriesService, MultiColoredLineSeriesService, ParetoSeriesService, ColumnSeriesService],
standalone: true,
selector: 'app-container',
template: `<ejs-chart id="chart-container" [primaryXAxis]='primaryXAxis'[primaryYAxis]='primaryYAxis'
[title]='title'>
<e-series-collection>
<e-series [dataSource]='chartData' type='Line' xName='month' yName='sales'></e-series>
</e-series-collection>
</ejs-chart>`
})
export class AppComponent implements OnInit {
public chartData?: Object[];
public title?: string;
public primaryXAxis?: Object;
public primaryYAxis?: Object;
ngOnInit(): void {
this.chartData = [
{ month: 'Jan', sales: 35 },
{ month: 'Feb', sales: 28 },
{ month: 'Mar', sales: 34 },
{ month: 'Apr', sales: 32 },
{ month: 'May', sales: 40 },
{ month: 'Jun', sales: 32 },
{ month: 'Jul', sales: 35 },
{ month: 'Aug', sales: 55 },
{ month: 'Sep', sales: 38 },
{ month: 'Oct', sales: 30 },
{ month: 'Nov', sales: 25 },
{ month: 'Dec', sales: 32 }
];
this.primaryXAxis = {
interval: 1,
valueType: 'Category',
};
this.primaryYAxis =
{
title: 'Sales',
},
this.title = 'Monthly Sales Comparison';
}
}
Common Patterns
Pattern 1: Multi-Series Comparison Chart
import { ChartModule } from '@syncfusion/ej2-angular-charts'
import { CategoryService, BarSeriesService, ColumnSeriesService, LineSeriesService, LegendService, DataLabelService, MultiLevelLabelService, SelectionService } from '@syncfusion/ej2-angular-charts'
import { Component, OnInit } from '@angular/core';
@Component({
imports: [ ChartModule ],
providers: [ CategoryService, BarSeriesService, ColumnSeriesService, LineSeriesService,LegendService, DataLabelService, MultiLevelLabelService, SelectionService],
standalone: true,
selector: 'app-container',
template: `<ejs-chart id="chart-container" [primaryXAxis]='primaryXAxis'[primaryYAxis]='primaryYAxis' [title]='title'>
<e-series-collection>
<e-series [dataSource]='chartData' type='Column' xName='country' yName='gold' name='gold'></e-series>
<e-series [dataSource]='chartData' type='Column' xName='country' yName='silver' name='Silver'></e-series>
<e-series [dataSource]='chartData' type='Column' xName='country' yName='bronze' name='Bronze'></e-series>
</e-series-collection>
</ejs-chart>`
})
export class AppComponent implements OnInit {
public primaryXAxis?: Object;
public chartData?: Object[];
public title?: string;
public primaryYAxis?: Object;
ngOnInit(): void {
this.chartData = [
{ country: "USA", gold: 50, silver: 70, bronze: 45 },
{ country: "China", gold: 40, silver: 60, bronze: 55 },
{ country: "Japan", gold: 70, silver: 60, bronze: 50 },
{ country: "Australia", gold: 60, silver: 56, bronze: 40 },
{ country: "France", gold: 50, silver: 45, bronze: 35 },
{ country: "Germany", gold: 40, silver: 30, bronze: 22 },
{ country: "Italy", gold: 40, silver: 35, bronze: 37 },
{ country: "Sweden", gold: 30, silver: 25, bronze: 27 }
];
this.primaryXAxis = {
valueType: 'Category',
title: 'Countries'
};
this.primaryYAxis = {
minimum: 0, maximum: 80,
interval: 20, title: 'Medals'
};
this.title = 'Olympic Medals';
}
}
Pattern 2: Interactive Chart with Zoom and Tooltip
import { ChartModule } from '@syncfusion/ej2-angular-charts'
import { DateTimeService, StepLineSeriesService, ColumnSeriesService } from '@syncfusion/ej2-angular-charts'
import { LegendService, TooltipService, CategoryService, ZoomService } from '@syncfusion/ej2-angular-charts'
import { Component, OnInit } from '@angular/core';
import { toolData } from './datasource';
@Component({
imports: [ ChartModule ],
providers: [ DateTimeService, ZoomService, StepLineSeriesService, LegendService, TooltipService, CategoryService, ColumnSeriesService],
standalone: true,
selector: 'app-container',
template: `<ejs-chart id="chart-container" [primaryXAxis]='primaryXAxis'[primaryYAxis]='primaryYAxis' [title]='title' [tooltip]='tooltip'>
<e-series-collection>
<e-series [dataSource]='chartData' type='StepLine' xName='x' yName='y' width=2 name='China' [marker]='marker'></e-series>
</e-series-collection>
</ejs-chart>`
})
export class AppComponent implements OnInit {
public primaryXAxis?: Object;
public chartData?: Object[];
public title?: string;
public primaryYAxis?: Object;
public marker?: Object;
public tooltip?: Object;
public zoom?: Object;
ngOnInit(): void {
this.chartData = [
{ x: new Date(1975, 0, 1), y: 16, y1: 10, y2: 4.5 },
{ x: new Date(1980, 0, 1), y: 12.5, y1: 7.5, y2: 5 },
{ x: new Date(1985, 0, 1), y: 19, y1: 11, y2: 6.5 },
{ x: new Date(1990, 0, 1), y: 14.4, y1: 7, y2: 4.4 },
{ x: new Date(1995, 0, 1), y: 11.5, y1: 8, y2: 5 },
{ x: new Date(2000, 0, 1), y: 14, y1: 6, y2: 1.5 },
{ x: new Date(2005, 0, 1), y: 10, y1: 3.5, y2: 2.5 },
{ x: new Date(2010, 0, 1), y: 16, y1: 7, y2: 3.7 }
];
this.primaryXAxis = {
valueType: 'DateTime',
};
this.zoom = {
enableMouseWheelZooming: true,
enablePinchZooming: true,
enableSelectionZooming: true
};
this.tooltip = { enable: true };
this.marker = { visible: true, width: 10, height: 10 };
this.title = 'Unemployment Rates 1975-2010';
}
}
Pattern 3: Financial Stock Chart
import { ChartModule } from '@syncfusion/ej2-angular-charts'
import { CategoryService, CandleSeriesService } from '@syncfusion/ej2-angular-charts'
import { Component, OnInit } from '@angular/core';
@Component({
imports: [ ChartModule ],
providers: [CategoryService, CandleSeriesService],
standalone: true,
selector: 'app-container',
template: ` <ejs-chart style='display:block;' id='chart-container' [primaryXAxis]='primaryXAxis' [primaryYAxis]='primaryYAxis' [title]='title' >
<e-series-collection>
<e-series [dataSource]='data' type='Candle' xName='x' high='high' low='low' open='open' close='close' name='SHIRPUR-G'> </e-series>
</e-series-collection>
</ejs-chart>`
})
export class AppComponent implements OnInit {
public primaryXAxis?: Object;
public title?: string;
public primaryYAxis?: Object;
public data?: Object[];
ngOnInit(): void {
this.data = [
{ x: 'Jan', open: 120, high: 160, low: 100, close: 140 },
{ x: 'Feb', open: 150, high: 190, low: 130, close: 170 },
{ x: 'Mar', open: 130, high: 170, low: 110, close: 150 },
{ x: 'Apr', open: 160, high: 180, low: 120, close: 140 },
{ x: 'May', open: 150, high: 170, low: 110, close: 130 }
];
this.primaryXAxis = {
title: 'Date',
valueType: 'Category',
};
this.primaryYAxis = {
title: 'Price', minimum: 100, maximum: 200, interval: 20,
};
this.title = 'Shirpur Gold Refinery Share Price';
}
}
Key Configuration Options
Series Configuration
type: Chart type (Line, Column, Bar, Area, Scatter, etc.)
dataSource: Data array for the series
xName, yName: Property names for x and y values
name: Series name for legend
marker: Marker configuration for data points
fill: Series color
Axis Configuration
valueType: Axis type (Double, DateTime, Category, Logarithmic)
title: Axis title text
minimum, maximum: Axis range
interval: Label interval
labelFormat: Format string for labels
opposedPosition: Position axis on opposite side
Chart Configuration
title: Chart title
width, height: Chart dimensions
theme: Built-in theme name
background: Chart background color
legendSettings: Legend configuration
zoomSettings: Zoom configuration
tooltip: Tooltip configuration
Common Use Cases
- Business Dashboards: Display KPIs, sales trends, revenue comparisons
- Financial Applications: Stock charts, portfolio performance, technical analysis
- Analytics Platforms: User behavior, traffic analysis, conversion funnels
- Scientific Visualization: Experimental data, statistical distributions, correlation analysis
- Monitoring Systems: Real-time metrics, system performance, IoT data
- Reporting Tools: Automated reports, data exports, scheduled visualizations
- Educational Applications: Math graphs, statistics teaching, data science demonstrations
Next Steps
After creating your basic chart:
- Explore different series types for your specific data visualization needs
- Add interactive features like zooming and tooltips for better user experience
- Customize appearance with themes and styling
- Implement data binding for dynamic data sources
- Ensure accessibility compliance for all users
- Export and print capabilities for sharing visualizations
For detailed implementation guidance, refer to the specific reference files listed in the navigation guide above.
API Reference Documentation
📄 Complete API Guide: references/api-reference.md
The Syncfusion Angular Chart component provides 200+ API documentation files covering:
- Core APIs: ChartModel (40+ properties), AxisModel (50+ properties), SeriesDirective (60+ properties)
- Chart Elements: Legend, Markers, Data Labels, Tooltip, Annotations, Trendlines, Technical Indicators, Striplines
- Interactive Features: Zooming, Panning, Crosshair, Selection, Drag Settings
- Events: 40+ event interfaces (ILoadedEventArgs, IPointRenderEventArgs, IZoomingEventArgs, etc.)
- Enumerations: 50+ enums (ChartSeriesType, ValueType, ChartTheme, SelectionMode, ExportType, etc.)
- Utilities: BorderModel, FontModel, MarginModel, AnimationModel, and more
All API documentation is available at https://ej2.syncfusion.com/angular/documentation/api/chart/. See references/api-reference.md for comprehensive API navigation and documentation structure.
Each reference guide (getting-started.md, series-types.md, axes-and-layout.md, etc.) links to the official online API documentation throughout the content.
1---2name: syncfusion-angular-chart3description: Implement Syncfusion Angular Chart component for professional data visualization. Use this when creating or customizing charts such as line, bar, column, area, pie, financial (candlestick, OHLC), scatter, bubble, or stock charts. Supports axes configuration, series binding, legends, tooltips, zooming, real-time updates, technical indicators, themes, export, and accessibility features.4---56# Implementing Syncfusion Angular Chart Component78A comprehensive guide for implementing the Syncfusion Angular Chart component, a high-performance, interactive data visualization library supporting 25+ chart types including line, bar, area, column, pie, financial, and specialized series. Optimized for responsive rendering, smooth interactions, and large datasets.910## When to Use This Skill1112Use this skill when you need to:1314- **Visualize Data:** Display numerical data as charts, graphs, or plots in Angular applications15- **Trend Analysis:** Show data trends over time using line, spline, or area charts16- **Comparisons:** Compare categorical data using column, bar, or grouped charts17- **Financial Data:** Implement stock charts with candlestick, OHLC, or technical indicators18- **Statistical Analysis:** Use box plots, histograms, or pareto charts for distributions19- **Multi-dimensional Data:** Display scatter plots or bubble charts for correlation analysis20- **Real-time Monitoring:** Create live-updating charts for dashboards or monitoring systems21- **Interactive Exploration:** Add zooming, panning, crosshair, tooltips, or selection features22- **Custom Visualizations:** Combine multiple series types, axes, or create complex layouts23- **Accessible Charts:** Implement WCAG-compliant charts with keyboard navigation and screen reader support2425## Component Overview2627The Syncfusion Angular Chart is a feature-rich data visualization component with:2829- **25+ Series Types:** Line, spline, step line, area, column, bar, scatter, bubble, pie, financial (candlestick, OHLC), statistical (box & whisker, histogram, pareto), polar, radar, waterfall, and more30- **Interactive Features:** Zooming (selection, mouse wheel, pinch), panning, tooltips, crosshair, trackball, selection, data editing31- **Multiple Axes:** Support for primary, secondary, and multiple axes with different data types (numeric, datetime, logarithmic, category)32- **Chart Elements:** Legends, data markers, data labels, annotations, trendlines, technical indicators, striplines33- **Data Binding:** Local arrays, remote data (OData, DataManager), JSON sources, dynamic updates34- **Customization:** Themes, CSS styling, color palettes, responsive design, animations35- **Export & Print:** Export to PDF, SVG, PNG, JPEG, CSV, XLSX formats36- **Accessibility:** WCAG compliance, keyboard navigation, ARIA attributes, internationalization, RTL support3738## Quality Standards for This Skill3940This skill documentation follows strict quality standards to ensure accuracy and production-readiness:4142### ✅ API Accuracy Standards43- **Property Names:** Use exact Syncfusion v33+ API property names (e.g., `legendSettings` NOT `legend`)44- **Type Safety:** All code examples use explicit TypeScript types from `@syncfusion/ej2-angular-charts`45- **Verification:** All properties verified against official [Syncfusion API docs](https://ej2.syncfusion.com/angular/documentation/api/chart/)46- **No Assumptions:** Never guess property names—always check official documentation first4748### ✅ Code Quality Standards49- **TypeScript Strict Mode:** All examples compile with `"strict": true`50- **No `any` Types:** 100% type coverage, no loose typing51- **Tested Examples:** Code examples tested in real Angular projects52- **Import Statements:** All required types explicitly imported5354### ✅ Documentation Standards55- **Clear Property Names:** Template property names clearly distinguished from TypeScript names56- **Type Declarations:** TypeScript type models documented for each property57- **Common Mistakes Section:** Each feature includes "❌ Don't do this" examples58- **Related Properties:** Links to related settings and cross-references5960### 🔍 Common Pitfalls (Learn From Mistakes)6162| ❌ WRONG | ✅ CORRECT | Why |63|---------|-----------|-----|64| `[legend]` | `[legendSettings]` | Must use `Settings` suffix for config objects |65| No type declared | `public legendSettings: LegendSettingsModel = {...}` | Type safety enables IDE IntelliSense |66| `[tooltips]` | `[tooltip]` | Use singular form, not plural |67| Global marker config | Per-series marker config | Markers are series-specific |6869**See:** [Property Mapping Guide](references/property-mapping-guide.md) for complete reference 70**For Developers:** [Skill Development Guide](references/skill-development-guide.md) explains how to maintain this documentation7172## Documentation and Navigation Guide7374### Getting Started7576📄 **Read:** [references/getting-started.md](references/getting-started.md)7778When you need to:79- Install and set up the Chart component in an Angular project80- Understand prerequisites and system requirements81- Add the `@syncfusion/ej2-angular-charts` package82- Configure CSS themes and imports83- Create your first basic chart84- Understand the chart module structure8586### Series Types8788📄 **Read:** [references/series-types.md](references/series-types.md)8990When you need to:91- Choose the appropriate chart type for your data92- Implement line series (line, step line, spline, stacked, multi-colored)93- Create area charts (area, stacked, 100% stacked, range, spline range)94- Build column and bar charts (column, bar, stacked, range)95- Visualize financial data (candlestick, hilo, hilo-open-close)96- Use statistical charts (box & whisker, histogram, pareto, error bar)97- Create specialized charts (scatter, bubble, polar, radar, waterfall, vertical)98- Combine multiple series types in one chart99100### Chart Elements101102📄 **Read:** [references/chart-elements.md](references/chart-elements.md)103104When you need to:105- Configure and customize legends (positioning, templates, styling)106- Add data markers to highlight points (shapes, sizes, visibility)107- Display data labels on chart elements (positioning, templates, formatting)108- Add custom annotations (text, shapes, images at specific coordinates)109- Include trendlines (linear, exponential, polynomial, moving average)110- Add technical indicators (RSI, MACD, Bollinger Bands, EMA, SMA)111- Highlight specific ranges with striplines112- Apply gradient fills to series113114### Axes and Layout115116📄 **Read:** [references/axes-and-layout.md](references/axes-and-layout.md)117118When you need to:119- Configure axis types (numeric, datetime, logarithmic, category)120- Set up primary and secondary axes121- Add multiple axes for different data scales122- Format axis labels (rotation, alignment, multilevel labels)123- Customize gridlines and tick marks124- Implement axis crossing and inversed axes125- Create charts with multiple panes126- Configure chart title, subtitle, and dimensions127- Set chart margins and padding128129### Interactive Features130131📄 **Read:** [references/interactive-features.md](references/interactive-features.md)132133When you need to:134- Enable zooming (selection zoom, mouse wheel zoom, pinch zoom, zoom toolbar)135- Implement panning for navigating zoomed charts136- Add tooltips (default, custom templates, shared tooltips)137- Enable crosshair for precise value reading138- Use trackball for multi-series point tracking139- Implement selection (point, series, cluster, drag selection)140- Enable data editing by dragging points141- Synchronize multiple charts for coordinated interactions142143### Data Binding144145📄 **Read:** [references/data-binding.md](references/data-binding.md)146147When you need to:148- Bind local data (arrays of objects, JSON)149- Connect to remote data sources (OData, RESTful APIs)150- Use DataManager for advanced data operations151- Handle dynamic data updates and real-time data152- Manage empty points and null values153- Map data fields to chart properties154- Optimize performance for large datasets155- Handle asynchronous data loading156157### Customization158159📄 **Read:** [references/customization.md](references/customization.md)160161When you need to:162- Apply built-in themes (Material, Bootstrap, Fabric, Tailwind, etc.)163- Customize chart appearance with CSS164- Use Theme Studio for custom theme generation165- Configure color palettes for series166- Style individual series with custom colors and patterns167- Implement responsive design for different screen sizes168- Configure chart background, border, and area169- Customize animation effects170171### Accessibility172173📄 **Read:** [references/accessibility.md](references/accessibility.md)174175When you need to:176- Implement WCAG 2.0/2.1 compliant charts177- Enable keyboard navigation (arrow keys, tab, enter)178- Configure ARIA attributes for screen readers179- Ensure proper color contrast and focus indicators180- Support high contrast themes181182### Property Mapping Guide183184📄 **Read:** [references/property-mapping-guide.md](references/property-mapping-guide.md)185186**⚠️ START HERE** if you:187- Are confused about which properties to use188- Want to understand the `Settings` suffix convention189- Need to know which properties are chart-level vs series-level190- Want to avoid common API naming mistakes191- Need TypeScript type information for all properties192193**Key Resources:**194- Complete property mapping table with ✅/❌ comparisons195- Common naming pitfalls (legend vs legendSettings)196- Type-safe implementation patterns197- QA verification checklist for new properties198199### Skill Development Guide200201📄 **Read:** [references/skill-development-guide.md](references/skill-development-guide.md)202203**For Skill Developers & Contributors:**204- 4 Key Areas for improving skill documentation205- The `legendSettings` case study (what went wrong, how to fix)206- API accuracy verification process207- QA checklist for pre-release documentation208- Common pitfalls to avoid209- Implement internationalization (i18n) for multiple languages210- Enable localization (l10n) for regional formats211- Add RTL (right-to-left) support for appropriate languages212- Configure advanced accessibility features213214### Advanced Features215216📄 **Read:** [references/advanced-features.md](references/advanced-features.md)217218When you need to:219- Handle chart events (load, loaded, pointClick, seriesRender, axisLabelRender, etc.)220- Export charts (PDF, SVG, PNG, JPEG, CSV, XLSX)221- Implement print functionality222- Understand module injection for tree-shaking223- Use different render methods (SVG, Canvas)224- Configure animation settings225- Handle empty point modes226- Access chart API methods programmatically227- Implement advanced event-driven interactions228229### Common Patterns and Examples230231📄 **Read:** [references/common-patterns.md](references/common-patterns.md)232233When you need to:234- See complete examples for common use cases235- Build a trend analysis dashboard236- Create a financial stock chart with technical indicators237- Implement real-time data monitoring with live updates238- Build multi-axis comparison charts239- Create distribution analysis visualizations240- Find troubleshooting solutions for common issues241- Learn performance optimization techniques242- Migrate from EJ1 to EJ2 Chart243- Follow best practices for chart implementation244245## Quick Start Example246247Here's a minimal example to create a basic line chart:248249```typescript250import { ChartModule } from '@syncfusion/ej2-angular-charts'251import { CategoryService, LineSeriesService, DateTimeService } from '@syncfusion/ej2-angular-charts'252import { Component, OnInit } from '@angular/core';253254@Component({255imports: [ ChartModule ],256providers: [ CategoryService, LineSeriesService, StepLineSeriesService, SplineSeriesService, StackingLineSeriesService, DateTimeService,257 SplineAreaSeriesService, MultiColoredLineSeriesService, ParetoSeriesService, ColumnSeriesService],258standalone: true,259 selector: 'app-container',260 template: `<ejs-chart id="chart-container" [primaryXAxis]='primaryXAxis'[primaryYAxis]='primaryYAxis'261 [title]='title'>262 <e-series-collection>263 <e-series [dataSource]='chartData' type='Line' xName='month' yName='sales'></e-series>264 </e-series-collection>265 </ejs-chart>`266})267export class AppComponent implements OnInit {268 public chartData?: Object[];269 public title?: string;270 public primaryXAxis?: Object;271 public primaryYAxis?: Object;272 ngOnInit(): void {273 this.chartData = [274 { month: 'Jan', sales: 35 },275 { month: 'Feb', sales: 28 },276 { month: 'Mar', sales: 34 },277 { month: 'Apr', sales: 32 },278 { month: 'May', sales: 40 },279 { month: 'Jun', sales: 32 },280 { month: 'Jul', sales: 35 },281 { month: 'Aug', sales: 55 },282 { month: 'Sep', sales: 38 },283 { month: 'Oct', sales: 30 },284 { month: 'Nov', sales: 25 },285 { month: 'Dec', sales: 32 }286 ];287 this.primaryXAxis = {288 interval: 1,289 valueType: 'Category',290 };291 this.primaryYAxis =292 {293 title: 'Sales',294 },295 this.title = 'Monthly Sales Comparison';296 }297}298```299300## Common Patterns301302### Pattern 1: Multi-Series Comparison Chart303304```typescript305import { ChartModule } from '@syncfusion/ej2-angular-charts'306import { CategoryService, BarSeriesService, ColumnSeriesService, LineSeriesService, LegendService, DataLabelService, MultiLevelLabelService, SelectionService } from '@syncfusion/ej2-angular-charts'307import { Component, OnInit } from '@angular/core';308309@Component({310imports: [ ChartModule ],311providers: [ CategoryService, BarSeriesService, ColumnSeriesService, LineSeriesService,LegendService, DataLabelService, MultiLevelLabelService, SelectionService],312standalone: true,313 selector: 'app-container',314 template: `<ejs-chart id="chart-container" [primaryXAxis]='primaryXAxis'[primaryYAxis]='primaryYAxis' [title]='title'>315 <e-series-collection>316 <e-series [dataSource]='chartData' type='Column' xName='country' yName='gold' name='gold'></e-series>317 <e-series [dataSource]='chartData' type='Column' xName='country' yName='silver' name='Silver'></e-series>318 <e-series [dataSource]='chartData' type='Column' xName='country' yName='bronze' name='Bronze'></e-series>319 </e-series-collection>320 </ejs-chart>`321})322export class AppComponent implements OnInit {323 public primaryXAxis?: Object;324 public chartData?: Object[];325 public title?: string;326 public primaryYAxis?: Object;327 ngOnInit(): void {328 this.chartData = [329 { country: "USA", gold: 50, silver: 70, bronze: 45 },330 { country: "China", gold: 40, silver: 60, bronze: 55 },331 { country: "Japan", gold: 70, silver: 60, bronze: 50 },332 { country: "Australia", gold: 60, silver: 56, bronze: 40 },333 { country: "France", gold: 50, silver: 45, bronze: 35 },334 { country: "Germany", gold: 40, silver: 30, bronze: 22 },335 { country: "Italy", gold: 40, silver: 35, bronze: 37 },336 { country: "Sweden", gold: 30, silver: 25, bronze: 27 }337 ];338 this.primaryXAxis = {339 valueType: 'Category',340 title: 'Countries'341 };342 this.primaryYAxis = {343 minimum: 0, maximum: 80,344 interval: 20, title: 'Medals'345 };346 this.title = 'Olympic Medals';347 }348}349```350351### Pattern 2: Interactive Chart with Zoom and Tooltip352353```typescript354import { ChartModule } from '@syncfusion/ej2-angular-charts'355import { DateTimeService, StepLineSeriesService, ColumnSeriesService } from '@syncfusion/ej2-angular-charts'356import { LegendService, TooltipService, CategoryService, ZoomService } from '@syncfusion/ej2-angular-charts'357import { Component, OnInit } from '@angular/core';358import { toolData } from './datasource';359@Component({360imports: [ ChartModule ],361providers: [ DateTimeService, ZoomService, StepLineSeriesService, LegendService, TooltipService, CategoryService, ColumnSeriesService],362standalone: true,363 selector: 'app-container',364 template: `<ejs-chart id="chart-container" [primaryXAxis]='primaryXAxis'[primaryYAxis]='primaryYAxis' [title]='title' [tooltip]='tooltip'>365 <e-series-collection>366 <e-series [dataSource]='chartData' type='StepLine' xName='x' yName='y' width=2 name='China' [marker]='marker'></e-series>367 </e-series-collection>368 </ejs-chart>`369})370export class AppComponent implements OnInit {371 public primaryXAxis?: Object;372 public chartData?: Object[];373 public title?: string;374 public primaryYAxis?: Object;375 public marker?: Object;376 public tooltip?: Object;377 public zoom?: Object;378 ngOnInit(): void {379 this.chartData = [380 { x: new Date(1975, 0, 1), y: 16, y1: 10, y2: 4.5 },381 { x: new Date(1980, 0, 1), y: 12.5, y1: 7.5, y2: 5 },382 { x: new Date(1985, 0, 1), y: 19, y1: 11, y2: 6.5 },383 { x: new Date(1990, 0, 1), y: 14.4, y1: 7, y2: 4.4 },384 { x: new Date(1995, 0, 1), y: 11.5, y1: 8, y2: 5 },385 { x: new Date(2000, 0, 1), y: 14, y1: 6, y2: 1.5 },386 { x: new Date(2005, 0, 1), y: 10, y1: 3.5, y2: 2.5 },387 { x: new Date(2010, 0, 1), y: 16, y1: 7, y2: 3.7 }388 ];389 this.primaryXAxis = {390 valueType: 'DateTime',391 };392 this.zoom = {393 enableMouseWheelZooming: true,394 enablePinchZooming: true,395 enableSelectionZooming: true396 };397 this.tooltip = { enable: true };398 this.marker = { visible: true, width: 10, height: 10 };399 this.title = 'Unemployment Rates 1975-2010';400 }401}402```403404### Pattern 3: Financial Stock Chart405406```typescript407import { ChartModule } from '@syncfusion/ej2-angular-charts'408import { CategoryService, CandleSeriesService } from '@syncfusion/ej2-angular-charts'409import { Component, OnInit } from '@angular/core';410411@Component({412imports: [ ChartModule ],413providers: [CategoryService, CandleSeriesService],414standalone: true,415 selector: 'app-container',416 template: ` <ejs-chart style='display:block;' id='chart-container' [primaryXAxis]='primaryXAxis' [primaryYAxis]='primaryYAxis' [title]='title' >417 <e-series-collection>418 <e-series [dataSource]='data' type='Candle' xName='x' high='high' low='low' open='open' close='close' name='SHIRPUR-G'> </e-series>419 </e-series-collection>420 </ejs-chart>`421})422export class AppComponent implements OnInit {423 public primaryXAxis?: Object;424 public title?: string;425 public primaryYAxis?: Object;426 public data?: Object[];427 ngOnInit(): void {428 this.data = [429 { x: 'Jan', open: 120, high: 160, low: 100, close: 140 },430 { x: 'Feb', open: 150, high: 190, low: 130, close: 170 },431 { x: 'Mar', open: 130, high: 170, low: 110, close: 150 },432 { x: 'Apr', open: 160, high: 180, low: 120, close: 140 },433 { x: 'May', open: 150, high: 170, low: 110, close: 130 }434 ];435 this.primaryXAxis = {436 title: 'Date',437 valueType: 'Category',438 };439 this.primaryYAxis = {440 title: 'Price', minimum: 100, maximum: 200, interval: 20,441 };442 this.title = 'Shirpur Gold Refinery Share Price';443 }444}445```446447## Key Configuration Options448449### Series Configuration450- `type`: Chart type (Line, Column, Bar, Area, Scatter, etc.)451- `dataSource`: Data array for the series452- `xName`, `yName`: Property names for x and y values453- `name`: Series name for legend454- `marker`: Marker configuration for data points455- `fill`: Series color456457### Axis Configuration458- `valueType`: Axis type (Double, DateTime, Category, Logarithmic)459- `title`: Axis title text460- `minimum`, `maximum`: Axis range461- `interval`: Label interval462- `labelFormat`: Format string for labels463- `opposedPosition`: Position axis on opposite side464465### Chart Configuration466- `title`: Chart title467- `width`, `height`: Chart dimensions468- `theme`: Built-in theme name469- `background`: Chart background color470- `legendSettings`: Legend configuration471- `zoomSettings`: Zoom configuration472- `tooltip`: Tooltip configuration473474## Common Use Cases4754761. **Business Dashboards:** Display KPIs, sales trends, revenue comparisons4772. **Financial Applications:** Stock charts, portfolio performance, technical analysis4783. **Analytics Platforms:** User behavior, traffic analysis, conversion funnels4794. **Scientific Visualization:** Experimental data, statistical distributions, correlation analysis4805. **Monitoring Systems:** Real-time metrics, system performance, IoT data4816. **Reporting Tools:** Automated reports, data exports, scheduled visualizations4827. **Educational Applications:** Math graphs, statistics teaching, data science demonstrations483484## Next Steps485486After creating your basic chart:487- Explore different series types for your specific data visualization needs488- Add interactive features like zooming and tooltips for better user experience489- Customize appearance with themes and styling490- Implement data binding for dynamic data sources491- Ensure accessibility compliance for all users492- Export and print capabilities for sharing visualizations493494For detailed implementation guidance, refer to the specific reference files listed in the navigation guide above.495496## API Reference Documentation497498📄 **Complete API Guide:** [references/api-reference.md](references/api-reference.md)499500The Syncfusion Angular Chart component provides 200+ API documentation files covering:501502- **Core APIs:** ChartModel (40+ properties), AxisModel (50+ properties), SeriesDirective (60+ properties)503- **Chart Elements:** Legend, Markers, Data Labels, Tooltip, Annotations, Trendlines, Technical Indicators, Striplines504- **Interactive Features:** Zooming, Panning, Crosshair, Selection, Drag Settings505- **Events:** 40+ event interfaces (ILoadedEventArgs, IPointRenderEventArgs, IZoomingEventArgs, etc.)506- **Enumerations:** 50+ enums (ChartSeriesType, ValueType, ChartTheme, SelectionMode, ExportType, etc.)507- **Utilities:** BorderModel, FontModel, MarginModel, AnimationModel, and more508509All API documentation is available at https://ej2.syncfusion.com/angular/documentation/api/chart/. See [references/api-reference.md](references/api-reference.md) for comprehensive API navigation and documentation structure.510511Each reference guide (getting-started.md, series-types.md, axes-and-layout.md, etc.) links to the official online API documentation throughout the content.