flutter_heyteacher_charts 3.0.2+123 copy "flutter_heyteacher_charts: ^3.0.2+123" to clipboard
flutter_heyteacher_charts: ^3.0.2+123 copied to clipboard

A high-level Flutter charting library built on top of fl_chart

flutter_heyteacher_charts #

A high-level Flutter charting library built on top of fl_chart. This package provides simplified "View" components specifically designed for the Flutter HeyTeacher ecosystem, offering consistent styling, theme integration, and easy-to-use APIs for common data visualizations.

Features #

  • Line Charts: Support for multiple data series, curved or stepped lines, area fills, and range annotations.
  • Bar Charts: Configurable bar groups, support for horizontal/vertical orientation, and optimized for small screens.
  • Scatter Charts: Simple scatter plots for individual data points.
  • Candlestick Charts: Specialized charts for financial or interval-based data (High, Low, Open, Close).
  • Theme Integration: Built-in support for ThemeViewModel from flutter_heyteacher_views.
  • Rich Annotations: Easily add horizontal and vertical range highlights or extra reference lines.

Getting started #

Add the dependency to your pubspec.yaml:

dependencies:
  flutter_heyteacher_charts:

Usage #

Line Chart #

The LineChartView is ideal for temporal or continuous data.

LineChartView(
  title: const Text('Performance Over Time'),
  chartDataLists: [
    [
      ChartDataItem(x: 0, y: 10),
      ChartDataItem(x: 1, y: 15),
      ChartDataItem(x: 2, y: 12),
    ],
  ],
  formatterAxisX: (x) => '$x min',
  formatterColorAxisX: (x) => Colors.orange,
  formatterAxisY: (index, y) => '$y',
  formatterColorAxisY: (y) => Colors.blue,
  formatterColorLine: (index, y) => Colors.blue,
)

Bar Chart #

Use BarChartView for categorical comparisons or interval data.

BarChartView(
  title: const Text('Weekly Distribution'),
  smallScreen: true,
  barChartDataList: [
    BarChartDataItem(x: 0, y: 5, yColor: Colors.red),
    BarChartDataItem(x: 1, y: 12, yColor: Colors.green),
    BarChartDataItem(x: 2, y: 8, fromY: 2, yColor: Colors.blue), // Floating bar
  ],
  formatterAxisX: (x) => 'Day $x',
  formatterColorAxisX: (x) => Colors.grey,
  formatterAxisY: (index, y) => '$y units',
  formatterColorAxisY: (y) => Colors.black,
  formatterY: (index, item) => '${item.y}',
)

Scatter Chart #

Perfect for visualizing clusters or quadrant analysis.

ScatterChartView(
  title: const Text('Quadrant Analysis'),
  scatterChartDataList: [
    ChartDataItem(x: 1.2, y: 4.5, yColor: Colors.purple),
    ChartDataItem(x: 3.4, y: 2.1, yColor: Colors.orange),
  ],
  formatterAxisX: (x) => x.toStringAsFixed(1),
  formatterColorAxisX: (x) => Colors.green,
  formatterAxisY: (index, y) => y.toString(),
  formatterColorAxisY: (y) => Colors.yellow,
)

Candlestick Chart #

Useful for displaying price movements or ranges.

CandlestickChartView(
  title: const Text('Range Data'),
  candlestickChartDataList: [[
    CandlestickDataItem(
      x: 1,
      yPrec: 10, // Open
      y: 15,     // Close
      yHigh: 20, // High
      yLow: 5,   // Low
    ),
  ]],
  formatterAxisX: (x) => 'Slot $x',
  formatterColorAxisX: (x) => Colors.red,
  formatterAxisY: (index, y) => '$y',
  formatterColorAxisY: (y) => Colors.green,
)

Additional Documentation #

For more complex implementations, including range annotations and custom tooltips, refer to the TrackDetailScreen implementation in the bike tracking app, which utilizes almost every chart type provided by this package.

For a live demonstration of all features, run the provided example app.

0
likes
160
points
12
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

A high-level Flutter charting library built on top of fl_chart

Repository
View/report issues

Topics

#flutter #chart #fl-chart #flutter-charts

Funding

Consider supporting this project:

liberapay.com

License

BSD-3-Clause (license)

Dependencies

collection, equatable, fl_chart, flutter, flutter_heyteacher_locale, flutter_heyteacher_views

More

Packages that depend on flutter_heyteacher_charts