anchor.diff:          break;
   
         case BarChartAlignment.spaceEvenly:
  -        final double sumWidth = barGroups.map((group) => group.width).reduce((a, b) => a + b);
  -        final double spaceAvailable = drawSize.width - sumWidth;
  -        final double eachSpace = spaceAvailable / (barGroups.length + 1);
  -
  -        double tempX = 0;
  +        final sumWidth = barGroups.map((group) => group.width).reduce((a, b) => a + b);
  +        final spaceAvailable = drawSize.width - sumWidth;
  +        final eachSpace = spaceAvailable / (barGroups.length + 1);
  +
  +        var tempX = 0.0;
           barGroups.asMap().forEach((i, group) {
             tempX += eachSpace;
             tempX += group.width / 2;
  
positive.code:         break;
  
        case BarChartAlignment.end:
          double tempX = 0;
          for (int i = barGroups.length - 1; i >= 0; i--) {
            final group = barGroups[i];
            groupsX[i] = (leftTextsSpace + drawSize.width) - tempX - group.width / 2;
            tempX += group.width;
  
negative.code:     // Bottom titles
      final bottomTitles = targetData.titlesData.bottomTitles;
      if (bottomTitles.showTitles) {
        for (var index = 0; index < groupBarsPosition.length; index++) {
          final groupBarPos = groupBarsPosition[index];
  
          final xValue = data.barGroups[index].x.toDouble();
          final text = bottomTitles.getTitles(xValue);
          // ignore: omit_local_variable_types
          final span = TextSpan(style: bottomTitles.getTextStyles(xValue), text: text);
          final tp = TextPainter(
              text: span,
              textAlign: TextAlign.center,
              textDirection: TextDirection.ltr,
              textScaleFactor: textScale);
          tp.layout();
          var x = groupBarPos.groupX;
          final y = drawSize.height + getTopOffsetDrawSize() + bottomTitles.margin;
  
          x -= tp.width / 2;
          canvasWrapper.save();
  