0

我很难弄清楚如何为 X-AXIS 设置特定值。

例如,我希望 X 轴显示第 0 天、第 1 天、...、第 N 天。但显然我不理解 setValueFormatter,我阅读了您的文档,但仍然无法理解。

我试过这样做:

//Fill array
    for (int i = 0; i < xAXisNumDay.length; i++) {
        xAXisNumDay[i] = "DAY " + i + 1;
    }//for

    xAxis.setValueFormatter(new IAxisValueFormatter() {
        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return xAXisNumDay[(int) value % xAXisNumDay.length];
        }//formattedValue
    });

但它给了我这个:

第 1 天,第 11 天,第 21 天,……,第 111 天 --- 这就是我感到困惑的地方!????

然后我意识到它正在将我的 (i+1) 附加到另一种增量???所以我尝试做这种for循环:

for (int i = 0; i < xAXisNumDay.length; i++) {
        xAXisNumDay[i] = "DAY ";
    }//for

但这只是给了我DAY,DAY,...,DAY ---这是有道理的!哈哈

我用尽了谷歌搜索,我需要帮助!

PS如果我想使用微调器并根据用户输入改变X轴怎么办。IE微调器条目:天/周/月/年,根据用户输入,轴将按天或周或月或年显示数据......我得到了一些工作但X-AXIS值再次没有显示他们应该(与上面相同,请记住,我的数组大小会根据选择的微调器条目而变化)

请提前告知并感谢您!非常感激!

4

1 回答 1

1

这些行:

for (int i = 0; i < xAXisNumDay.length; i++) {
     xAXisNumDay[i] = "DAY " + i + 1;
}

您将 DAY、i 和 1 合并为一个字符串,因此第一个值将是 DAY 01。

快速解决:

for (int i = 0; i < xAXisNumDay.length; i++) {
     xAXisNumDay[i] = "DAY " + (i + 1);
}
于 2018-10-05T08:10:59.653 回答