Подтвердить что ты не робот

Флот с осью "String" x

При использовании флота я хотел бы иметь строку на основе оси x. Например, у меня есть список клиентов "Боб", "Крис", "Джо" и хотел бы построить свой доход по оси Y. (это гистограмма)

Кажется, что на первый взгляд флот поддерживает только числовые типы по оси x. Это правда?

4b9b3361

Ответ 1

@Matt близок, но имеет смысл просто использовать параметр ticks, чтобы напрямую указать, какие отметки должны иметь метки:

var options = {

...
  xaxis: {
    ticks: [[0,'Bob'],[1,'Chris'],[2,'Joe']]
  }
...

};

EDIT: это выглядит как this (я добавил больше данных, чем метки, но вы поняли).

Ответ 2

Вы должны сделать это, используя опцию tickFormatter в соответствии с этим вопросом. Я сам не пробовал, но сделаю это:

var xAxisLabels = ['Bob', 'Chris', 'Joe'];    
function xAxisLabelGenerator(x){
    return xAxisLabels[x];
}

var plot = $.plot($("#placeholder"), { 
    // snip other options...
    xaxis: {
       transform: xAxisLabelGenerator,
       tickFormatter: xAxisLabelGenerator 
    }
});

Это означает, что фактические значения x должны быть 0, 1, 2, ...

Ответ 3

Плагин Категории (jquery.flot.categories.js) сделает это довольно красиво, так что данные могут быть отформатированы следующим образом:

var data = [ ["January", 10], ["February", 8], ["March", 4], ["April", 13], ["May", 17], ["June", 9] ];

и запишите вот так: enter image description here

Смотрите: http://www.flotcharts.org/flot/examples/categories/index.html