anchor.diff:            final nearestGroup = targetData.barGroups[i];
             final nearestBarRod = nearestGroup.barRods[j];
             final nearestSpot = FlSpot(nearestGroup.x.toDouble(), nearestBarRod.y);
  -          final nearestSpotPos = Offset(barX, getPixelY(nearestSpot.y, chartViewSize));
  +          final nearestSpotPos = Offset(barX, getPixelY(nearestSpot.y, chartViewSize, holder));
   
             var touchedStackIndex = -1;
             BarChartRodStackItem? touchedStack;
             for (var stackIndex = 0; stackIndex < nearestBarRod.rodStackItems.length; stackIndex++) {
               final stackItem = nearestBarRod.rodStackItems[stackIndex];
  -            final fromPixel = getPixelY(stackItem.fromY, chartViewSize);
  -            final toPixel = getPixelY(stackItem.toY, chartViewSize);
  +            final fromPixel = getPixelY(stackItem.fromY, chartViewSize, holder);
  +            final toPixel = getPixelY(stackItem.toY, chartViewSize, holder);
               if (touchedPoint.dy <= fromPixel && touchedPoint.dy >= toPixel) {
                 touchedStackIndex = stackIndex;
                 touchedStack = stackItem;
  
positive.code:     }
    }
  
    void _drawTitles(CanvasWrapper canvasWrapper, List<_GroupBarsPosition> groupBarsPosition) {
      if (!targetData.titlesData.show) {
        return;
      }
      final viewSize = canvasWrapper.size;
      final drawSize = getChartUsableDrawSize(viewSize);
  
      // Left Titles
      final leftTitles = targetData.titlesData.leftTitles;
  
negative.code:   /// maybe we want to show both left and right titles,
    /// then just the left titles will effect on this function.
    @override
    double getLeftOffsetDrawSize(PaintHolder<BarChartData> holder) {
      final data = holder.data;
      var sum = super.getLeftOffsetDrawSize(holder);
  
      final leftTitles = data.titlesData.leftTitles;
      if (data.titlesData.show && leftTitles.showTitles) {
  