fusion_charts_flutter

Pub Version License GitHub Stars

Professional Flutter charting library with stunning visuals, smooth animations, and enterprise-grade performance.


✨ Features

  • πŸ“Š Chart Types: Line, Bar, Stacked Bar, Pie, and Donut charts
  • ⚑ High Performance: Optimized for 10,000+ data points with LTTB downsampling
  • 🎨 Professional Themes: Light and Dark themes out-of-the-box
  • 🎬 Smooth Animations: Configurable animations with cubic easing curves
  • πŸ“± Fully Responsive: Adapts to mobile, tablet, and desktop
  • 🎯 Interactive: Tooltips, crosshair, zoom, and pan gestures
  • πŸ”§ Highly Customizable: Themes, colors, markers, gradients, and more
  • 🌈 6 Color Palettes: Material, Professional, Vibrant, Pastel, Warm, Cool
  • πŸ—οΈ SOLID Architecture: Clean, maintainable, extensible code

πŸ“¦ Installation

Add to your pubspec.yaml:

dependencies:
  fusion_charts_flutter: ^1.0.0

Then run:

flutter pub get

πŸš€ Quick Start

Line Chart

import 'package:fusion_charts_flutter/fusion_charts_flutter.dart';

FusionLineChart(
  series: [
    FusionLineSeries(
      name: 'Revenue',
      dataPoints: [
        FusionDataPoint(0, 30),
        FusionDataPoint(1, 50),
        FusionDataPoint(2, 40),
        FusionDataPoint(3, 65),
        FusionDataPoint(4, 55),
        FusionDataPoint(5, 80),
      ],
      color: Colors.blue,
      lineWidth: 2.5,
      isCurved: true,
    ),
  ],
)

Bar Chart

FusionBarChart(
  series: [
    FusionBarSeries(
      name: 'Sales',
      dataPoints: [
        FusionDataPoint(0, 65, label: 'Q1'),
        FusionDataPoint(1, 78, label: 'Q2'),
        FusionDataPoint(2, 82, label: 'Q3'),
        FusionDataPoint(3, 95, label: 'Q4'),
      ],
      color: Colors.indigo,
      borderRadius: 8.0,
    ),
  ],
)

Stacked Bar Chart

FusionStackedBarChart(
  series: [
    FusionStackedBarSeries(
      name: 'Product A',
      dataPoints: [
        FusionDataPoint(0, 30),
        FusionDataPoint(1, 40),
        FusionDataPoint(2, 35),
      ],
      color: Colors.blue,
    ),
    FusionStackedBarSeries(
      name: 'Product B',
      dataPoints: [
        FusionDataPoint(0, 20),
        FusionDataPoint(1, 25),
        FusionDataPoint(2, 30),
      ],
      color: Colors.green,
    ),
  ],
)

Pie / Donut Chart

FusionPieChart(
  series: FusionPieSeries(
    dataPoints: [
      FusionPieDataPoint(35, label: 'Sales', color: Colors.indigo),
      FusionPieDataPoint(25, label: 'Marketing', color: Colors.green),
      FusionPieDataPoint(20, label: 'Engineering', color: Colors.orange),
      FusionPieDataPoint(20, label: 'Other', color: Colors.grey),
    ],
  ),
  config: const FusionPieChartConfiguration(
    innerRadiusPercent: 0.5, // Set to 0 for pie, >0 for donut
    showCenterLabel: true,
    centerLabelText: '\$2.4M',
    centerSubLabelText: 'Revenue',
  ),
)

🎨 Theming

// Light theme (default)
FusionLineChart(
  series: [...],
  config: const FusionChartConfiguration(
    theme: FusionLightTheme(),
  ),
)

// Dark theme
FusionLineChart(
  series: [...],
  config: const FusionChartConfiguration(
    theme: FusionDarkTheme(),
  ),
)

🎯 Interactivity

FusionLineChart(
  series: [...],
  config: const FusionChartConfiguration(
    enableTooltip: true,
    enableCrosshair: true,
    enableZoom: true,
    enablePanning: true,
  ),
)

⚑ Performance

For large datasets, the library automatically uses LTTB (Largest Triangle Three Buckets) downsampling to maintain smooth 60fps rendering:

// Works smoothly with 10,000+ data points
final largeDataset = List.generate(
  10000,
  (i) => FusionDataPoint(i.toDouble(), sin(i * 0.1) * 100),
);

FusionLineChart(
  series: [
    FusionLineSeries(
      name: 'Large Dataset',
      dataPoints: largeDataset,
      color: Colors.purple,
    ),
  ],
)

πŸ—ΊοΈ Roadmap

Future releases will include:

  • πŸ”΅ Scatter & Bubble charts
  • πŸ“ˆ Candlestick/OHLC charts
  • 🎯 Radar/Spider charts
  • πŸ“Š Multiple Y-axes
  • πŸ–ΌοΈ Export to image (PNG, SVG)
  • β™Ώ Enhanced accessibility (Semantics)

πŸ“„ License

MIT License - see LICENSE for details.


🀝 Contributing

Contributions are welcome! Please read our contributing guidelines before submitting a PR.


πŸ“¬ Support

Libraries

fusion_charts_flutter
Fusion Charts Flutter - Professional Flutter Charting Library