gpt4 book ai didi

java - MPAndroidChart 分组条形图 : Group title not showed above group

转载 作者:行者123 更新时间:2023-12-02 12:48:17 24 4
gpt4 key购买 nike

我有一个包含 4 个条形的条形图,使用 MPAndroidChart library 将其分为 2 组。到目前为止这有效。现在我想在每个组上方显示一个标题。这是我当前的输出(如您所见,标题未显示在每组上方)。

enter image description here

我的代码:

   _overviewBarChart.setPinchZoom(false);
_overviewBarChart.getDescription().setEnabled(false);
_overviewBarChart.setDrawValueAboveBar(true);
_overviewBarChart.getXAxis().setCenterAxisLabels(true);
_overviewBarChart.getXAxis().setAxisMinimum(0);
_overviewBarChart.getXAxis().setDrawGridLines(false);

private void updateOverviewBarChart() {

//Init calorie needs bars

BarEntry todayCalorieNeedsBarEntry = new BarEntry(0, _calorieEntry.getTarget());
BarEntry yesterdayCalorieNeedsBarEntry = new BarEntry(0, 0);
if (_yesterdayCalorieEntry != null)
yesterdayCalorieNeedsBarEntry = new BarEntry(0, _yesterdayCalorieEntry.getTarget());

ArrayList<BarEntry> calorieNeedsBarEntries = new ArrayList<>();
calorieNeedsBarEntries.add(todayCalorieNeedsBarEntry);
calorieNeedsBarEntries.add(yesterdayCalorieNeedsBarEntry);

//Init consumed calories bars

BarEntry todayConsumedCaloriesBarEntry = new BarEntry(1, _calorieEntry.getConsumed());
BarEntry yesterdayConsumedCaloriesBarEntry = new BarEntry(1, 0);
if (_yesterdayCalorieEntry != null)
yesterdayConsumedCaloriesBarEntry = new BarEntry(1, _yesterdayCalorieEntry.getConsumed());

ArrayList<BarEntry> consumedCaloriesBarEntries = new ArrayList<>();
consumedCaloriesBarEntries.add(todayConsumedCaloriesBarEntry);
consumedCaloriesBarEntries.add(yesterdayConsumedCaloriesBarEntry);

//Init BarDataSets

BarDataSet calorieNeedsBarDataSet = new BarDataSet(calorieNeedsBarEntries, getString(R.string.fragment_main_calorieneeds));
calorieNeedsBarDataSet.setColor(Color.parseColor("#26A69A"));
BarDataSet consumedCaloriesBarDataSet = new BarDataSet(consumedCaloriesBarEntries, getString(R.string.fragment_main_consumed));
consumedCaloriesBarDataSet.setColor(Color.parseColor("#E53935"));

//Init BarData, group BarEntrys, set group titles

BarData barData = new BarData(calorieNeedsBarDataSet, consumedCaloriesBarDataSet);
barData.setValueTextSize(14);
barData.setBarWidth(0.2f);
barData.groupBars(0, 0.15f, 0.1f);

ArrayList<String> groupTitles = new ArrayList<String>();
groupTitles.add(getString(R.string.fragment_main_today));
groupTitles.add(getString(R.string.fragment_main_yesterday));

_overviewBarChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(groupTitles));// new BarChartStringFormatter(groupTitles));

//Set data, redraw BarChart

_overviewBarChart.setData(barData);
_overviewBarChart.invalidate();
}

你能看出我做错了什么吗?

最佳答案

终于我找到了解决我的问题的方法。

首先,您必须添加这两行代码(注意:参数可能会根据您的要求而有所不同):

_overviewBarChart.getXAxis().setGranularity(1f);
_overviewBarChart.getXAxis().setAxisMaximum(2);

我的错误是默认的 XAxis 粒度太细(0.1、0.2、0.3 ...)。因此 IndexAxisValueFormatter 将组标题应用于每个 XAxis 步骤。 setGranularity 解决了这个问题。最后使用setAxisMaximum来限制X轴上的步数(之前是3,所以标题显示3次)。

然后改变...

barData.groupBars(0, 0.15f, 0.1f);

对此(注意:参数可能会根据您的要求而有所不同)..

barData.groupBars(0, 0.45f, 0.1f);

结果:

enter image description here

关于java - MPAndroidChart 分组条形图 : Group title not showed above group,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com