chart bug fix

This commit is contained in:
venbaittech 2025-02-14 09:30:01 +05:30
parent 627cc6a34e
commit dafc089ae9

View File

@ -1,6 +1,7 @@
import 'dart:math';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
// import 'package:syncfusion_flutter_charts/charts.dart';
@ -259,16 +260,24 @@ class ChartWidget extends StatelessWidget {
},
),
),
SizedBox(height: 20),
Padding(
padding:
const EdgeInsets.all(8.0), // Add spacing around indicators
SizedBox(height: 25),
Flexible(
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Container(
constraints: BoxConstraints(minHeight: 5), // Allow dynamic height
child: Padding(
padding: const EdgeInsets.only(left: 8.0 ,right: 8.0,bottom: 8.0,top:20.0),
child: Wrap(
spacing: 12,
runSpacing: 8,
children: generateIndicators(chartData, chartData['group_by']),
),
),
),
),
),
],
);
case 'fl_stacked_bar':
@ -912,19 +921,27 @@ class ChartWidget extends StatelessWidget {
return Padding(
padding: const EdgeInsets.only(top: 8.0),
child: Transform.rotate(
angle: -45 *
(3.1415927 / 180), // Rotating by -45 degrees
angle: -1.58,
// angle: -45 *
// (3.1415927 / 180), // Rotating by -45 degrees
alignment: Alignment.center,
child: Text(
xAxisData[value.toInt()],
style: TextStyle(fontSize: 12),
child: Center(
child: SizedBox(
width: 100,
child: Text(
xAxisData[value.toInt()],
style: const TextStyle(fontSize: 12),
softWrap: true,
maxLines: 2,
),
),
),
),
);
}
return Container();
},
reservedSize: 60,
reservedSize: 85,
),
),
topTitles: AxisTitles(
@ -979,6 +996,16 @@ class ChartWidget extends StatelessWidget {
} else if (chartData['dataset'] == 'labour_force') {
crop = item['ObsKey']['GENDER'];
cropType = item['ObsKey'][groupByKey];
} else if (chartData['dataset'] == 'clinics') {
if (kDebugMode) {
print('forclinics');
print('ObsKey: ${item['ObsKey']}');
// print('NR_TYPE: ${item['ObsKey']?['NR_TYPE']}');
}
crop = item['ObsKey']['MEASURE'];
cropType = item['ObsKey'][groupByKey];
} else {
crop = item['ObsKey']['CROP'];
cropType = item['ObsKey'][groupByKey];
@ -1169,7 +1196,52 @@ class ChartWidget extends StatelessWidget {
if (chartData['dataset'] == 'natural_reserves') {
crop = item['ObsKey']['NR_TYPE'];
cropType = item['ObsKey'][groupByKey];
} else {
}
else if(chartData['dataset'] == 'gdp')
{
print("ForGDP");
if (kDebugMode) {
print('ObsKey: ${item['ObsKey']}');
// print('NR_TYPE: ${item['ObsKey']?['NR_TYPE']}');
}
crop = item['ObsKey']['BOP_ITEM'];
cropType = item['ObsKey'][groupByKey];
} else if(chartData['dataset'] == 'air_transport')
{
print("Forair_transport");
if (kDebugMode) {
print('ObsKey: ${item['ObsKey']}');
// print('NR_TYPE: ${item['ObsKey']?['NR_TYPE']}');
}
crop = item['ObsKey']['MEASURE'];
cropType = item['ObsKey'][groupByKey];
} else if(chartData['dataset'] == 'import')
{
print("Forimport");
if (kDebugMode) {
print('ObsKey: ${item['ObsKey']}');
// print('NR_TYPE: ${item['ObsKey']?['NR_TYPE']}');
}
crop = item['ObsKey']['COUNTRY'];
cropType = item['ObsKey'][groupByKey];
}
else if(chartData['dataset'] == 'gdpq')
{
print("ForGDPq");
if (kDebugMode) {
print('ObsKey: ${item['ObsKey']}');
}
crop = item['ObsKey']['MEASURE'];
// crop = item['ObsKey']['TIME_PERIOD'];
cropType = item['ObsKey'][groupByKey];
}
else {
crop = item['ObsKey']['CROP'];
cropType = item['ObsKey'][groupByKey];
}
@ -1184,6 +1256,18 @@ class ChartWidget extends StatelessWidget {
int rotationTurns = 1;
print('Grouped Crops: $groupedCrops');
int numberOfBars = groupedCrops.length; // Number of grouped sets (bar groups)
double barHeight = 40.0; // Height per individual bar
double barSpacing = 30.0; // Space between bar sets
double minHeight = 300.0; // Minimum chart height
double maxHeight = 1000.0; // Maximum chart height
// Calculate total height dynamically
double chartHeight = ((numberOfBars * barHeight) + ((numberOfBars - 1) * barSpacing))
.clamp(minHeight, maxHeight);
return Column(children: [
Text(
chartData['chart_heading'] ?? '', // Chart title from data
@ -1196,6 +1280,13 @@ class ChartWidget extends StatelessWidget {
SizedBox(height: 10),
// Chart
Expanded(
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child:SizedBox(
width: 1000,
height: chartHeight,
child: BarChart(
BarChartData(
maxY: 400000,
@ -1347,7 +1438,9 @@ class ChartWidget extends StatelessWidget {
alignment: BarChartAlignment.spaceAround,
),
),
)
),
),
)),
// Expanded(
// child: Stack(
// children:[
@ -2013,7 +2106,12 @@ class ChartWidget extends StatelessWidget {
];
final barColor;
if (chartData['dataset'] == 'general_education' ||
chartData['dataset'] == 'higher_education') {
chartData['dataset'] == 'higher_education' ||
chartData['dataset'] == 'air_transport' ||
chartData['dataset'] == 'labour_force' ||
chartData['dataset'] == 'gdp'
) {
barColor = uniqueColorsForTwo[colorIndex % uniqueColorsForTwo.length];
colorIndex++;
} else {