如何在MPAndroid图表中设置自定义Y标签

时间:2016-05-25 07:16:05

标签: android charts

我使用MPAndroid Chart及时显示一些值(某些用户的性能)。准备图表数据的代码是:

            BarChart chart = (BarChart) rootView.findViewById(R.id.chart);

            ArrayList<BarEntry> enteries = new ArrayList<>();
            ArrayList<String> labels = new ArrayList<>();
            for (int i = 0; i < data.length; i++) {
                enteries.add(new BarEntry(data[i].getValue(), i));
                labels.add(data[i].getName());
            }
            BarDataSet dataSet = new BarDataSet(enteries, "");

            int[] clr = new int[]{Color.RED, Color.RED, Color.RED, Color.rgb(0xff, 0xff, 0x00), Color.BLUE, Color.BLACK};
            dataSet.setColors(clr);
            chart.setData(new BarData(labels, dataSet));
            chart.animateY(500);

'data'中的值以'秒'为单位。
如何以hhhh:mm:ss格式显示Y标签和条形图上方的值,即1:40(1分40秒)而不是100。 enter image description here

EDIT1:
我通过定义自定义YAxisValueFormatter解决了Y-Lables的问题 类:

    public class MyYAxisValueFormatter implements YAxisValueFormatter{
        public MyYAxisValueFormatter () {
        }

        @Override
        public String getFormattedValue(float value, YAxis yAxis) {
            String yLabel="";
            int h=(int)(value/3600);
            int m=(int)((value%3600)/60);
            int s=(int)(value%60);
            if(h>0)
                yLabel=yLabel+Integer.toString(h)+":";
            if(m>0)
                yLabel=yLabel+Integer.toString(m)+":";
            yLabel=yLabel+Integer.toString(s);
            return yLabel;
        }
    }

但是我找不到任何方法来更改条形图上方的值的格式了!

0 个答案:

没有答案