MPAndroidChart:如何反转HorizontalBarChart的顺序?

马克·奥沙利文

只是希望这里的人可以解释如何反转Horizo​​ntalBarChart的顺序,该顺序显示在MPAndroidChart的屏幕快照中(因此,顶部不是44.0,而是底部)。

下面的代码显示了如何创建用于生成Horizo​​ntalBarChart的BarDataSet。

ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
for (int i = 0; i < count; i++) {
            float val = (float) (Math.random() * range);
            yVals1.add(new BarEntry(i * spaceForBar, i * 4));
}
BarDataSet set1 = new BarDataSet(yVals1, "DataSet 1");

我试图反转for循环,以便以相反的方式添加数据集,但似乎产生了相同的Horizo​​ntalBarChart。

ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
for (int i = count-1; i >= 0; i--) {
            float val = (float) (Math.random() * range);
            yVals1.add(new BarEntry(i * spaceForBar, i * 4));
}
BarDataSet set1 = new BarDataSet(yVals1, "DataSet 1");

希望有人能够向我展示一种反转此图表顺序的方法。

我已经尝试过下面的代码,这是建议的答案之一。我以前发现了他们共享的完全相同的链接。这行代码将图形翻转,因此位于另一侧(请参阅第二个屏幕截图)

mChart.getAxisLeft().setInverted(true);

Horizo​​ntalBarChart的屏幕截图

左轴反转的Horizo​​ntalBarChart屏幕截图

用户名

你只是错过了更换i * spaceForBar(count - i) * spaceForBar

因此渲染时的坐标序列变为(假设count = 10):

(10 * 2, 0 * 4) => (9 * 2, 1 * 4) => (8 * 2, 2 * 4) => ... => (0 * 2, 10 * 4)

因此,您的代码变为:

ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry> ();
for (int i = 0; i < count; i++) {
    float val = (float) (Math.random () * range);
    yVals1.add (new BarEntry ((count - i) * spaceForBar, i * 4));
}
BarDataSet set1 = new BarDataSet (yVals1, "DataSet 1");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章