This commit is contained in:
Andrei Stoica 2024-11-14 12:54:19 -05:00
parent 1585c55660
commit 7e67415c08
2 changed files with 27 additions and 24 deletions

File diff suppressed because one or more lines are too long

View File

@ -32,15 +32,6 @@ class MyHomePage extends StatefulWidget {
} }
class _MyHomePageState extends State<MyHomePage> { class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// called again, and so nothing would appear to happen.
_counter++;
});
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
@ -54,23 +45,40 @@ class _MyHomePageState extends State<MyHomePage> {
child: MyBarChart(), child: MyBarChart(),
), ),
), ),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
); );
} }
} }
class MyBarChart extends StatelessWidget { class MyBarChart extends StatelessWidget {
MyBarChart({super.key});
final List<ChartData> data = ChartData.exampleData(); final List<ChartData> data = ChartData.exampleData();
final double _chartTextRotation = -1.57079633;
double get maxY => max( double get maxY => max(
data.map((d) => d.gpa).reduce((a, b) => max(a, b)), data.map((d) => d.gpa).reduce((a, b) => max(a, b)),
data.map((d) => d.year).reduce((a, b) => max(a, b)), data.map((d) => d.year).reduce((a, b) => max(a, b)),
).toDouble(); ).toDouble();
SideTitleWidget _getBottomSideTitleWidget(double y, TitleMeta meta) {
return SideTitleWidget(
angle: _chartTextRotation,
axisSide: meta.axisSide,
child: Center(child: Text(meta.formattedValue)),
);
}
SideTitleWidget _getLeftSideTitleWidget(double x, TitleMeta meta) {
return SideTitleWidget(
angle: _chartTextRotation,
axisSide: meta.axisSide,
child: Align(
alignment: Alignment.centerRight,
child: Text(data[x.floor()].name),
),
);
}
List<BarChartGroupData> _chartGroupData() { List<BarChartGroupData> _chartGroupData() {
return data return data
.map((d) => BarChartGroupData( .map((d) => BarChartGroupData(
@ -89,24 +97,18 @@ class MyBarChart extends StatelessWidget {
maxY: maxY + 0.5, maxY: maxY + 0.5,
titlesData: FlTitlesData( titlesData: FlTitlesData(
show: true, show: true,
topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), topTitles: const AxisTitles(sideTitles: SideTitles(showTitles: false)),
leftTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), leftTitles: const AxisTitles(sideTitles: SideTitles(showTitles: false)),
rightTitles: AxisTitles( rightTitles: AxisTitles(
sideTitles: SideTitles( sideTitles: SideTitles(
reservedSize: 40, reservedSize: 40,
showTitles: true, showTitles: true,
getTitlesWidget: (y, meta) => SideTitleWidget( getTitlesWidget: _getBottomSideTitleWidget)),
angle: -1.57079633,
child: Text(meta.formattedValue),
axisSide: meta.axisSide))),
bottomTitles: AxisTitles( bottomTitles: AxisTitles(
sideTitles: SideTitles( sideTitles: SideTitles(
reservedSize: 50, reservedSize: 50,
showTitles: true, showTitles: true,
getTitlesWidget: (x, meta) => SideTitleWidget( getTitlesWidget: _getLeftSideTitleWidget)),
angle: -1.57079633,
child: Text(data[x.floor()].name),
axisSide: meta.axisSide))),
), ),
); );
} }