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