MP android图表在水平条形图的X轴上显示浮动值?

时间:2015-09-28 11:30:11

标签: android bar-chart mpandroidchart

我使用MP图表显示评论,一切正常,但X轴值显示为浮动值(特定评论类型的数量)。

这是我正在使用的代码:

     BarData data = new BarData(getXAxisValues(), getDataSet(properties));
            chart.setData(data);
            chart.getXAxis().setEnabled(false); // hides horizontal grid lines inside chart
            YAxis leftAxis = chart.getAxisLeft();
            chart.getAxisRight().setEnabled(false); // hides horizontal grid lines with below line
            leftAxis.setEnabled(false); // hides vertical grid lines  inside chart
            /*chart.animateXY(2000, 2000);*/ // for animating reviews display
            chart.invalidate();
            chart.setClickable(false);
            chart.setDescription("");    // Hide the description
            chart.getLegend().setEnabled(false);
            chart.setDoubleTapToZoomEnabled(false);
            chart.setPinchZoom(false);

            leftAxis.setDrawLabels(true);
private ArrayList<BarDataSet> getDataSet(Properties properties) {
        ArrayList<BarDataSet> dataSets = null;

        ArrayList<BarEntry> valueSet1 = new ArrayList<>();

        BarEntry v1e1 = new BarEntry(properties.getRating10().intValue(), 0);
        valueSet1.add(v1e1);
        BarEntry v1e2 = new BarEntry(properties.getRating20().intValue(), 1);
        valueSet1.add(v1e2);
        BarEntry v1e3 = new BarEntry(properties.getRating30().intValue(), 2);
        valueSet1.add(v1e3);
        BarEntry v1e4 = new BarEntry(properties.getRating40().intValue(), 3);
        valueSet1.add(v1e4);
        BarEntry v1e5 = new BarEntry(properties.getRating50().intValue(), 4);
        valueSet1.add(v1e5);

        BarDataSet barDataSet1 = new BarDataSet(valueSet1, "Asset");
        barDataSet1.setColors(ColorTemplate.COLORFUL_COLORS);

        dataSets = new ArrayList<>();
        dataSets.add(barDataSet1);
        return dataSets;
    }

    private ArrayList<String> getXAxisValues() {
        ArrayList<String> xAxis = new ArrayList<>();
        xAxis.add("12.0");
        xAxis.add("4.0");
        xAxis.add("4");
        xAxis.add("4");
        xAxis.add("4");
        return xAxis;
    }

这里我将数据设置为水平条形图。

Image

我希望红色圆圈值是整数而不是浮点数。 任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:18)

我已经解决了(再次感谢Philipp),这是解决方案

创建您自己的值formatterter类,该类实现给定的ValueFormatter

这是我的班级:

public class MyValueFormatter implements ValueFormatter{
    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        return Math.round(value)+""; 
    }
}

然后将值Formatter设置为BarData:

BarData data = new BarData(getXAxisValues(), getDataSet(properties));
data.setValueFormatter(new MyValueFormatter());

这就是输出 -

image without decimal

答案 1 :(得分:6)

ValueFormatter界面可让您在图表中显示任何内容。更多小数,更少的小数,字符串,......

相关问题