如果饼图中的值为0%,如何删除行

时间:2017-07-21 06:18:20

标签: android charts pie-chart mpandroidchart overlapping

我正在制作一个饼图,为此,我正在使用MPAndroidChart库,对于任何数据或多个数据,值可能包含0%,而我正在使用饼图显示值setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE)。 我不想在饼图中显示0%的值,我得到了一个解决方案,使用格式化的值。

public class CustomPercentFormatter implements IValueFormatter {    

    private DecimalFormat mFormat;

    public CustomPercentFormatter() {
        mFormat = new DecimalFormat("###,###,##0.0");
    }

    public CustomPercentFormatter(DecimalFormat format) {
        this.mFormat = format;
    }

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {

        if (value == 0.0f)
            return "";

        return mFormat.format(value) + " %";
    }
}

但是,如果我使用的是行选项,那么该行显示为0%值并重叠为多个0%值,那么任何人都可以帮助我删除0%值的行选项吗?

image

2 个答案:

答案 0 :(得分:1)

我在 If you get a build error like "Warning: Native component for 'RCTFBLikeView' does not exist," verify that libRCTFBSDK.a shows up in the Link Binary with Libraries section of your build target's Build Phases. 类中更改了 drawValues 方法。

如果值为0,则不显示行。

只提出一个条件:

PieChartRenderer

而不是代码:

if (entry.getValue() != 0.0) {
    if (dataSet.getValueLineColor() != ColorTemplate.COLOR_NONE) {
        c.drawLine(pt0x, pt0y, pt1x, pt1y, mValueLinePaint);
        c.drawLine(pt1x, pt1y, pt2x, pt2y, mValueLinePaint);
    }
}

答案 1 :(得分:1)

如果您不想绘制这些线条,则必须将该线条的颜色设置为ColorTemplate.COLOR_NONE

我没有足够的原始代码来指出究竟要做什么,但在示例https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartExample/src/com/xxmassdeveloper/mpchartexample/PieChartActivity.java#L199上,您可以查看如何执行此操作。