anchor.diff:      return null;
     }
   
  -  List<RadarDataSetsPosition> _calculateDataSetsPosition(Size viewSize) {
  +  List<RadarDataSetsPosition> _calculateDataSetsPosition(
  +    Size viewSize,
  +    PaintHolder<RadarChartData> holder,
  +  ) {
  +    final data = holder.data;
       final centerX = _radarCenterX(viewSize);
       final centerY = _radarCenterY(viewSize);
       final radius = _radarRadius(viewSize);
  
positive.code:     _titleTextPaint
        ..textAlign = TextAlign.center
        ..textDirection = TextDirection.ltr
        ..textScaleFactor = textScale;
  
      for (var index = 0; index < data.titleCount; index++) {
        final title = data.getTitle!(index);
  
negative.code:   /// [textScale] used for scaling texts inside the chart,
    /// parent can use [MediaQuery.textScaleFactor] to respect
    /// the system's font size.
    RadarChartPainter() : super() {
      _backgroundPaint = Paint()
        ..style = PaintingStyle.fill
        ..isAntiAlias = true;
  
      _borderPaint = Paint()..style = PaintingStyle.stroke;
  
      _gridPaint = Paint()..style = PaintingStyle.stroke;
  
      _tickPaint = Paint()..style = PaintingStyle.stroke;
  
      _graphPaint = Paint();
      _graphBorderPaint = Paint();
      _graphPointPaint = Paint();
      _ticksTextPaint = TextPainter();
      _titleTextPaint = TextPainter();
    }
  
    /// Paints [RadarChartData] into the provided canvas.
    @override
    void paint(Canvas canvas, Size size, PaintHolder<RadarChartData> holder) {
      super.paint(canvas, size, holder);
      final data = holder.data;
  
      if (data.dataSets.isEmpty) {
        return;
  