mcpField
S
syncfusion-flutter-pyramid-charts

syncfusion-flutter-pyramid-charts

github.com/syncfusionData & databases251 installsUpdated 16w ago
Repository

About syncfusion-flutter-pyramid-charts

A skill for Flutter developers implementing Syncfusion SfPyramidChart to visualize proportional or hierarchical data as pyramid segments. It covers segment customization, labels, legends, tooltips, selection, and chart export.

Key features

  1. 01Render segments in linear or surface mode
  2. 02Set chart size, gaps, and segment explosion
  3. 03Customize labels, connectors, and legends
  4. 04Configure tooltips, selection, and callbacks
  5. 05Export charts as PNG or PDF

Use cases

  1. 01Analyze stages in a sales funnel
  2. 02Show population proportions
  3. 03Visualize organizational hierarchy
  4. 04Export pyramid charts for documents

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/syncfusion/flutter-ui-components-skills --skill syncfusion-flutter-pyramid-charts

After installing, type/syncfusion-flutter-pyramid-chartsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
appearance-export-rtl.md
data-labels.md
getting-started.md
legend-and-tooltip.md
pyramid-customization.md
selection-and-callbacks.md
series-customization.md

Details

From the project README

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, or syncfusion_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 height and width (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: animationDuration and animationDelay
  • 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
  • onRendererCreated for dynamic data updates via PyramidSeriesController
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 Directionality widget or locale
  • Accessibility: contrast, font scaling, tap targets
  • pixelToPoint method 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),
  ];

  @override
  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

PropertyTypeDescription
seriesPyramidSeriesThe pyramid data series (one per chart)
titleChartTitleChart title widget
legendLegendLegend configuration
tooltipBehaviorTooltipBehaviorTooltip enable/customize
enableMultiSelectionboolAllow selecting multiple segments
paletteList<Color>Custom segment colors
pyramidModePyramidModelinear or surface sizing
gapRatiodoubleGap between segments (0–1)
explodeboolEnable segment explode on tap

Comments

Markdown supported