Как я могу исправить легенду? (MPAndroidChart)

Я использовал legend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART_CENTER); это работает, но я хочу, чтобы легенда была наверху

если я использую legend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART); легенда и график перекрываются

может быть есть способ изменить положение графика?

5 ответов

Решение

Я смог получить желаемый результат, используя

legend.setPosition(Legend.LegendPosition.ABOVE_CHART_LEFT); 
legend.setWordWrapEnabled(true); 
legend.setMaxSizePercent(0.20f);

Этот метод устарел, лучше использовать его.

l.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
l.setOrientation(Legend.LegendOrientation.HORIZONTAL);
l.setDrawInside(false);

для справки вы можете проверить здесь Легенда не может отображаться при вызове setPosition(LegendPosition.BELOW_CHART_CENTER)

Да, можно при изменении значения смещения:

          pieChart.setExtraTopOffset(15);
    pieChart.setExtraBottomOffset(15);
    pieChart.setExtraLeftOffset(0);
    pieChart.setExtraRightOffset(50);

Или с одной строчкой

          setExtraOffsets(float left, float top, float right, float bottom)

результат:

Хороший пример с его параметрами и с некоторым описанием: https://www.programmersought.com/article/99524092993/

Используйте ниже строки:

   legend.setPosition(Legend.LegendPosition.ABOVE_CHART_RIGHT);

Попробуйте Установить все данные в диаграмму после всех настроек, и все будет работать нормально.. вот так:

 l.setCustom(arrayOf(firstLegend, secondLegend))
    l.verticalAlignment = Legend.LegendVerticalAlignment.BOTTOM
    l.horizontalAlignment = Legend.LegendHorizontalAlignment.LEFT
    l.orientation = Legend.LegendOrientation.HORIZONTAL
    l.setDrawInside(false) 

а затем установите данные в диаграмму..

        chart.data = data // set the data and list of labels into chart
Другие вопросы по тегам