Ось на основе строки для графиков jQuery Flot? - PullRequest
4 голосов
/ 06 октября 2010

Как получить нечисловые значения на оси графика Флота?

Например, на оси Y я хотел бы иметь (извините за дерьмовый график):

/*
    A|
    B|          _/*----------*
    C|        _/              \
    D|      _/                 \
    E|    _/                    \
    F|   /                       \
    G|  *                         *
      --------------------------------
       100        200       300   400

Данные, которые я предоставлю, будут выглядеть так: var data = [[100, 'G'], [200, 'B'], [300, 'B'], [400, 'G']];

Ответы [ 2 ]

6 голосов
/ 29 ноября 2010

Вы также можете связать текст со значением галочки, например:

ticks: [[0, "G"], [1, "F"], [2, "E"], [3, "D"]], // so on

Приятно, если вы делаете это таким образом, вы можете полностью контролировать его во время выполнения из вызова AJAX (при условии, что вы передаете конфигурацию оси с помощью JSON), тогда как опубликованное в настоящее время решение требует жестко закодированной функции.

4 голосов
/ 07 октября 2010

Вы можете подать функцию на tickFormatter для разметки оси.Предполагая G = 0 и A = 6:

var data = [[100, 0], [200, 5], [300, 5], [400, 0]];

$.plot($("#placeholder"), [data], {
    yaxis: { tickFormatter: function (v, axis) {
        return "GFEDCBA".charAt(v);
      }
    }
});

Flot example

Функция charAt просто принимает значение по оси Y (0, 5, 5, 0)возвращает букву из строки, соответствующей этой позиции.

...