tipos sectores para niños lineas histograma graficos grafico grafica ejemplos circulares barras android charts pie-chart mpandroidchart overlapping

android - sectores - cómo eliminar líneas si los valores son 0% en el gráfico circular



histograma (2)

Estoy trabajando en un gráfico circular, para eso, estoy usando la biblioteca MPAndroidChart , los valores pueden contener 0% para cualquier dato o más de un dato y estoy mostrando valores fuera de piechart usando setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE) No quiero mostrar valores de 0% en un gráfico circular, obtuve una solución para que use el valor formateado.

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) + " %"; } }

Pero si estoy usando la opción de líneas, entonces la línea se muestra para valores de 0% y se superpone para múltiples valores de 0%, así que ¿alguien puede ayudarme a eliminar la opción de línea para valores de 0% ?



Cambié el método drawValues en la clase PieChartRenderer .

No muestre la línea si el valor es 0.

Solo pon una condición:

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); } }

En lugar de seguir el código:

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