syncfusion-flutter-pyramid-charts
Implementing Pyramid Charts (SfPyramidChart)
The Syncfusion Flutter SfPyramidChart widget renders high-performance pyramid charts natively in Dart. It visualizes proportional or hierarchical data as stacked triangular segments, making it ideal for sales funnels, population distribution, organizational hierarchy, and process stage analysis.
When to Use This Skill
- User wants to render a pyramid chart in a Flutter application
- User references
SfPyramidChart,PyramidSeries, orsyncfusion_flutter_charts - User needs to customize pyramid segments (color, gap, explode, mode)
- User wants to add labels, legend, tooltip, or selection to a pyramid chart
- User needs to export a pyramid chart as PNG or PDF
- User asks about RTL support or accessibility in Syncfusion Flutter charts
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Package installation and pubspec.yaml setup
- Import statement and basic widget initialization
- Binding data source with xValueMapper / yValueMapper
- Adding title, data labels, legend, and tooltip
- Minimal runnable example
Pyramid Customization
📄 Read: references/pyramid-customization.md
- PyramidMode: linear (height-based) vs surface (area-based)
- Changing pyramid size with
heightandwidth(percentage strings) - Gap between segments using
gapRatio(0 to 1) - Exploding segments:
explode,explodeIndex,explodeOffset - Palette colors, border color/width, opacity, pointColorMapper
Series Customization
📄 Read: references/series-customization.md
- Animation:
animationDurationandanimationDelay - Handling null/empty data points with
EmptyPointSettings - Empty point modes: gap, zero, drop, average
- Color mapping per data point via
pointColorMapper
Data Labels
📄 Read: references/data-labels.md
- Enabling data labels with
DataLabelSettings(isVisible: true) - Inside vs outside positioning (
labelPosition) - Connector line settings (type, color, length)
- Custom label templates via
builder - Smart labels and
labelIntersectAction - Overflow mode and hiding zero-value labels
Legend and Tooltip
📄 Read: references/legend-and-tooltip.md
- Enabling and positioning the legend
- Legend title, item templates, overflow behavior
- Toggle series visibility via legend tap
- Enabling tooltip with
TooltipBehavior - Tooltip formatting, custom templates, activation mode
Selection and Callbacks
📄 Read: references/selection-and-callbacks.md
- Enabling segment selection with
SelectionBehavior - Multi-selection, toggle selection, initial selection
- Programmatic selection via
selectDataPoints - Key callbacks:
onPointTap,onSelectionChanged,onTooltipRender onRendererCreatedfor dynamic data updates viaPyramidSeriesController
Appearance, Export, and RTL
📄 Read: references/appearance-export-rtl.md
- Chart title customization (
ChartTitle) - Chart sizing, margin, background color/image
- Exporting chart as PNG image or PDF document
- RTL support using
Directionalitywidget or locale - Accessibility: contrast, font scaling, tap targets
pixelToPointmethod for coordinate conversion
Quick Start Example
import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_charts/charts.dart';
class PyramidChartExample extends StatelessWidget {
final List<ChartData> chartData = [
ChartData('Enterprise', 654),
ChartData('Mid-Market', 575),
ChartData('SMB', 446),
ChartData('Startup', 341),
ChartData('Individual', 160),
];
Widget build(BuildContext context) {
return Scaffold(
body: SfPyramidChart(
title: ChartTitle(text: 'Sales Pipeline'),
legend: Legend(isVisible: true),
series: PyramidSeries<ChartData, String>(
dataSource: chartData,
xValueMapper: (ChartData data, _) => data.x,
yValueMapper: (ChartData data, _) => data.y,
dataLabelSettings: DataLabelSettings(isVisible: true),
),
),
);
}
}
class ChartData {
ChartData(this.x, this.y);
final String x;
final double y;
}
Common Patterns
Exploding a specific segment
PyramidSeries<ChartData, String>(
explode: true,
explodeIndex: 0, // Index of segment to highlight
explodeOffset: '5%', // Distance the segment moves out
dataSource: chartData,
xValueMapper: (ChartData data, _) => data.x,
yValueMapper: (ChartData data, _) => data.y,
)
Surface mode (area proportional)
PyramidSeries<ChartData, String>(
pyramidMode: PyramidMode.surface, // Area ∝ Y value (vs linear: height ∝ Y)
dataSource: chartData,
xValueMapper: (ChartData data, _) => data.x,
yValueMapper: (ChartData data, _) => data.y,
)
Tooltip + selection together
// In initState:
_tooltipBehavior = TooltipBehavior(enable: true);
_selectionBehavior = SelectionBehavior(enable: true);
// In widget:
SfPyramidChart(
tooltipBehavior: _tooltipBehavior,
series: PyramidSeries<ChartData, String>(
selectionBehavior: _selectionBehavior,
dataSource: chartData,
xValueMapper: (ChartData data, _) => data.x,
yValueMapper: (ChartData data, _) => data.y,
),
)
Key Properties
| Property | Type | Description |
|---|---|---|
series |
PyramidSeries |
The pyramid data series (one per chart) |
title |
ChartTitle |
Chart title widget |
legend |
Legend |
Legend configuration |
tooltipBehavior |
TooltipBehavior |
Tooltip enable/customize |
enableMultiSelection |
bool |
Allow selecting multiple segments |
palette |
List<Color> |
Custom segment colors |
pyramidMode |
PyramidMode |
linear or surface sizing |
gapRatio |
double |
Gap between segments (0–1) |
explode |
bool |
Enable segment explode on tap |
More from syncfusion/flutter-ui-components-skills
syncfusion-flutter-calendar-datepicker
Implements Syncfusion Flutter Calendar (SfCalendar) and Date Range Picker (SfDateRangePicker) widgets for date and scheduling UIs in Flutter apps. Use when building appointment calendars, booking systems, date range selectors, or event scheduling interfaces. This skill covers calendar views, recurring events, date navigation, localization, callbacks, and customization.
29syncfusion-flutter-circular-charts
Implements Syncfusion Flutter Circular Charts (SfCircularChart) for pie, doughnut, and radial bar data visualizations in Flutter. Use when working with PieSeries, DoughnutSeries, or RadialBarSeries using the syncfusion_flutter_charts package. This skill covers chart setup, data labels, legends, tooltips, selection, annotations, gradients, animation, accessibility, and chart export.
27syncfusion-flutter-cartesian-charts
Implements Syncfusion Flutter Cartesian Charts (SfCartesianChart) for a wide range of 2D chart types in Flutter apps. Use when working with line, column, bar, area, spline, scatter, bubble, financial, stacked, or histogram charts. This skill covers axis types (NumericAxis, CategoryAxis, DateTimeAxis), zoom and pan, tooltip, trackball, legend, annotations, technical indicators, trendlines, and chart export.
27syncfusion-flutter-chat
Implements Syncfusion Flutter Chat (SfChat) and AI AssistView (SfAIAssistView) widgets for conversational interfaces in Flutter apps. Use when building chat UIs, AI chatbot interfaces, or messaging screens with support for message bubbles, composers, and action buttons. This skill covers conversation area customization, placeholder screens, theming, RTL support, and AI assistant integration.
26syncfusion-flutter-barcode-generator
Implements Syncfusion Flutter Barcode Generator (SfBarcodeGenerator) for generating 1D and 2D barcodes in Flutter apps. Use when working with QR codes, Data Matrix, Code128, EAN, UPC, or other machine-readable barcode formats. This skill covers barcode types, customization, sizing, text display, and integration into product labels, ticketing, or inventory systems.
26syncfusion-flutter-gauges
Implements Syncfusion Flutter Gauge widgets (SfLinearGauge, SfRadialGauge) for data visualization and measurement displays in Flutter apps. Use when building speedometers, progress indicators, KPI dashboards, or radial/linear measurement UIs. This skill covers gauge axes, pointers, ranges, annotations, and customization for both linear and radial gauge types.
26