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

时间:2018-10-05 02:14:09

标签: android mpandroidchart combinedchart

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

例如,我希望X轴显示DAY 0,DAY 1,…,DAYN。但是很明显,我不了解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-AXIS,该怎么办?即微调器输入项:天/周/月/年,根据用户输入,轴将按天或周或月或年显示数据...我工作正常,但X-AXIS值仍未按原样显示(与上述相同,请记住,我的数组大小会根据所选的微调项而变化)

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

1 个答案:

答案 0 :(得分: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);
}