Скрыть небольшие значения в круговой диаграмме MPAndroidChart - PullRequest
1 голос
/ 05 ноября 2019

Как я могу скрыть небольшие значения в круговой диаграмме, если я печатаю их вне графика? Я могу получить пустую метку с помощью ValueFormatter, но не могу понять, как удалить строку, выходящую за пределы графика.

Это моя текущая ситуация (без Value Formatter, чтобы скрыть небольшие значения): текущий график

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Попробуйте dataSet.setDrawValues ​​(false) . Это предотвратит рисование любых значений.

Если вы хотите изменить (настроить) нарисованные значения (или только отдельные значения), вы можете использовать интерфейс ValueFormatter и реализовать собственную логику (например, скрыть определенные значения). на основании условия). Всегда имейте в виду, производительность является критически важной при использовании ValueFormatter.

0 голосов
/ 05 ноября 2019

эта ссылка может быть полезна: https://stackoverflow.com/a/46403088/5482918

необходимо изменить метод drawValues в PieChartRenderer классе

При добавлении данных:

 ArrayList<PieEntry> entries = new ArrayList<>();
    entries.add(new PieEntry(75,"Data 1","showLine"));
    entries.add(new PieEntry(25,"Data 2","hideLine"));
    entries.add(new PieEntry(45,"Data 3","hideLine"));
    entries.add(new PieEntry(58,"Data 4","showLine"));
    entries.add(new PieEntry(76,"Data 5","hideLine"));

PieChartRenderer класс - drawValues(Canvas c) метод: поставить условие типа:

if (entry.getData().equals("showLine")) {
                    if (dataSet.getValueLineColor() != ColorTemplate.COLOR_NONE) {
                        if (dataSet.isUsingSliceColorAsValueLineColor()) {
                            mValueLinePaint.setColor(dataSet.getColor(j));
                        }
                        c.drawLine(pt0x, pt0y, pt1x, pt1y, mValueLinePaint);
                        c.drawLine(pt1x, pt1y, pt2x, pt2y, mValueLinePaint);
                    }
                }
...