@Override
  public RectF getBarBounds(BarEntry e) {

    BarDataSet set = mData.getDataSetForEntry(e);

    if (set == null) return null;

    float barspace = set.getBarSpace();
    float y = e.getVal();
    float x = e.getXIndex();

    float spaceHalf = barspace / 2f;

    float top = x - 0.5f + spaceHalf;
    float bottom = x + 0.5f - spaceHalf;
    float left = y >= 0 ? y : 0;
    float right = y <= 0 ? y : 0;

    RectF bounds = new RectF(left, top, right, bottom);

    getTransformer(set.getAxisDependency()).rectValueToPixel(bounds);

    return bounds;
  }
  /**
   * Returns the bounding box of the specified Entry in the specified DataSet. Returns null if the
   * Entry could not be found in the charts data.
   *
   * @param e
   * @return
   */
  public RectF getBarBounds(final BarEntry e) {

    final BarDataSet set = this.mData.getDataSetForEntry(e);

    if (set == null) return null;

    final float barspace = set.getBarSpace();
    final float y = e.getVal();
    final float x = e.getXIndex();

    final float barWidth = 0.5f;

    final float spaceHalf = barspace / 2f;
    final float left = x - barWidth + spaceHalf;
    final float right = x + barWidth - spaceHalf;
    final float top = y >= 0 ? y : 0;
    final float bottom = y <= 0 ? y : 0;

    final RectF bounds = new RectF(left, top, right, bottom);

    this.getTransformer(set.getAxisDependency()).rectValueToPixel(bounds);

    return bounds;
  }