anchor.diff:  
       final List<FlSpot> spots = [];
       spots.addAll(toBarData.spots.reversed.toList());
  -    final fromBarPath = _generateBarPath(viewSize, fromBarData);
  -    final barPath =
  -        _generateBarPath(viewSize, toBarData.copyWith(spots: spots), appendToPath: fromBarPath);
  +    final fromBarPath = _generateBarPath(
  +      viewSize,
  +      fromBarData,
  +      bar: fromBarData.spots,
  +    );
  +    final barPath = _generateBarPath(
  +      viewSize,
  +      toBarData.copyWith(spots: spots),
  +      appendToPath: fromBarPath,
  +      bar: toBarData.copyWith(spots: spots).spots,
  +    );
   
       _drawBetweenBar(canvas, viewSize, barPath, betweenBarsData);
     }
  
positive.code:     }
    }
  
    void _clipToBorder(ui.Canvas canvas, ui.Size size,) {
      final usableSize = getChartUsableDrawSize(size);
  
      double left = 0;
  
negative.code:   /// and we use isCurved to find out how we should generate it,
    /// If you want to concatenate paths together for creating an area between
    /// multiple bars for example, you can pass the appendToPath
    Path _generateBarPath(Size viewSize, LineChartBarData barData,
        {Path appendToPath, List<FlSpot> bar}) {
      viewSize = getChartUsableDrawSize(viewSize);
      final Path path = appendToPath ?? Path();
      final int size = bar.length;
  
      var temp = const Offset(0.0, 0.0);
  
      final double x = getPixelX(bar[0].x, viewSize);
      final double y = getPixelY(bar[0].y, viewSize);
      if (appendToPath == null) {
        path.moveTo(x, y);
      } else {
  