只是希望这里的人可以解释如何反转HorizontalBarChart的顺序,该顺序显示在MPAndroidChart的屏幕快照中(因此,顶部不是44.0,而是底部)。
下面的代码显示了如何创建用于生成HorizontalBarChart的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循环,以便以相反的方式添加数据集,但似乎产生了相同的HorizontalBarChart。
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);
你只是错过了更换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] 删除。
我来说两句