java-MPAndroidChart条形图-如何在组之间以随机X轴间隔对条进行分组?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-MPAndroidChart条形图-如何在组之间以随机X轴间隔对条进行分组?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2264字,纯文字阅读大概需要4分钟。
内容图文
![java-MPAndroidChart条形图-如何在组之间以随机X轴间隔对条进行分组?](/upload/InfoBanner/zyjiaocheng/667/8f42dd8daa75446e8e3be8da7e7cc4c9.jpg)
我想制作一个条形图,其中在每个数据点将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轴间隔对条进行分组?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。