code: public void removeMargins() {
          final Rect contentRect = computator.getContentRectMinusAllMargins();
          if (contentRect.height() == 0 || contentRect.width() == 0) {
              // View probably not yet measured, skip removing margins.
              return;
          }
          final float pxX = computator.computeRawDistanceX(maxRadius * bubbleScaleX);
          final float pxY = computator.computeRawDistanceY(maxRadius * bubbleScaleY);
          final float scaleX = computator.getMaximumViewport().width() / contentRect.width();
          final float scaleY = computator.getMaximumViewport().height() / contentRect.height();
          float dx = 0;
          float dy = 0;
          if (isBubbleScaledByX) {
              dy = (pxY - pxX) * scaleY * 0.75f;
          } else {
              dx = (pxX - pxY) * scaleX * 0.75f;
          }
  
          Viewport maxViewport = computator.getMaximumViewport();
          maxViewport.inset(dx, dy);
          Viewport currentViewport = computator.getCurrentViewport();
          currentViewport.inset(dx, dy);
          computator.setMaxViewport(maxViewport);
          computator.setCurrentViewport(currentViewport);
      }
docs: Removes empty spaces on sides of chart(left-right for landscape, top-bottom for portrait). *This method should be
  called after layout had been drawn*. Because most often chart is drawn as rectangle with proportions other than
  1:1 and bubbles have to be drawn as circles not ellipses I am unable to calculate correct margins based on chart
  data only. I need to know chart dimension to remove extra empty spaces, that bad because viewport depends a
  little on contentRectMinusAllMargins.