chart bug fix
This commit is contained in:
parent
627cc6a34e
commit
dafc089ae9
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user