2015-09-28 88 views
4

我正在使用MP图表来显示评论,除了X轴值显示为浮动值(针对特定类型的评论的数量)之外,一切都工作正常。MP android图表显示水平条形图的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

我想要的红色圆圈标记值是整数,而不是浮动。 任何人都可以帮助我吗?

回答

17

我有它解决了(再次感谢菲利普),这是解决

创建实现给定ValueFormatter

这个你自己的价值格式化类我的等级:

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

然后格式化值设置为您BarData:

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

就是这样,这是输出 -

image without decimal

+0

我试过这个选项。但仍然我得到的价值不是int值。我有整数值的条目。如果我有4个任务完成,即输入为(4,1),那么栏上显示的值是10.是吗?@Manikanta – Sid

+0

除非我看到您的值格式化程序和您设置值的方式,否则我可以对此进行评论。 – Manikanta

+0

你能帮我解决这个问题吗? http://stackoverflow.com/questions/36735219/how-to-add-entries-in-mpandroid-chart @Manikanta – Sid

5

ValueFormatter界面让你在图表内显示你想要的任何东西。更小数,小数少,弦,...

+0

由于一吨@philipp Jahoda我已经得到了它。 – Manikanta

+0

你能帮我写下每个栏内的文字吗?像,里面绿吧5星,橙吧2星那样? – Manikanta