protected void drawDataSet(Canvas c, PieDataSet dataSet) {

    float angle = mChart.getRotationAngle();

    List<Entry> entries = dataSet.getYVals();
    float[] drawAngles = mChart.getDrawAngles();

    for (int j = 0; j < entries.size(); j++) {

      float newangle = drawAngles[j];
      float sliceSpace = dataSet.getSliceSpace();

      Entry e = entries.get(j);

      // draw only if the value is greater than zero
      if ((Math.abs(e.getVal()) > 0.000001)) {

        if (!mChart.needsHighlight(e.getXIndex(), mChart.getData().getIndexOfDataSet(dataSet))) {

          mRenderPaint.setColor(dataSet.getColor(j));
          mBitmapCanvas.drawArc(
              mChart.getCircleBox(),
              (angle + sliceSpace / 2f) * mAnimator.getPhaseY(),
              (newangle - sliceSpace / 2f) * mAnimator.getPhaseY(),
              true,
              mRenderPaint);
        }
      }

      angle += newangle * mAnimator.getPhaseX();
    }
  }