我正在制作一个饼图,为此,我正在使用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%值的行选项吗?
答案 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上,您可以查看如何执行此操作。