Комбинированная диаграмма (гистограмма и линейная диаграмма) + xAxis.setValueFormatter - PullRequest
0 голосов
/ 05 октября 2018

Мне трудно понять, как установить конкретные значения для оси 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
    });

Но это дает мне следующее:

ДЕНЬ 01, ДЕНЬ 11, ДЕНЬ 21,…, ДЕНЬ 111 --- Вот где я запутался! ????

Тогда я понял, что это добавление моего (i + 1)к другому виду прироста ???Поэтому я попытался сделать такой цикл for:

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

Но это просто дает мне ДЕНЬ, ДЕНЬ, ..., ДЕНЬ --- Что имеет смысл!lolol

Я исчерпал поиски в Google, и мне нужна помощь!

PS что, если я захочу использовать счетчик и изменить X-AXIS в соответствии с пользовательским вводом.Записи счетчика IE: дни / недели / месяцы / годы, и в соответствии с пользовательским вводом ось будет отображать данные по дням, неделям, месяцам или годам ... Я получил что-то работающее, но снова значения X-AXIS не отображаются так, как должны(так же, как и выше, помните, что размер моего массива изменяется в зависимости от выбранной записи вращателя)

Пожалуйста, сообщите заранее и поблагодарите заранее!Очень ценится!

1 Ответ

0 голосов
/ 05 октября 2018

Эти строки:

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

Вы совместили ДЕНЬ, i и 1 в одну строку, поэтому первое значение будет ДЕНЬ 01.

Быстрое исправление:

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