首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPAndroidChart周刊数据

MPAndroidChart周刊数据
EN

Stack Overflow用户
提问于 2019-11-12 17:01:28
回答 2查看 421关注 0票数 0

所以我试着用MPAndroidChart做一个每周图表,用当前的周数据和前几周的数据。我可以做单条很好,所有的线,但当我试图做多栏组,它做以下工作。

还有什么需要我做的吗?我每组每天只有两条酒吧。以下是我的当前代码:

代码语言:javascript
复制
BarData barDataPayments = new BarData(barDataSetCurrentWeek, barDataSetPrevWeek);
        barChartPayments.setData(barDataPayments);

        XAxis xAxisPayments = barChartPayments.getXAxis();
        xAxisPayments.setValueFormatter(new IndexAxisValueFormatter(labelWeekdayNames));

        xAxisPayments.setYOffset(5);
        xAxisPayments.setPosition(XAxis.XAxisPosition.BOTTOM);
        xAxisPayments.setLabelCount(labelWeekdayNames.size());
        xAxisPayments.setGranularity(1f);
        xAxisPayments.setCenterAxisLabels(false);
        xAxisPayments.setDrawGridLines(false);

        float groupSpace = 0.08f;
        float barSpace = 0.03f;
        float barWidth = 0.2f;

        barDataPayments.setBarWidth(barWidth);
        barChartPayments.getXAxis().setAxisMinimum(0);
        barChartPayments.getXAxis().setAxisMaximum(0 + barChartPayments.getBarData().getGroupWidth(groupSpace, barSpace) * 14);
        barChartPayments.groupBars(0, groupSpace, barSpace);

        barChartPayments.invalidate();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-27 07:23:32

所以我最终要做的是手动设置数据。它需要一些调整才能得到我想要的方式,我相信有一个更正确的方法,但到目前为止,这是我找到的最简单的方法。

代码语言:javascript
复制
xAxisMiles.setYOffset(0); // <---- CHANGED TO ZERO
xAxisMiles.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxisMiles.setLabelCount(labelWeekdayNames.size());
xAxisMiles.setGranularity(1f);
xAxisMiles.setCenterAxisLabels(true); // <---- SET TO TRUE
xAxisMiles.setDrawGridLines(false);

//IMPORTANT *****
barDataPayments.setBarWidth(0.40f);
barDataPayments.getXAxis().setAxisMinimum(0);
barDataPayments.getXAxis().setAxisMaximum(7);
barDataPayments.groupBars(0, 0.10f, 0.05f);
//***** IMPORTANT*/
票数 0
EN

Stack Overflow用户

发布于 2019-11-23 07:53:45

我有个片段可以帮你,

代码语言:javascript
复制
BarData barData = new BarData();
                int i=10;
                for (ExpenseData expenseData : results) {
                    List<BarEntry> barEntryList = new ArrayList<>();
                    barEntryList.add(new BarEntry(i, (float) expenseData.getBalance()));
                    BarDataSet barDataSet = new BarDataSet(barEntryList, expenseData.getCategory());
                    int rand = (int) (i*Math.random());
                    barDataSet.setBarBorderWidth(1);
                    barDataSet.setBarBorderColor(Color.rgb(rand,i*20,i));
                    barDataSet.setColor(Color.rgb(rand,i*20,i));
                    barData.addDataSet(barDataSet);
                    i+=10;
                }
                barChart.setData(barData);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58823369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档