Пользовательская маркировка по оси X в диаграмме MPAndroid - PullRequest
0 голосов
/ 21 ноября 2018

chart demo

Я хочу, чтобы обозначение оси X было таким, как показано на рисунке выше.Я попытался использовать интерфейс AxisValueFormatter, но он повторяет метку «jh ow» 3 раза от 0 до 1, но пропускает некоторые из меток, показанных здесь.

enter image description here

Это вывод, который я получаю.Хотя форма графика правильная, метки - нет.

Я делюсь данными графика, чтобы любой желающий мог попытаться сделать график, как показано на рисунке.Любая помощь будет отличной, спасибо.

Использование MPAndroid не важно.Любая помощь из любой другой библиотеки тоже подойдет.

Данные:

"lables" : ["jh ow", "n ih l", "b iy", "hh iy r", "s uw n"]


"values":[[{"x":"0.00","y":"0.00"},{"x":"0.99","y":"0.00"}],
   [{"x":"0.99","y":"1.00"},{"x":"1.19","y":"0.50"}]
,  [{"x":"1.19","y":"0.50"},{"x":"1.37","y":"0.50"}]
,   [{"x":"1.37","y":"0.50"},{"x":"1.59","y":"0.50"}]
,   [{"x":"1.59","y":"0.50"},{"x":"2.12","y":"1.00"}]]

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Несмотря ни на что, я смог добиться этого, используя более старую версию библиотеки MPAndroidChart, и она работала как чудо.

0 голосов
/ 26 ноября 2018

Вы просто создаете простой список строк на странице активности;

final ArrayList<String> xVals= new ArrayList<>();
    xVals.add("jh ow");
    xVals.add("n ih l");
    xVals.add("b iy");
    xVals.add("hh iy r");
    xVals.add("s uw n");

, а затем делаете это;

xAxis.setValueFormatter(new MyXAxisDateArrayFormatter(xVals));

your MyXAxisDateArrayFormatter.java

public class MyXAxisDateArrayFormatter implements IAxisValueFormatter {

    private String[] mValues;

    public MyXAxisDateArrayFormatter(String[] values) {
        this.mValues = values;
    }

    @Override
    public String getFormattedValue(float value, AxisBase axis) {
        // "value" represents the position of the label on the axis (x or y)
        return mValues[(int) value];
    }

}

Это сработало на меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...