java-MPAndroidChart条形图-如何在组之间以随机X轴间隔对条进行分组?

java-MPAndroidChart条形图-如何在组之间以随机X轴间隔对条进行分组?,第1张

概述我想制作一个条形图,其中在每个数据点将3个不同的数据集组合在一起,如下所示:但是,我无法使用库提供的groupBars方法将这些条分组在一起,因为无论我为条目设置什么x值,它都会根据我在其参数中指定的间隔对这些条进行分组.例如,如果我生成一个具有条目x值{0,5,13,17…50}的数据

我想制作一个条形图,其中在每个数据点将3个不同的数据集组合在一起,如下所示:

但是,我无法使用库提供的groupbars方法将这些条分组在一起,因为无论我为条目设置什么x值,它都会根据我在其参数中指定的间隔对这些条进行分组.

例如,如果我生成一个具有条目x值{0,5,13,17 … 50}的数据集并调用`groupbars’,则我的所有条目都被收集到1个x值,如下所示:

我想要的是将每个分组的条形图,每个条形图在其指定的x值处可见.如果仅删除groupbars调用,我会得到与我想要的东西类似的信息,但是由于条形图都是重叠的,所以不会完全一样,如下所示:

如何获得与以上图像相似但每个数据集的条完全可见的结果?这是我用于生成数据集和对条进行分组的代码:

        ArrayList<barEntry> happinessValues = new ArrayList<>();        ArrayList<barEntry> stressValues = new ArrayList<>();        ArrayList<barEntry> painValues = new ArrayList<>();        for (int i = 0; i < 50; ++i) {            happinessValues.add(new barEntry(                    i,                    datapoint.getHappiness()));            stressValues.add(new barEntry(                    i,                    datapoint.getStress()));            painValues.add(new barEntry(                    i,                    datapoint.getPain()));        }        HappinessDataset happyDataset;        barDataSet stressDataset, painDataset;            happyDataset = new HappinessDataset(happinessValues, "Happiness");            stressDataset = new barDataSet(stressValues, "Stress");            painDataset = new barDataSet(painValues, "Pain");            barData data = new barData(happyDataset, stressDataset, painDataset);            mChart.setData(data);        mChart.getXAxis().setAxisMinimum(0);        mChart.getXAxis().setAxisMaximum(50);      float groupSpace = 0.4f;        float barSpace = 0f; // x3 DataSet        float barWIDth = 0.2f; // x3 DataSet        // (0.2 + 0) * 3 + 0.4 = 1.00 -> interval per "group"        mChart.groupbars(startTime, groupSpace, barSpace);

解决方法:

我已经通过修改每个条形条目的x值和条形宽度解决了该问题.

我用三个数据集创建一个新的barData类,并将条形宽度(我们称其为bar_WIDTH)设置为0.2(即,三个条形空间总共占0.6个单位,数据集后的间距为0.4个单位) .

对于任何给定的条形输入,我将第一个条形放置在所需的x值处(简称为i),将第二个条形放置在x值i bar_WIDTH处,将第三个条形放置在i 2 * bar_WIDTH处.结果是一组3个条形条目,它们以我想要的任何x值为中心,如下所示:

因此,在我上面的代码中,将bar-entry创建代码修改如下:

final float bar_WIDTH = 0.2f;     happinessValues.add(new barEntry(                        i,                        datapoint.getHappiness()));                stressValues.add(new barEntry(                        i + bar_WIDTH,                        datapoint.getStress()));                painValues.add(new barEntry(                        i + 2 * bar_WIDTH,                        datapoint.getPain()));mChart.getbarData().setbarWIDth(bar_WIDTH);
总结

以上是内存溢出为你收集整理的java-MPAndroidChart条形图-如何在组之间以随机X轴间隔对条进行分组?全部内容,希望文章能够帮你解决java-MPAndroidChart条形图-如何在组之间以随机X轴间隔对条进行分组?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存