anchor.diff:      // bar is passed in seperately from barData
       // because barData is the whole line
       // and bar is a piece of that line
  -    barList.forEach((bar) {
  -      final barPath = _generateBarPath(viewSize, barData, bar: bar);
  -
  -      final belowBarPath = _generateBelowBarPath(viewSize, barData, barPath, bar: bar);
  +    for (List<FlSpot> bar in barList) {
  +      final barPath = _generateBarPath(viewSize, barData, bar);
  +
  +      final belowBarPath = _generateBelowBarPath(viewSize, barData, barPath, bar);
         final completelyFillBelowBarPath =
  -          _generateBelowBarPath(viewSize, barData, barPath, bar: bar, fillCompletely: true);
  -      final aboveBarPath = _generateAboveBarPath(viewSize, barData, barPath, bar: bar);
  +          _generateBelowBarPath(viewSize, barData, barPath, bar, fillCompletely: true);
  +      final aboveBarPath = _generateAboveBarPath(viewSize, barData, barPath, bar);
         final completelyFillAboveBarPath =
  -          _generateAboveBarPath(viewSize, barData, barPath, bar: bar, fillCompletely: true);
  +          _generateAboveBarPath(viewSize, barData, barPath, bar, fillCompletely: true);
   
         _drawBelowBar(canvas, viewSize, belowBarPath, completelyFillAboveBarPath, barData);
         _drawAboveBar(canvas, viewSize, aboveBarPath, completelyFillBelowBarPath, barData);
         _drawBar(canvas, viewSize, barPath, barData);
  -    });
  +    }
     }
   
     void _drawBetweenBarsArea(
  
positive.code:   /// if cutOffY is provided by the [BarAreaData], it cut the area to the provided cutOffY value,
    /// if [fillCompletely] is true, the cutOffY will be ignored,
    /// and a completely filled path will return,
    Path _generateAboveBarPath(Size viewSize, LineChartBarData barData, Path barPath,
        {List<FlSpot> bar, bool fillCompletely = false}) {
      final aboveBarPath = Path.from(barPath);
  
      final chartViewSize = getChartUsableDrawSize(viewSize);
  
negative.code:     final fromBarPath = _generateBarPath(
        viewSize,
        fromBarData,
        fromBarData.spots,
      );
      final barPath = _generateBarPath(
        viewSize,
        toBarData.copyWith(spots: spots),
        toBarData.copyWith(spots: spots).spots,
        appendToPath: fromBarPath,
      );
  
      _drawBetweenBar(canvas, viewSize, barPath, betweenBarsData);
  