2017-02-10 2 views
0

Итак, это сложно. У меня есть массив из следующих объектов:Групповые диаграммы на высокой четкости

enter image description here

Теперь моя цель заключается в создании гистограммы, которая будет выглядеть примерно так: enter image description here

, а затем следующий объект в моем массиве.

Я просматривал документацию и все, что я был в состоянии найти что-то вроде этого:

Highcharts demo

Проблема заключается в data значение, которое вы установили в серии. если вы вставляете массив, он будет разделен на все категории. Насколько я вижу, вы не можете заблокировать одну серию данных в одной категории.

Мой вопрос: кто-нибудь сделал что-то подобное раньше и может мне помочь? :)

Моя попытка:

Im пытаясь в этой скрипкой:

Highcharts.chart('container', { 
     xAxis: { 
      minPadding: 0.05, 
      maxPadding: 0.05, 
      categories: ['Apples', 'Oranges', 'Pears', 'Bananas', 'Plums'] 
     }, 
     series: [{ 
       type: 'column', 
      name: 'Apples', 
      zoneAxis: 'x', 
      data: [ 
       ['First', 29.9], 
       ['Second', 71.5], 
       ['Third', 106.4] 
      ] 
     },{ 
      type: 'column', 
      name: 'oranges', 
      data:[ 
      ['A', 20] 
      ] 
     }] 
    }); 

Fiddle

+0

Это проще, чтобы помочь с скрипт вашего фактического кода nd, а не несколько связанная с ними версия Highcharts. Короткий ответ - да, вы правы, что он не предназначен для работы таким образом, но также да, с некоторыми манипуляциями вы должны быть в состоянии получить то, что вам нужно. – jlbriggs

ответ

1

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

Первый способ, который приходит на ум, - просто манипулировать тем, как вы структурируете свои данные и свои категории.

Пример:

xAxis: { 
     categories: ['Group 1', 'Group 2', 'Group 3'], 
     labels: { style: { fontWeight: 'bold' } } 
    }, 
    series: [{ 
     name: 'Subset A', 
      data: [{y: 10, name: '1A'}, {y: 5, name: '2A'}, {y: 7, name: '3A'}] 
    }, { 
     name: 'Subset B', 
      data: [{y: 5, name: '1B'}, {y: 3, name: '2B'}, {y: 4, name: '3B'}] 
    }] 

Таким образом, если предположить три группы, каждая из которых с двумя точками. Вы хотите, чтобы первая категория, чтобы показать точку и B из группы 1, вторая категория, чтобы показать точку A и B из группы 2 и т.д.

скрипку:

Выход:

enter image description here

Основной потенциальный недостаток в том, что легенда будет показать/скрыть точки А или В, а не группы 1, 2 или 3.

Вы может обойти это, добавив функцию, чтобы показать/скрыть категории, если это проблема.

Заканчивать ответ на этот вопрос здесь:

и связанные с ним скрипку здесь:

Смежные вопросы