|
|
|
@ -16,8 +16,8 @@ class LineChartCurved extends StatelessWidget {
|
|
|
|
|
List<double> yAxixs = List();
|
|
|
|
|
|
|
|
|
|
// DateFormat format = DateFormat("yyyy-MM-dd");
|
|
|
|
|
DateFormat yearFormat = DateFormat("yyyy/MMM");
|
|
|
|
|
DateFormat monthFormat = DateFormat("MMM");
|
|
|
|
|
DateFormat yearFormat = DateFormat("yyyy/MMM/dd");
|
|
|
|
|
DateFormat monthFormat = DateFormat("dd/MMM");
|
|
|
|
|
bool isDatesSameYear = true;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@ -96,6 +96,7 @@ class LineChartCurved extends StatelessWidget {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LineChartData sampleData1(context) {
|
|
|
|
|
return LineChartData(
|
|
|
|
|
lineTouchData: LineTouchData(
|
|
|
|
@ -162,31 +163,25 @@ class LineChartCurved extends StatelessWidget {
|
|
|
|
|
return '';
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
leftTitles: SideTitles(
|
|
|
|
|
showTitles: true,
|
|
|
|
|
getTextStyles: (context, value) {
|
|
|
|
|
return TextStyle(
|
|
|
|
|
leftTitles: SideTitles(
|
|
|
|
|
showTitles: true,
|
|
|
|
|
getTextStyles: (cxt, value) => const TextStyle(
|
|
|
|
|
color: Colors.black,
|
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
|
fontSize: 10,
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
getTitles: (value) {
|
|
|
|
|
// if (timeSeries.length < 10) {
|
|
|
|
|
// return '${value.toInt()}';
|
|
|
|
|
// } else {
|
|
|
|
|
// if (value == getMinY())
|
|
|
|
|
// return '${value.toInt()}';
|
|
|
|
|
// if (value == getMaxY())
|
|
|
|
|
),
|
|
|
|
|
interval:getInterval(),
|
|
|
|
|
|
|
|
|
|
// getTitles: (value) {
|
|
|
|
|
// if (value.toInt() == 0)
|
|
|
|
|
// return '${value.toInt()}';
|
|
|
|
|
// if (yAxixs.contains(value)) {
|
|
|
|
|
// else if (value.toInt() % horizontalInterval == 0)
|
|
|
|
|
// return '${value.toInt()}';
|
|
|
|
|
// }
|
|
|
|
|
// return '';
|
|
|
|
|
// }
|
|
|
|
|
return '${value.toInt()}';
|
|
|
|
|
},
|
|
|
|
|
margin: 12,
|
|
|
|
|
),
|
|
|
|
|
// else
|
|
|
|
|
// return '';
|
|
|
|
|
// },
|
|
|
|
|
margin: 12,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
borderData: FlBorderData(
|
|
|
|
|
show: true,
|
|
|
|
@ -208,12 +203,44 @@ class LineChartCurved extends StatelessWidget {
|
|
|
|
|
),
|
|
|
|
|
minX: 0,
|
|
|
|
|
maxX: (timeSeries.length - 1).toDouble(),
|
|
|
|
|
maxY: getMaxY() + 0.3,
|
|
|
|
|
minY: getMinY(),
|
|
|
|
|
maxY: getMaxY() + getInterval(),
|
|
|
|
|
minY: 0,
|
|
|
|
|
lineBarsData: getData(context),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// double getMaxY() {
|
|
|
|
|
// double max = 0;
|
|
|
|
|
// timeSeries.forEach((element) {
|
|
|
|
|
// double resultValueDouble = element.sales;
|
|
|
|
|
// if (resultValueDouble > max) max = resultValueDouble;
|
|
|
|
|
// });
|
|
|
|
|
//
|
|
|
|
|
// return max.roundToDouble();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// double getMinY() {
|
|
|
|
|
// double min = timeSeries[0].sales;
|
|
|
|
|
// timeSeries.forEach((element) {
|
|
|
|
|
// double resultValueDouble = element.sales;
|
|
|
|
|
// if (resultValueDouble < min) min = resultValueDouble;
|
|
|
|
|
// });
|
|
|
|
|
// int value = min.toInt();
|
|
|
|
|
//
|
|
|
|
|
// return value.toDouble();
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double getInterval(){
|
|
|
|
|
|
|
|
|
|
return getMaxY() - getMinY() <= 100
|
|
|
|
|
? 20
|
|
|
|
|
: getMaxY() - getMinY() <= 1000
|
|
|
|
|
? 100
|
|
|
|
|
: 200;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double getMaxY() {
|
|
|
|
|
double max = 0;
|
|
|
|
|
timeSeries.forEach((element) {
|
|
|
|
|