code: private float processBubble(BubbleValue bubbleValue, PointF point) {
          final float rawX = computator.computeRawX(bubbleValue.getX());
          final float rawY = computator.computeRawY(bubbleValue.getY());
          float radius = (float) Math.sqrt(Math.abs(bubbleValue.getZ()) / Math.PI);
          float rawRadius;
          if (isBubbleScaledByX) {
              radius *= bubbleScaleX;
              rawRadius = computator.computeRawDistanceX(radius);
          } else {
              radius *= bubbleScaleY;
              rawRadius = computator.computeRawDistanceY(radius);
          }
  
          if (rawRadius < minRawRadius + touchAdditional) {
              rawRadius = minRawRadius + touchAdditional;
          }
  
          bubbleCenter.set(rawX, rawY);
          if (ValueShape.SQUARE.equals(bubbleValue.getShape())) {
              bubbleRect.set(rawX - rawRadius, rawY - rawRadius, rawX + rawRadius, rawY + rawRadius);
          }
          return rawRadius;
      }
docs: Calculate bubble radius and center x and y coordinates. Center x and x will be stored in point parameter, radius
  will be returned as float value.