如何在Horizo​​ntalBarChart中显示条形标签?

时间:2016-09-12 20:32:33

标签: java android mpandroidchart

我有来自MPAndroidChart库(版本v3.0.0-beta1)的Horizo​​ntalBarChart,其中显示了用户帐户的每月支出。

所以我实现了这个方法:

List<Account> accounts = getAccounts();

final ArrayList<BarEntry> entries = new ArrayList<>();
Float count = 0F;
for (Account account : accounts) {
    entries.add(new BarEntry(count++, new float[]{Float.valueOf(account.getBalance())}, account.getName()));
}

BarDataSet dataset = new BarDataSet(entries, " ");
dataset.setColors(ColorTemplate.PASTEL_COLORS);
dataset.setValueTextSize(10F);

BarData data = new BarData(dataset);
horizontalBarChartMonthlySpending.setData(data);
horizontalBarChartMonthlySpending.setDescription("Gastos por conta neste mês!");

horizontalBarChartMonthlySpending.getAxisLeft().setDrawLabels(false);
horizontalBarChartMonthlySpending.getAxisRight().setDrawLabels(false);


horizontalBarChartMonthlySpending.setFitBars(true);
horizontalBarChartMonthlySpending.setTouchEnabled(false);

这就是我得到的:

Generated report

我想要的是,除了每个栏之外,还要说明相关帐户。我尝试在第6行使用account.getName()执行此操作,但它并未出现在报告中的任何位置。

有办法吗?

1 个答案:

答案 0 :(得分:1)

我遇到了这个问题并且正确地输入了这段代码:

horizontalBarChartMonthlySpending.getXAxis().setValueFormatter(new AxisValueFormatter() {
        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return entries.get((int) value).getData().toString();
        }

        @Override
        public int getDecimalDigits() {
            return 0;
        }
    });

    XAxis xAxis = horizontalBarChartMonthlySpending.getXAxis();
    xAxis.setGranularity(1f);
    xAxis.setGranularityEnabled(true);