getYLineMaxAndMinVal method

Point<double> getYLineMaxAndMinVal(
  1. List<LineChartPoint> points
)

获取在Y轴上最大和最小值(max,min)

Implementation

Point<double> getYLineMaxAndMinVal(List<LineChartPoint> points) {
  LineChartPoint maxY =
      points.reduce((cur, next) => cur.yValue > next.yValue ? cur : next);
  LineChartPoint minY =
      points.reduce((cur, next) => cur.yValue < next.yValue ? cur : next);
  //向上扩大
  double max1 = (maxY.yValue / 10).ceil() * 10;
  //向下扩大
  double min1 = (minY.yValue / 10).floor() * 10;
  double duration = 0.0;
  if (max1 - min1 == 0) {
    duration = 10;
  } else {
    duration = (max1 - min1) / (xLineNums - 1);
  }

  if (minY.yValue > 10) {
    int a = duration ~/ 10;
    duration = (a + 1) * 10;
  }
  var yLineStartN = max1 - duration * (xLineNums - 1).toInt();
  if (max1 - yLineStartN == 0) {
    max1 = 6;
    yLineStartN = 0;
  }
  return Point(max1, yLineStartN);
}