Implementing Syncfusion Blazor 3D Charts
NuGet: Syncfusion.Blazor.Chart3D + Syncfusion.Blazor.Themes
Namespace: Syncfusion.Blazor.Chart3D
A comprehensive skill for implementing and customizing Syncfusion's Blazor 3D Chart component. The 3D Chart provides stunning three-dimensional visualization for column, bar, and stacked chart types with rich customization options including rotation, tilt, depth, and various axis types.
When to Use This Skill
Use this skill when you need to:
- Create three-dimensional charts in Blazor applications
- Visualize data with 3D column, bar, or stacked chart types
- Implement rotatable and tiltable 3D visualizations
- Configure category, numeric, datetime, or logarithmic axes for 3D charts
- Bind data from various sources (IEnumerable, remote data, dynamic objects)
- Customize 3D chart appearance (colors, depth, wall color, rotation)
- Add data labels, legends, and tooltips to 3D charts
- Configure axis labels, tick lines, and grid lines
- Enable selection, highlighting, and interaction in 3D charts
- Create multi-pane 3D chart layouts
- Export or print 3D charts
- Ensure WCAG accessibility compliance for 3D visualizations
- Troubleshoot 3D chart rendering or configuration issues
Component Overview
Package: Syncfusion.Blazor.Chart3D
Component: SfChart3D
Supported Chart Types: Column, Bar, StackedColumn, StackedBar
Supported Axis Types: Category, Numeric, DateTime, Logarithmic
Platforms: Blazor Server, Blazor WebAssembly, Blazor Web App (.NET 8+)
The 3D Chart component renders data in three-dimensional space with configurable rotation, tilt, and depth for enhanced visual impact. It supports all standard chart features including multiple series, rich tooltips, legends, data labels, and extensive customization options.
Documentation and Navigation Guide
API Reference
📄 Read: references/api-reference.md
- Complete API reference for Syncfusion.Blazor.Chart3D namespace
- SfChart3D component properties, methods, and events
- All chart series, axis, legend, and tooltip classes
- Data label, border, margin, and styling components
- Event argument classes for all chart events
- Enumerations (Chart3DSeriesType, ValueType, SelectionMode, etc.)
- Interface definitions and base classes
- Usage examples for common API scenarios
- Links to detailed online API documentation
Events Reference
📄 Read: references/events.md
- Complete event reference for all 3D chart events
- Lifecycle events (OnCreated, OnResized)
- Rendering events (OnSeriesRender, OnPointRender, OnAxisLabelRender, etc.)
- User interaction events (OnPointClick, OnLegendClick, OnSelectionChanged)
- Mouse events (OnChartMouseMove, OnChartMouseClick, etc.)
- Export and data events (OnExported, OnAxisRangeRendered)
- Event argument properties and usage examples
- Complete working examples with multiple events
- Event handling best practices
Getting Started
📄 Read: references/getting-started.md
- Complete installation and setup for Blazor Server, WebAssembly, and Web App
- NuGet package installation (Syncfusion.Blazor.Chart3D)
- Service registration and namespace imports
- Script and theme configuration
- Creating your first 3D chart with complete code example
- Data source setup and basic binding
- Render mode configuration for .NET 8+
- Troubleshooting common setup issues
Chart Types
📄 Read: references/chart-types.md
- Column charts - vertical 3D bars
- Bar charts - horizontal 3D bars
- Stacked Column charts - vertically stacked series
- Stacked Bar charts - horizontally stacked series
- Chart type configuration (Chart3DSeriesType enum)
- Column/bar spacing and width customization
- Grouped columns with GroupName property
- Multiple series in single chart
- Complete code examples for each type
Data Binding
📄 Read: references/data-binding.md
- List binding with IEnumerable objects
- ExpandoObject binding for dynamic data structures
- DynamicObject binding for runtime data
- Remote data binding with SfDataManager
- DataSource, XName, YName property mapping
- Complex data structures and nested properties
- Dynamic data updates and refresh
- Performance optimization tips
Axis Configuration
📄 Read: references/axes-configuration.md
- Category Axis - for discrete categories
- Numeric Axis - for continuous numeric data
- DateTime Axis - for time-series data
- Logarithmic Axis - for exponential scale data
- ValueType property configuration
- Axis range (Minimum, Maximum, Interval)
- Axis titles and title rotation
- Tick lines and grid lines customization
- Multiple axes support
- Complete examples for each axis type
Axis Labels
📄 Read: references/axis-labels.md
- Label formatting (LabelFormat property)
- Custom label templates
- Label rotation (LabelRotationAngle)
- Label placement (BetweenTicks, OnTicks)
- Label style customization (font, color, size)
- Smart label collision handling
- Custom label text with events
- Edge label placement
- Multilevel labels
Data Labels
📄 Read: references/data-labels.md
- Enabling data labels on series
- Label position configuration
- Label template customization
- Label styling (font, color, background)
- Smart label positioning
- Format customization
- Conditional label visibility
- Complete implementation examples
Legend
📄 Read: references/legend.md
- Enabling and positioning legends
- Legend alignment options
- Series name customization
- Legend styling and appearance
- Interactive legend toggle
- Custom legend items and icons
- Legend templates
- Complete configuration examples
Tooltip
📄 Read: references/tooltip.md
- Enabling tooltips on hover
- Tooltip format customization
- Custom tooltip templates
- Tooltip styling (border, fill, opacity)
- Multi-point tooltip content
- Shared tooltips across series
- Complete implementation examples
Appearance and Styling
📄 Read: references/appearance.md
- Chart background and wall color
- Series colors and color palettes
- Theme integration (Material, Bootstrap, Fluent, Tailwind)
- Custom CSS styling with CssClass
- Opacity and transparency effects
- Border styles and customization
- Animation configuration
- Visual effects and enhancements
Chart Dimensions and 3D Effects
📄 Read: references/chart-dimensions.md
- Chart size configuration (Width, Height)
- Responsive sizing techniques
- 3D rotation (EnableRotation, RotationAngle)
- Tilt angle configuration (TiltAngle)
- Depth configuration (Depth property)
- Wall size customization
- Perspective and viewing angle
- Complete dimension examples
Selection and Highlighting
📄 Read: references/selection.md
- Selection modes (Point, Series, Cluster)
- Enabling selection functionality
- Selection patterns and visual styles
- Multi-selection support
- Selection events and handling
- Programmatic selection
- Highlight modes and effects
- Complete selection examples
Multiple Panes
📄 Read: references/multiple-panes.md
- Creating multi-pane chart layouts
- Row and column pane configuration
- Assigning axes to specific panes
- Distributing series across panes
- Pane border and background customization
- Synchronized pane behavior
- Use cases for multiple panes
- Complete multi-pane examples
Print and Export
📄 Read: references/print-export.md
- Print functionality
- Export to image formats (PNG, JPEG, SVG)
- Export to PDF documents
- Export configuration options
- Custom export settings
- Print preview customization
- Complete export examples
Accessibility
📄 Read: references/accessibility.md
- WCAG 2.1 compliance overview
- Keyboard navigation support
- ARIA attributes and roles
- Screen reader compatibility
- Focus management
- High contrast mode support
- Color contrast requirements
- Accessible design patterns
- Testing accessibility
Quick Start Example
@page "/3d-chart-demo"
@using Syncfusion.Blazor.Chart3D
<SfChart3D Title="Sales Analysis"
WallColor="transparent"
EnableRotation="true"
RotationAngle="7"
TiltAngle="10"
Depth="100">
<Chart3DPrimaryXAxis Title="Month"
ValueType="Syncfusion.Blazor.Chart3D.ValueType.Category">
</Chart3DPrimaryXAxis>
<Chart3DPrimaryYAxis Title="Sales (in thousands)">
</Chart3DPrimaryYAxis>
<Chart3DLegendSettings Visible="true"></Chart3DLegendSettings>
<Chart3DTooltipSettings Enable="true"></Chart3DTooltipSettings>
<Chart3DSeriesCollection>
<Chart3DSeries DataSource="@SalesData"
Name="Sales"
XName="Month"
YName="SalesValue"
Type="Chart3DSeriesType.Column">
<Chart3DDataLabel Visible="true"></Chart3DDataLabel>
</Chart3DSeries>
</Chart3DSeriesCollection>
</SfChart3D>
@code {
public class SalesInfo
{
public string Month { get; set; }
public double SalesValue { get; set; }
}
public List<SalesInfo> SalesData = new List<SalesInfo>
{
new SalesInfo { Month = "Jan", SalesValue = 35 },
new SalesInfo { Month = "Feb", SalesValue = 28 },
new SalesInfo { Month = "Mar", SalesValue = 34 },
new SalesInfo { Month = "Apr", SalesValue = 32 },
new SalesInfo { Month = "May", SalesValue = 40 },
new SalesInfo { Month = "Jun", SalesValue = 32 },
new SalesInfo { Month = "Jul", SalesValue = 35 }
};
}
Common Patterns
Multiple Series Chart
@using Syncfusion.Blazor.Chart3D
<SfChart3D WallColor="transparent" EnableRotation="true" RotationAngle="7" TiltAngle="10" Depth="100">
<Chart3DPrimaryXAxis ValueType="Syncfusion.Blazor.Chart3D.ValueType.Category">
</Chart3DPrimaryXAxis>
<Chart3DSeriesCollection>
<Chart3DSeries DataSource="@Data" Name="Series 1" XName="X" YName="Y1" Type="Chart3DSeriesType.Column">
</Chart3DSeries>
<Chart3DSeries DataSource="@Data" Name="Series 2" XName="X" YName="Y2" Type="Chart3DSeriesType.Column">
</Chart3DSeries>
</Chart3DSeriesCollection>
</SfChart3D>
@code {
public class ChartData
{
public string X { get; set; }
public double Y1 { get; set; }
public double Y2 { get; set; }
}
public List<ChartData> Data = new List<ChartData>
{
new ChartData { X = "Jan", Y1 = 35, Y2 = 28 },
new ChartData { X = "Feb", Y1 = 28, Y2 = 32 },
new ChartData { X = "Mar", Y1 = 34, Y2 = 30 },
new ChartData { X = "Apr", Y1 = 32, Y2 = 36 },
new ChartData { X = "May", Y1 = 40, Y2 = 38 },
new ChartData { X = "Jun", Y1 = 32, Y2 = 34 },
new ChartData { X = "Jul", Y1 = 35, Y2 = 37 }
};
}
Stacked Column Chart
@using Syncfusion.Blazor.Chart3D
<SfChart3D WallColor="transparent" EnableRotation="true" RotationAngle="7" TiltAngle="10" Depth="100">
<Chart3DPrimaryXAxis ValueType="Syncfusion.Blazor.Chart3D.ValueType.Category">
</Chart3DPrimaryXAxis>
<Chart3DSeriesCollection>
<Chart3DSeries DataSource="@Data" XName="X" YName="Y1" Type="Chart3DSeriesType.StackingColumn">
</Chart3DSeries>
<Chart3DSeries DataSource="@Data" XName="X" YName="Y2" Type="Chart3DSeriesType.StackingColumn">
</Chart3DSeries>
</Chart3DSeriesCollection>
</SfChart3D>
@code {
public class StackingData
{
public string X { get; set; }
public double Y1 { get; set; }
public double Y2 { get; set; }
}
public List<StackingData> Data = new List<StackingData>
{
new StackingData { X = "Jan", Y1 = 20, Y2 = 15 },
new StackingData { X = "Feb", Y1 = 18, Y2 = 12 },
new StackingData { X = "Mar", Y1 = 25, Y2 = 14 },
new StackingData { X = "Apr", Y1 = 22, Y2 = 16 },
new StackingData { X = "May", Y1 = 28, Y2 = 18 },
new StackingData { X = "Jun", Y1 = 24, Y2 = 14 },
new StackingData { X = "Jul", Y1 = 26, Y2 = 17 }
};
}
DateTime Axis Chart
@using Syncfusion.Blazor.Chart3D
<SfChart3D WallColor="transparent" EnableRotation="true" RotationAngle="7" TiltAngle="10" Depth="100">
<Chart3DPrimaryXAxis ValueType="Syncfusion.Blazor.Chart3D.ValueType.DateTime"
LabelFormat="yyyy">
</Chart3DPrimaryXAxis>
<Chart3DSeriesCollection>
<Chart3DSeries DataSource="@TimeSeriesData"
XName="Date"
YName="Value"
Type="Chart3DSeriesType.Column">
</Chart3DSeries>
</Chart3DSeriesCollection>
</SfChart3D>
@code {
public class TimeSeriesPoint
{
public DateTime Date { get; set; }
public double Value { get; set; }
}
public List<TimeSeriesPoint> TimeSeriesData = new List<TimeSeriesPoint>
{
new TimeSeriesPoint { Date = new DateTime(2018, 1, 1), Value = 120 },
new TimeSeriesPoint { Date = new DateTime(2019, 1, 1), Value = 135 },
new TimeSeriesPoint { Date = new DateTime(2020, 1, 1), Value = 150 },
new TimeSeriesPoint { Date = new DateTime(2021, 1, 1), Value = 170 },
new TimeSeriesPoint { Date = new DateTime(2022, 1, 1), Value = 160 },
new TimeSeriesPoint { Date = new DateTime(2023, 1, 1), Value = 185 },
new TimeSeriesPoint { Date = new DateTime(2024, 1, 1), Value = 200 }
};
}
Key Properties and APIs
SfChart3D Component
Main Properties:
- Title: Chart title text
- SubTitle: Chart subtitle text
- Width/Height: Chart dimensions (string with units or percentage)
- WallColor: Background color of 3D walls
- EnableRotation: Enable mouse rotation (bool)
- RotationAngle: Initial rotation angle (0-360 degrees)
- TiltAngle: Tilt angle for 3D perspective (0-360 degrees)
- Depth: Depth of 3D rendering (numeric value)
- Theme: Chart theme (Material, Bootstrap, Fluent, Tailwind, etc.)
- Background: Background color for the chart
- BackgroundImage: Background image URL
Methods:
ExportAsync(ExportType, string) - Export chart to PNG, JPEG, SVG, or PDF
PrintAsync() - Print the chart
Refresh() - Refresh the chart rendering
Key Events:
OnCreated - Chart3DCreatedEventArgs
OnPointClick - Chart3DPointClickEventArgs
OnSeriesRender - Chart3DSeriesRenderEventArgs
OnPointRender - Chart3DPointRenderEventArgs
OnLegendClick - Chart3DLegendClickEventArgs
OnTooltipRender - Chart3DTooltipRenderEventArgs
OnSelectionChanged - Chart3DSelectionChangedEventArgs
OnAxisLabelRender - Chart3DAxisLabelRenderEventArgs
Chart3DSeries Properties
- DataSource: Data collection to bind
- XName: Property name for X-axis values
- YName: Property name for Y-axis values
- Name: Series display name for legend
- Type: Chart3DSeriesType enum (Column, Bar, StackingColumn, StackingBar)
- Fill: Series color
- Opacity: Series opacity (0-1)
- ColumnSpacing: Space between columns (0-1)
- ColumnWidth: Width of columns (0-1)
- GroupName: Group name for grouped columns
- Visible: Series visibility toggle
Child Components:
Chart3DDataLabel - Data label configuration
Chart3DEmptyPointSettings - Empty point handling
Chart3DSeriesBorder - Border customization
Chart3DAnimation - Animation settings
Axis Components (Chart3DPrimaryXAxis, Chart3DPrimaryYAxis, Chart3DAxis)
Core Properties:
- ValueType: ValueType enum (Category, Numeric, DateTime, Double, DateTimeCategory, Logarithmic)
- Title: Axis title text
- Minimum/Maximum: Axis range bounds
- Interval: Spacing between axis values
- LabelFormat: Format string for labels (e.g., "yyyy", "C", "N2")
- LabelRotationAngle: Rotation angle for labels
- EdgeLabelPlacement: EdgeLabelPlacement enum (None, Shift, Hide)
- LabelPlacement: LabelPlacement enum (OnTicks, BetweenTicks)
- RangePadding: ChartRangePadding enum (Auto, None, Normal, Additional, Round)
- IsInversed: Invert axis direction
- OpposedPosition: Position axis on opposite side
Child Components:
Chart3DAxisLabelStyle - Label font customization
Chart3DAxisTitleStyle - Title font customization
Chart3DMajorGridLines / Chart3DMinorGridLines - Grid line settings
Chart3DMajorTickLines / Chart3DMinorTickLines - Tick line settings
Legend Settings (Chart3DLegendSettings)
- Visible: Show/hide legend
- Position: LegendPosition enum (Top, Bottom, Left, Right, Custom)
- Alignment: Alignment enum (Near, Center, Far)
- Height/Width: Legend dimensions
- ShapeHeight/ShapeWidth: Icon dimensions
- ToggleVisibility: Enable series toggle on click
- Mode: Chart3DLegendMode enum (Series, Point)
Child Components:
Chart3DLegendTextStyle - Text font style
Chart3DLegendBorder - Border customization
Chart3DLegendMargin - Margin settings
Tooltip Settings (Chart3DTooltipSettings)
- Enable: Enable tooltip
- Fill: Background color
- Format: Format string for tooltip content
- Shared: Share tooltip across series
- EnableMarker: Show marker in tooltip
- FadeOutDuration: Fade out duration in ms
- FadeOutMode: Chart3DFadeOutMode enum (Click, Move)
- Template: RenderFragment for custom tooltip
Child Components:
Chart3DTooltipTextStyle - Text font style
Chart3DTooltipBorder - Border customization
Selection Settings
- SelectionMode: SelectionMode enum (None, Point, Series, Cluster)
- SelectionPattern: SelectionPattern enum (None, Dots, DiagonalForward, Grid, Chessboard, etc.)
- HighlightMode: HighlightMode enum (None, Point, Series, Cluster)
Use Chart3DSelectedDataIndexes collection with Chart3DSelectedDataIndex to programmatically select points.
Common Use Cases
Business Dashboard Metrics
Display KPIs, sales data, or performance metrics with enhanced 3D visualization for executive dashboards.
Financial Data Visualization
Render stock prices, market trends, or financial comparisons with datetime axes and multiple series.
Scientific Data Presentation
Visualize experimental data, measurements, or research findings with logarithmic or numeric axes.
Product Comparison
Compare product features, ratings, or sales across categories with grouped or stacked columns.
Time-Series Analysis
Display trends over time with datetime axes and smooth animations for data changes.
Regional Sales Reporting
Show sales by region, country, or territory with category axes and colorful series.
Troubleshooting Tips
Chart not rendering:
- Verify
AddSyncfusionBlazor() service registration in Program.cs
- Check namespace imports in _Imports.razor
- Ensure script reference is at end of body tag
- Confirm render mode for .NET 8+ projects
Data not displaying:
- Check XName and YName match property names exactly (case-sensitive)
- Verify DataSource is not null and contains data
- Ensure ValueType matches data type (Category for strings, Numeric for numbers)
3D rotation not working:
- Set EnableRotation="true"
- Ensure RotationAngle is between 0-360
- Check if mouse events are blocked by overlays
Performance issues:
- Limit data points (3D rendering is resource-intensive)
- Disable animations if not needed
- Use appropriate chart type for data volume
Related Syncfusion Components
- Chart - 2D chart component with 30+ chart types
- Stock Chart - Financial charting with technical indicators
- Circular Gauge - Radial gauge visualization
- Pivot Table - Multi-dimensional data analysis
- TreeMap - Hierarchical data visualization
1---2name: syncfusion-blazor-3d-charts3description: Provides guidance for building and customizing Syncfusion Blazor 3D Charts. Trigger this skill whenever the user needs help with SfChart3D, 3D Column/Bar charts, axes, data binding, rotation, tilt, depth, legends, tooltips, or any configuration in Syncfusion.Blazor.Chart3D.4---5
6# Implementing Syncfusion Blazor 3D Charts
7
8**NuGet:** `Syncfusion.Blazor.Chart3D` + `Syncfusion.Blazor.Themes`
9**Namespace:** `Syncfusion.Blazor.Chart3D`
10
11A comprehensive skill for implementing and customizing Syncfusion's Blazor 3D Chart component. The 3D Chart provides stunning three-dimensional visualization for column, bar, and stacked chart types with rich customization options including rotation, tilt, depth, and various axis types.
12
13## When to Use This Skill
14
15Use this skill when you need to:
16- Create three-dimensional charts in Blazor applications
17- Visualize data with 3D column, bar, or stacked chart types
18- Implement rotatable and tiltable 3D visualizations
19- Configure category, numeric, datetime, or logarithmic axes for 3D charts
20- Bind data from various sources (IEnumerable, remote data, dynamic objects)
21- Customize 3D chart appearance (colors, depth, wall color, rotation)
22- Add data labels, legends, and tooltips to 3D charts
23- Configure axis labels, tick lines, and grid lines
24- Enable selection, highlighting, and interaction in 3D charts
25- Create multi-pane 3D chart layouts
26- Export or print 3D charts
27- Ensure WCAG accessibility compliance for 3D visualizations
28- Troubleshoot 3D chart rendering or configuration issues
29
30## Component Overview
31
32**Package**: `Syncfusion.Blazor.Chart3D`
33**Component**: `SfChart3D`
34**Supported Chart Types**: Column, Bar, StackedColumn, StackedBar
35**Supported Axis Types**: Category, Numeric, DateTime, Logarithmic
36**Platforms**: Blazor Server, Blazor WebAssembly, Blazor Web App (.NET 8+)
37
38The 3D Chart component renders data in three-dimensional space with configurable rotation, tilt, and depth for enhanced visual impact. It supports all standard chart features including multiple series, rich tooltips, legends, data labels, and extensive customization options.
39
40## Documentation and Navigation Guide
41
42### API Reference
43📄 **Read:** [references/api-reference.md](references/api-reference.md)
44- Complete API reference for Syncfusion.Blazor.Chart3D namespace
45- SfChart3D component properties, methods, and events
46- All chart series, axis, legend, and tooltip classes
47- Data label, border, margin, and styling components
48- Event argument classes for all chart events
49- Enumerations (Chart3DSeriesType, ValueType, SelectionMode, etc.)
50- Interface definitions and base classes
51- Usage examples for common API scenarios
52- Links to detailed online API documentation
53
54### Events Reference
55📄 **Read:** [references/events.md](references/events.md)
56- Complete event reference for all 3D chart events
57- Lifecycle events (OnCreated, OnResized)
58- Rendering events (OnSeriesRender, OnPointRender, OnAxisLabelRender, etc.)
59- User interaction events (OnPointClick, OnLegendClick, OnSelectionChanged)
60- Mouse events (OnChartMouseMove, OnChartMouseClick, etc.)
61- Export and data events (OnExported, OnAxisRangeRendered)
62- Event argument properties and usage examples
63- Complete working examples with multiple events
64- Event handling best practices
65
66### Getting Started
67📄 **Read:** [references/getting-started.md](references/getting-started.md)
68- Complete installation and setup for Blazor Server, WebAssembly, and Web App
69- NuGet package installation (Syncfusion.Blazor.Chart3D)
70- Service registration and namespace imports
71- Script and theme configuration
72- Creating your first 3D chart with complete code example
73- Data source setup and basic binding
74- Render mode configuration for .NET 8+
75- Troubleshooting common setup issues
76
77### Chart Types
78📄 **Read:** [references/chart-types.md](references/chart-types.md)
79- Column charts - vertical 3D bars
80- Bar charts - horizontal 3D bars
81- Stacked Column charts - vertically stacked series
82- Stacked Bar charts - horizontally stacked series
83- Chart type configuration (Chart3DSeriesType enum)
84- Column/bar spacing and width customization
85- Grouped columns with GroupName property
86- Multiple series in single chart
87- Complete code examples for each type
88
89### Data Binding
90📄 **Read:** [references/data-binding.md](references/data-binding.md)
91- List binding with IEnumerable objects
92- ExpandoObject binding for dynamic data structures
93- DynamicObject binding for runtime data
94- Remote data binding with SfDataManager
95- DataSource, XName, YName property mapping
96- Complex data structures and nested properties
97- Dynamic data updates and refresh
98- Performance optimization tips
99
100### Axis Configuration
101📄 **Read:** [references/axes-configuration.md](references/axes-configuration.md)
102- Category Axis - for discrete categories
103- Numeric Axis - for continuous numeric data
104- DateTime Axis - for time-series data
105- Logarithmic Axis - for exponential scale data
106- ValueType property configuration
107- Axis range (Minimum, Maximum, Interval)
108- Axis titles and title rotation
109- Tick lines and grid lines customization
110- Multiple axes support
111- Complete examples for each axis type
112
113### Axis Labels
114📄 **Read:** [references/axis-labels.md](references/axis-labels.md)
115- Label formatting (LabelFormat property)
116- Custom label templates
117- Label rotation (LabelRotationAngle)
118- Label placement (BetweenTicks, OnTicks)
119- Label style customization (font, color, size)
120- Smart label collision handling
121- Custom label text with events
122- Edge label placement
123- Multilevel labels
124
125### Data Labels
126📄 **Read:** [references/data-labels.md](references/data-labels.md)
127- Enabling data labels on series
128- Label position configuration
129- Label template customization
130- Label styling (font, color, background)
131- Smart label positioning
132- Format customization
133- Conditional label visibility
134- Complete implementation examples
135
136### Legend
137📄 **Read:** [references/legend.md](references/legend.md)
138- Enabling and positioning legends
139- Legend alignment options
140- Series name customization
141- Legend styling and appearance
142- Interactive legend toggle
143- Custom legend items and icons
144- Legend templates
145- Complete configuration examples
146
147### Tooltip
148📄 **Read:** [references/tooltip.md](references/tooltip.md)
149- Enabling tooltips on hover
150- Tooltip format customization
151- Custom tooltip templates
152- Tooltip styling (border, fill, opacity)
153- Multi-point tooltip content
154- Shared tooltips across series
155- Complete implementation examples
156
157### Appearance and Styling
158📄 **Read:** [references/appearance.md](references/appearance.md)
159- Chart background and wall color
160- Series colors and color palettes
161- Theme integration (Material, Bootstrap, Fluent, Tailwind)
162- Custom CSS styling with CssClass
163- Opacity and transparency effects
164- Border styles and customization
165- Animation configuration
166- Visual effects and enhancements
167
168### Chart Dimensions and 3D Effects
169📄 **Read:** [references/chart-dimensions.md](references/chart-dimensions.md)
170- Chart size configuration (Width, Height)
171- Responsive sizing techniques
172- 3D rotation (EnableRotation, RotationAngle)
173- Tilt angle configuration (TiltAngle)
174- Depth configuration (Depth property)
175- Wall size customization
176- Perspective and viewing angle
177- Complete dimension examples
178
179### Selection and Highlighting
180📄 **Read:** [references/selection.md](references/selection.md)
181- Selection modes (Point, Series, Cluster)
182- Enabling selection functionality
183- Selection patterns and visual styles
184- Multi-selection support
185- Selection events and handling
186- Programmatic selection
187- Highlight modes and effects
188- Complete selection examples
189
190### Multiple Panes
191📄 **Read:** [references/multiple-panes.md](references/multiple-panes.md)
192- Creating multi-pane chart layouts
193- Row and column pane configuration
194- Assigning axes to specific panes
195- Distributing series across panes
196- Pane border and background customization
197- Synchronized pane behavior
198- Use cases for multiple panes
199- Complete multi-pane examples
200
201### Print and Export
202📄 **Read:** [references/print-export.md](references/print-export.md)
203- Print functionality
204- Export to image formats (PNG, JPEG, SVG)
205- Export to PDF documents
206- Export configuration options
207- Custom export settings
208- Print preview customization
209- Complete export examples
210
211### Accessibility
212📄 **Read:** [references/accessibility.md](references/accessibility.md)
213- WCAG 2.1 compliance overview
214- Keyboard navigation support
215- ARIA attributes and roles
216- Screen reader compatibility
217- Focus management
218- High contrast mode support
219- Color contrast requirements
220- Accessible design patterns
221- Testing accessibility
222
223## Quick Start Example
224
225```razor
226@page "/3d-chart-demo"
227@using Syncfusion.Blazor.Chart3D
228
229<SfChart3D Title="Sales Analysis"
230 WallColor="transparent"
231 EnableRotation="true"
232 RotationAngle="7"
233 TiltAngle="10"
234 Depth="100">
235
236 <Chart3DPrimaryXAxis Title="Month"
237 ValueType="Syncfusion.Blazor.Chart3D.ValueType.Category">
238 </Chart3DPrimaryXAxis>
239
240 <Chart3DPrimaryYAxis Title="Sales (in thousands)">
241 </Chart3DPrimaryYAxis>
242
243 <Chart3DLegendSettings Visible="true"></Chart3DLegendSettings>
244
245 <Chart3DTooltipSettings Enable="true"></Chart3DTooltipSettings>
246
247 <Chart3DSeriesCollection>
248 <Chart3DSeries DataSource="@SalesData"
249 Name="Sales"
250 XName="Month"
251 YName="SalesValue"
252 Type="Chart3DSeriesType.Column">
253 <Chart3DDataLabel Visible="true"></Chart3DDataLabel>
254 </Chart3DSeries>
255 </Chart3DSeriesCollection>
256</SfChart3D>
257
258@code {
259 public class SalesInfo
260 {
261 public string Month { get; set; }
262 public double SalesValue { get; set; }
263 }
264
265 public List<SalesInfo> SalesData = new List<SalesInfo>
266 {
267 new SalesInfo { Month = "Jan", SalesValue = 35 },
268 new SalesInfo { Month = "Feb", SalesValue = 28 },
269 new SalesInfo { Month = "Mar", SalesValue = 34 },
270 new SalesInfo { Month = "Apr", SalesValue = 32 },
271 new SalesInfo { Month = "May", SalesValue = 40 },
272 new SalesInfo { Month = "Jun", SalesValue = 32 },
273 new SalesInfo { Month = "Jul", SalesValue = 35 }
274 };
275}
276```
277
278## Common Patterns
279
280### Multiple Series Chart
281
282```razor
283@using Syncfusion.Blazor.Chart3D
284
285<SfChart3D WallColor="transparent" EnableRotation="true" RotationAngle="7" TiltAngle="10" Depth="100">
286 <Chart3DPrimaryXAxis ValueType="Syncfusion.Blazor.Chart3D.ValueType.Category">
287 </Chart3DPrimaryXAxis>
288
289 <Chart3DSeriesCollection>
290 <Chart3DSeries DataSource="@Data" Name="Series 1" XName="X" YName="Y1" Type="Chart3DSeriesType.Column">
291 </Chart3DSeries>
292 <Chart3DSeries DataSource="@Data" Name="Series 2" XName="X" YName="Y2" Type="Chart3DSeriesType.Column">
293 </Chart3DSeries>
294 </Chart3DSeriesCollection>
295</SfChart3D>
296
297@code {
298 public class ChartData
299 {
300 public string X { get; set; }
301 public double Y1 { get; set; }
302 public double Y2 { get; set; }
303 }
304
305 public List<ChartData> Data = new List<ChartData>
306 {
307 new ChartData { X = "Jan", Y1 = 35, Y2 = 28 },
308 new ChartData { X = "Feb", Y1 = 28, Y2 = 32 },
309 new ChartData { X = "Mar", Y1 = 34, Y2 = 30 },
310 new ChartData { X = "Apr", Y1 = 32, Y2 = 36 },
311 new ChartData { X = "May", Y1 = 40, Y2 = 38 },
312 new ChartData { X = "Jun", Y1 = 32, Y2 = 34 },
313 new ChartData { X = "Jul", Y1 = 35, Y2 = 37 }
314 };
315}
316```
317
318### Stacked Column Chart
319
320```razor
321@using Syncfusion.Blazor.Chart3D
322
323<SfChart3D WallColor="transparent" EnableRotation="true" RotationAngle="7" TiltAngle="10" Depth="100">
324 <Chart3DPrimaryXAxis ValueType="Syncfusion.Blazor.Chart3D.ValueType.Category">
325 </Chart3DPrimaryXAxis>
326
327 <Chart3DSeriesCollection>
328 <Chart3DSeries DataSource="@Data" XName="X" YName="Y1" Type="Chart3DSeriesType.StackingColumn">
329 </Chart3DSeries>
330 <Chart3DSeries DataSource="@Data" XName="X" YName="Y2" Type="Chart3DSeriesType.StackingColumn">
331 </Chart3DSeries>
332 </Chart3DSeriesCollection>
333</SfChart3D>
334
335@code {
336 public class StackingData
337 {
338 public string X { get; set; }
339 public double Y1 { get; set; }
340 public double Y2 { get; set; }
341 }
342
343 public List<StackingData> Data = new List<StackingData>
344 {
345 new StackingData { X = "Jan", Y1 = 20, Y2 = 15 },
346 new StackingData { X = "Feb", Y1 = 18, Y2 = 12 },
347 new StackingData { X = "Mar", Y1 = 25, Y2 = 14 },
348 new StackingData { X = "Apr", Y1 = 22, Y2 = 16 },
349 new StackingData { X = "May", Y1 = 28, Y2 = 18 },
350 new StackingData { X = "Jun", Y1 = 24, Y2 = 14 },
351 new StackingData { X = "Jul", Y1 = 26, Y2 = 17 }
352 };
353}
354```
355
356### DateTime Axis Chart
357
358```razor
359@using Syncfusion.Blazor.Chart3D
360
361<SfChart3D WallColor="transparent" EnableRotation="true" RotationAngle="7" TiltAngle="10" Depth="100">
362 <Chart3DPrimaryXAxis ValueType="Syncfusion.Blazor.Chart3D.ValueType.DateTime"
363 LabelFormat="yyyy">
364 </Chart3DPrimaryXAxis>
365
366 <Chart3DSeriesCollection>
367 <Chart3DSeries DataSource="@TimeSeriesData"
368 XName="Date"
369 YName="Value"
370 Type="Chart3DSeriesType.Column">
371 </Chart3DSeries>
372 </Chart3DSeriesCollection>
373</SfChart3D>
374
375@code {
376 public class TimeSeriesPoint
377 {
378 public DateTime Date { get; set; }
379 public double Value { get; set; }
380 }
381
382 public List<TimeSeriesPoint> TimeSeriesData = new List<TimeSeriesPoint>
383 {
384 new TimeSeriesPoint { Date = new DateTime(2018, 1, 1), Value = 120 },
385 new TimeSeriesPoint { Date = new DateTime(2019, 1, 1), Value = 135 },
386 new TimeSeriesPoint { Date = new DateTime(2020, 1, 1), Value = 150 },
387 new TimeSeriesPoint { Date = new DateTime(2021, 1, 1), Value = 170 },
388 new TimeSeriesPoint { Date = new DateTime(2022, 1, 1), Value = 160 },
389 new TimeSeriesPoint { Date = new DateTime(2023, 1, 1), Value = 185 },
390 new TimeSeriesPoint { Date = new DateTime(2024, 1, 1), Value = 200 }
391 };
392}
393```
394
395## Key Properties and APIs
396
397### SfChart3D Component
398**Main Properties**:
399- **Title**: Chart title text
400- **SubTitle**: Chart subtitle text
401- **Width/Height**: Chart dimensions (string with units or percentage)
402- **WallColor**: Background color of 3D walls
403- **EnableRotation**: Enable mouse rotation (bool)
404- **RotationAngle**: Initial rotation angle (0-360 degrees)
405- **TiltAngle**: Tilt angle for 3D perspective (0-360 degrees)
406- **Depth**: Depth of 3D rendering (numeric value)
407- **Theme**: Chart theme (Material, Bootstrap, Fluent, Tailwind, etc.)
408- **Background**: Background color for the chart
409- **BackgroundImage**: Background image URL
410
411**Methods**:
412- `ExportAsync(ExportType, string)` - Export chart to PNG, JPEG, SVG, or PDF
413- `PrintAsync()` - Print the chart
414- `Refresh()` - Refresh the chart rendering
415
416**Key Events**:
417- `OnCreated` - Chart3DCreatedEventArgs
418- `OnPointClick` - Chart3DPointClickEventArgs
419- `OnSeriesRender` - Chart3DSeriesRenderEventArgs
420- `OnPointRender` - Chart3DPointRenderEventArgs
421- `OnLegendClick` - Chart3DLegendClickEventArgs
422- `OnTooltipRender` - Chart3DTooltipRenderEventArgs
423- `OnSelectionChanged` - Chart3DSelectionChangedEventArgs
424- `OnAxisLabelRender` - Chart3DAxisLabelRenderEventArgs
425
426### Chart3DSeries Properties
427- **DataSource**: Data collection to bind
428- **XName**: Property name for X-axis values
429- **YName**: Property name for Y-axis values
430- **Name**: Series display name for legend
431- **Type**: Chart3DSeriesType enum (Column, Bar, StackingColumn, StackingBar)
432- **Fill**: Series color
433- **Opacity**: Series opacity (0-1)
434- **ColumnSpacing**: Space between columns (0-1)
435- **ColumnWidth**: Width of columns (0-1)
436- **GroupName**: Group name for grouped columns
437- **Visible**: Series visibility toggle
438
439**Child Components**:
440- `Chart3DDataLabel` - Data label configuration
441- `Chart3DEmptyPointSettings` - Empty point handling
442- `Chart3DSeriesBorder` - Border customization
443- `Chart3DAnimation` - Animation settings
444
445### Axis Components (Chart3DPrimaryXAxis, Chart3DPrimaryYAxis, Chart3DAxis)
446**Core Properties**:
447- **ValueType**: ValueType enum (Category, Numeric, DateTime, Double, DateTimeCategory, Logarithmic)
448- **Title**: Axis title text
449- **Minimum/Maximum**: Axis range bounds
450- **Interval**: Spacing between axis values
451- **LabelFormat**: Format string for labels (e.g., "yyyy", "C", "N2")
452- **LabelRotationAngle**: Rotation angle for labels
453- **EdgeLabelPlacement**: EdgeLabelPlacement enum (None, Shift, Hide)
454- **LabelPlacement**: LabelPlacement enum (OnTicks, BetweenTicks)
455- **RangePadding**: ChartRangePadding enum (Auto, None, Normal, Additional, Round)
456- **IsInversed**: Invert axis direction
457- **OpposedPosition**: Position axis on opposite side
458
459**Child Components**:
460- `Chart3DAxisLabelStyle` - Label font customization
461- `Chart3DAxisTitleStyle` - Title font customization
462- `Chart3DMajorGridLines` / `Chart3DMinorGridLines` - Grid line settings
463- `Chart3DMajorTickLines` / `Chart3DMinorTickLines` - Tick line settings
464
465### Legend Settings (Chart3DLegendSettings)
466- **Visible**: Show/hide legend
467- **Position**: LegendPosition enum (Top, Bottom, Left, Right, Custom)
468- **Alignment**: Alignment enum (Near, Center, Far)
469- **Height/Width**: Legend dimensions
470- **ShapeHeight/ShapeWidth**: Icon dimensions
471- **ToggleVisibility**: Enable series toggle on click
472- **Mode**: Chart3DLegendMode enum (Series, Point)
473
474**Child Components**:
475- `Chart3DLegendTextStyle` - Text font style
476- `Chart3DLegendBorder` - Border customization
477- `Chart3DLegendMargin` - Margin settings
478
479### Tooltip Settings (Chart3DTooltipSettings)
480- **Enable**: Enable tooltip
481- **Fill**: Background color
482- **Format**: Format string for tooltip content
483- **Shared**: Share tooltip across series
484- **EnableMarker**: Show marker in tooltip
485- **FadeOutDuration**: Fade out duration in ms
486- **FadeOutMode**: Chart3DFadeOutMode enum (Click, Move)
487- **Template**: RenderFragment for custom tooltip
488
489**Child Components**:
490- `Chart3DTooltipTextStyle` - Text font style
491- `Chart3DTooltipBorder` - Border customization
492
493### Selection Settings
494- **SelectionMode**: SelectionMode enum (None, Point, Series, Cluster)
495- **SelectionPattern**: SelectionPattern enum (None, Dots, DiagonalForward, Grid, Chessboard, etc.)
496- **HighlightMode**: HighlightMode enum (None, Point, Series, Cluster)
497
498Use `Chart3DSelectedDataIndexes` collection with `Chart3DSelectedDataIndex` to programmatically select points.
499
500## Common Use Cases
501
502### Business Dashboard Metrics
503Display KPIs, sales data, or performance metrics with enhanced 3D visualization for executive dashboards.
504
505### Financial Data Visualization
506Render stock prices, market trends, or financial comparisons with datetime axes and multiple series.
507
508### Scientific Data Presentation
509Visualize experimental data, measurements, or research findings with logarithmic or numeric axes.
510
511### Product Comparison
512Compare product features, ratings, or sales across categories with grouped or stacked columns.
513
514### Time-Series Analysis
515Display trends over time with datetime axes and smooth animations for data changes.
516
517### Regional Sales Reporting
518Show sales by region, country, or territory with category axes and colorful series.
519
520## Troubleshooting Tips
521
522**Chart not rendering:**
523- Verify `AddSyncfusionBlazor()` service registration in Program.cs
524- Check namespace imports in _Imports.razor
525- Ensure script reference is at end of body tag
526- Confirm render mode for .NET 8+ projects
527
528**Data not displaying:**
529- Check XName and YName match property names exactly (case-sensitive)
530- Verify DataSource is not null and contains data
531- Ensure ValueType matches data type (Category for strings, Numeric for numbers)
532
533**3D rotation not working:**
534- Set EnableRotation="true"
535- Ensure RotationAngle is between 0-360
536- Check if mouse events are blocked by overlays
537
538**Performance issues:**
539- Limit data points (3D rendering is resource-intensive)
540- Disable animations if not needed
541- Use appropriate chart type for data volume
542
543## Related Syncfusion Components
544
545- **Chart** - 2D chart component with 30+ chart types
546- **Stock Chart** - Financial charting with technical indicators
547- **Circular Gauge** - Radial gauge visualization
548- **Pivot Table** - Multi-dimensional data analysis
549- **TreeMap** - Hierarchical data visualization