Android 如果饼图中的值为0%,如何删除行
我正在制作一个饼图,为此,我正在使用库,对于任何数据或多个数据,值可能包含0%,并且我正在使用Android 如果饼图中的值为0%,如何删除行,android,charts,pie-chart,mpandroidchart,overlapping,Android,Charts,Pie Chart,Mpandroidchart,Overlapping,我正在制作一个饼图,为此,我正在使用库,对于任何数据或多个数据,值可能包含0%,并且我正在使用setYValuePosition(PieDataSet.ValuePosition.outside\u SLICE)显示饼图之外的值。 我不想在饼图中显示0%的值,我有一个解决方案,可以使用值格式化 public class CustomPercentFormatter implements IValueFormatter { private DecimalFormat mForma
setYValuePosition(PieDataSet.ValuePosition.outside\u 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%值的“行”选项吗
我更改了
类中的方法drawValues
如果值为0,则不显示行
只需提出一个条件:
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);
}
}
而不是以下代码:
if (dataSet.getValueLineColor() != ColorTemplate.COLOR_NONE) {
c.drawLine(pt0x, pt0y, pt1x, pt1y, mValueLinePaint);
c.drawLine(pt1x, pt1y, pt2x, pt2y, mValueLinePaint);
}
如果不希望绘制这些线条,则必须将该线条的颜色设置为ColorTemplate.color\u NONE
我没有足够的原始代码来指出具体要做什么,但在示例中,您可以检查如何做。我也被它卡住了,这说明问题已经解决。但是,我无法找到方法pieChart.setDrawEmptyXLabel(false);使用MPAndroidChart:v3.0.2'必须更改PieChartRenderer.java方法drawValues()if(entry.getValue()!=0.0){if(dataSet.getValueLineColor()!=ColorTemplate.COLOR\u NONE){c.drawLine(pt0x,pt0y,pt1x,pt1y,mValueLinePaint);c.drawLine(pt1x,pt1y,pt2x,pt2y,mValueLinePaint);}}您好,您能告诉我如何将文本放置在图形之外吗?您可以通过以下方式设置数据:您不能通过编写代码直接更改行的颜色,它的黑色是从库中修复的。@gaurang检查示例,您可以使用setValueLineColor(),但只有一次,如果您打算将其用作ColorTemplate.COLOR\u NONE然后no,您可以在哪里看到行,然后看看我问的问题,不想显示值为零的行。我理解您的意思,但您的“解决方案”不好,您说您将更改库(或打开更改的合并请求)你将不再获得更新。但这是我想要的。