MPAndroidChart - установить значение xAxis в качестве строки - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу сравнить оценки в моем приложении для Android с помощью MPandroidchart.

Я сделал этот же график на моем сайте.Но не надо, если это возможно и в Android.

Это то, что я хочу сделать.

enter image description here

 final ArrayList<String> labelsSub = new ArrayList<>();

    labelsSub.add("CSE215");
    labelsSub.add("CSE215");
    labelsSub.add("MAT120");
    labelsSub.add("MAT120");


    List<BarEntry> entriesSub = new ArrayList<>();
    entriesSub.add(new BarEntry(0f, "A"));
    entriesSub.add(new BarEntry(1f, "A-"));
    entriesSub.add(new BarEntry(2f, "A"));
    entriesSub.add(new BarEntry(3f, "B"));

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Вот решение, которое я нашел, надеюсь, оно поможет другим.

Если вы хотите установить пользовательский текст в значениях графика, используйте это.

public class GradeValueChart implements IValueFormatter {

    private DecimalFormat mFormat;

    public GradeValueChart() {
        mFormat = new DecimalFormat("###,###,##0.0"); // use one decimal
    }

    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {


        String val = Utils.getGpaGrade(value);


        return val + " "; // e.g. append any text
    }
}

Затем установите форматер в наборе данных.

    setSub.setValueFormatter(new GradeValueChart());
0 голосов
/ 30 апреля 2019

использовать массив строк для форматирования xvalue по оси x.

ArrayList chnlList = new ArrayList <> ();

xAxis.setValueFormatter (new IAxisValueFormatter () {

@ Override

public String getFormattedValue (значение с плавающей запятой, ось AxisBase) {

возвращаемое значение chnlList.get ((int));

}

});

0 голосов
/ 11 сентября 2018

Вы можете легко сделать это, используя следующий код:

XAxis xAxis = lineChart.getXAxis();
xAxis.setValueFormatter(new IAxisValueFormatter() {
        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            switch ((int)value){
                //write your logic here
                case 0:
                    return "CHE1";
                case 1:
                    return "CHE2";
                case 2:
                    return "CHE3";
                case 3:
                    return "CHE4;
                default:
                    return "CHE5";
            }
        }
    });
...