flutter_heyteacher_charts 3.0.2+123
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
ThemeViewModelfromflutter_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.