这是我在 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();
最佳答案
已实现您的代码,这里是解决方案。 但首先解释: 发生这种情况是因为值的范围很大,您在同一个图表上有 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());
使用您的代码进行测试,它可以(使用您的数据)工作:
关于android - 当出现在 mpandroidchart 上时,图表值会四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51267312/