组合图(条形图和折线图)+ xAxis.setValueFormatter

Combined-Chart (bar- and linechart) + xAxis.setValueFormatter

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

例如,我希望 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
    });

但它给了我这个:

DAY 01, DAY 11, DAY 21, …, DAY 111 --- 这就是我感到困惑的地方!????

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

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

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

我用尽了 google 个搜索,我需要帮助!

P.S。如果我想使用微调器并根据用户输入更改 X 轴怎么办? IE。微调器条目:days/weeks/months/years 并且根据用户输入,轴将按天、周、月或年显示数据……我得到了一些工作,但 X 轴值再次没有按应有的方式显示(与上面并记住我的数组大小会根据选择的微调器条目而变化)

请提前告知,谢谢!非常感谢!

这些行:

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);
}