这是我在MPAndroidChart:v3.0.3
上的BarEntry的列表
您可以在数组的3个索引上看到其值。我的问题是,为什么这些值在图表上显示时会四舍五入?
这是我的代码:
barEntriesCur.add(new BarEntry(1, (float) Double.parseDouble(incomeModel.getIncome_Payable_Cur()) / 1000000));
barEntriesCur.add(new BarEntry(2, (float) Double.parseDouble(incomeModel.getNosazi_Payable_Cur()) / 1000000));
barEntriesCur.add(new BarEntry(3, (float) Double.parseDouble(incomeModel.getSenfi_Payable_Cur()) / 1000000));
barEntriesPre.add(new BarEntry(1, (float) Double.parseDouble(incomeModel.getIncome_Payable_Pre()) / 1000000));
barEntriesPre.add(new BarEntry(2, (float) Double.parseDouble(incomeModel.getNosazi_Payable_Pre()) / 1000000));
barEntriesPre.add(new BarEntry(3, (float) Double.parseDouble(incomeModel.getSenfi_Payable_Pre()) / 1000000));
BarDataSet barDataSet = new BarDataSet(barEntriesCur, "cur");
barDataSet.setColors(AXisValueFormatter.SAFACUSTOM_COLORS2);
BarDataSet barDataSet1 = new BarDataSet(barEntriesPre, "pre");
barDataSet1.setColors(AXisValueFormatter.SAFACUSTOM_COLORS3);
BarData data = new BarData(barDataSet, barDataSet1);
mBinding.barChartReport.setData(data);
float groupSpace = 0.20f;
float barSpace = 0.02f;
float barWidth = 0.35f;
data.setBarWidth(barWidth);
data.setValueTextSize(10f);
mBinding.barChartReport.groupBars(1, groupSpace, barSpace);
mBinding.barChartReport.getAxisLeft().setStartAtZero(true);
mBinding.barChartReport.setPinchZoom(false);
mBinding.barChartReport.setBackgroundColor(Color.TRANSPARENT);
mBinding.barChartReport.setDrawGridBackground(false);
mBinding.barChartReport.getDescription().setEnabled(false);
mBinding.barChartReport.setFitBars(true);
mBinding.barChartReport.invalidate();
答案 0 :(得分:0)
实现了您的代码,这是解决方案。 但首先说明: 发生这种情况是因为值在较大范围内,同一张图上有5595和590,所以默认值格式化程序会删除小数,因为它认为这并不重要。
解决方案是实施您的自定义格式化程序:
public class MyDecimalValueFormatter implements IValueFormatter {
@Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
return String.valueOf(value);
}
}
然后将其设置为数据集:
data.setValueFormatter(new MyDecimalValueFormatter());
经过您的代码测试,并且可以(与您的数据一起使用):