MPAndroidChart-将xAxis值设置为String

时间:2018-09-11 09:06:12

标签: android charts mpandroidchart

我想使用MPandroidchart在我的android应用中比较成绩。

我在我的网站上做了同样的图。但是,如果不是在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 :(得分:1)

您可以使用以下代码轻松地做到这一点:

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

答案 1 :(得分:0)

这是我找到的解决方案,希望对其他人有帮助。

如果要在图形值中设置自定义文本,请使用它。

gamma

然后在数据集中设置格式化程序。

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

答案 2 :(得分:0)

使用字符串数组在x轴上格式化xvalue。

ArrayList chnlList =新的ArrayList <>();

xAxis.setValueFormatter(new IAxisValueFormatter(){

@Override

公共字符串getFormattedValue(浮点值,AxisBase轴){

返回chnlList.get((int)值);

}

});