2013-04-10 2 views
1

Я ищу способ показать пузырьковую диаграмму Highcharts для следующего случая:Highcharts - пузырьковая диаграмма с названиями на х- и у-ось - Error # 14

Я хочу, чтобы показать имена Проекта по X-Axis («проект a», «проект b») и имена членов команды по оси y (например, «tom», «bill», «john»). Пузыри намерены визуализировать время, затрачиваемое каждым членом команды на каждый проект.

Серия данных должна быть чем-то вроде ['project a', 'tom', 25.0], ['project b', 'john', 12.5] ..., но при попытке это приводит к ошибке Highcharts # 14 : Значение строки, отправленное в series.data, ожидается Число «

Возможно ли иметь диаграмму пузырьков/3d-пузырьков Highcharts со строковыми значениями на оси x и y вместо цифр или есть способ добиться чего-то подобного?

Любое руководство будет оценено по достоинству.

Спасибо.

ответ

7

Все, что вы говорите, это категорические топоры - никаких трюков не требуется.

http://jsfiddle.net/jlbriggs/36zn2/1/

 xAxis: { 
      categories:['Project 1', 'Project 2', 'Project 3'] 
     }, 
     yAxis: { 
      categories:['User 1', 'User 2', 'User 3'] 
     }, 

Численное значение для использования в данных является индексом массива категории.

+0

Спасибо, это еще проще в использовании! –

+0

Я с использованием данных, как это: серии: [ { данные: [ {х: 3,5, у: 4, г: 5, цвет: 'синий'}, {х: 7, у: 7, г : 3, цвет: 'синий'}, {х: 4, у: 8, г: 6, цвет: 'синий'} ] } ] Я хочу, чтобы установить х Axys, как вы сказали xAxis: { Категории: ['Проект 1', 'Проект 2', 'Проект 3'] }, , но работа с дозировкой показывает значение x. Что я могу сделать –

+0

Если вы используете категории по оси x, это будут ваши значения оси x. Если вы хотите показать значения x в своих данных, удалите категории. – jlbriggs

1

Я сделал что-то здесь http://jsfiddle.net/36zn2/, которое должно вам помочь.

Этикетки по оси x и y вычисляются с использованием функции форматирования, которая преобразует числовые коды проектов и коды персонала в текст из массива.

var names = ["DAVE","JOHN"]; 
var projects = ["Project 1","Project 2"]; 


    xAxis: { 
     labels: {tickInterval:1, 
      formatter: function() { 
       return projects[this.value] 
      } 
     } 
    }, 

    yAxis: { 
     labels: { 
      formatter: function() { 
       return names[this.value] 
      } 
     } 
    }, 

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

+0

Отличное решение, спасибо! –