[Java] MPAndroidChart 그래프 상단의 값을 소숫점 1단위까지 표시하는 방법

그래프 상단의 값을 소수점 1단위까지 표시하려면 값을 포맷팅할 때 소수점을 원하는 자릿수까지 표시하도록 설정해야 합니다. 이를 위해 IAxisValueFormatter 인터페이스를 구현하여 사용자 정의 값 포맷터를 만들고, 해당 포맷터를 사용하여 값을 원하는 형식으로 변환할 수 있습니다.

아래는 값을 소수점 1단위까지 표시하는 사용자 정의 값 포맷터를 구현하는 예제입니다:

import com.github.mikephil.charting.components.AxisBase;
import com.github.mikephil.charting.formatter.IAxisValueFormatter;

import java.text.DecimalFormat;

public class MyValueFormatter implements IAxisValueFormatter {

    private final DecimalFormat mFormat;

    public MyValueFormatter() {
        mFormat = new DecimalFormat("###.#"); // 소수점 1단위까지 표시
    }

    @Override
    public String getFormattedValue(float value, AxisBase axis) {
        return mFormat.format(value);
    }
}

위의 코드에서 MyValueFormatter 클래스는 IAxisValueFormatter 인터페이스를 구현하여 사용자 정의 값 포맷터를 만들었습니다. DecimalFormat 클래스를 사용하여 값을 소수점 1단위까지 포맷팅하도록 설정했습니다.

이제 LineChartView에서 해당 포맷터를 사용하도록 설정해야 합니다:

LineDataSet dataSet = new LineDataSet(entries, "Label");
dataSet.setValueTextSize(12f); // 값 텍스트 크기 설정
dataSet.setValueTextColor(Color.BLACK); // 값 텍스트 색상 설정
dataSet.setValuePosition(LineDataSet.ValuePosition.ABOVE); // 그래프 상단에 값 표시

LineData lineData = new LineData(dataSet);

LineChartView lineChartView = findViewById(R.id.line_chart_view);
lineChartView.setData(lineData);

// 값 포맷터를 생성하여 그래프의 Y축에 설정
MyValueFormatter valueFormatter = new MyValueFormatter();
lineChartView.getAxisLeft().setValueFormatter(valueFormatter);` 

위 코드에서 MyValueFormatter 클래스의 인스턴스를 생성하여 그래프의 Y축에 설정하였습니다. 이제 그래프 상단의 값들이 소수점 1단위까지 표시될 것입니다. DecimalFormat의 패턴을 조정하면 원하는 형식으로 값이 표시될 수 있으니 필요에 따라 패턴을 변경하실 수 있습니다.