2016-05-10 3 views
1

Я использую сложную процентную диаграмму в Highcharts. (This jsfiddle похож на наш график, полученный от an example на сайте Highcharts.)Могу ли я использовать два массива «категории» в сложной гистограмме?

Что я хотел бы сделать, это добавить еще один набор ярлыков категории с правой стороны диаграммы. Если у левой стороны есть метки для каждого бара, я хотел бы показать среднее справа. (Вычисление этого среднего значения и включение его в конфигурационные данные Highcharts выполняется на стороне сервера, в скрипте я просто закодировал некоторые фиктивные значения.)

Я попытался использовать несколько конфигураций по оси x, с средние категории с пометкой opposite: true, чтобы поместить их на правую сторону. Я вижу, что добавление этого изменяет диаграмму, особенно если я не помещаю их в opposite, но эти метки фактически не отображаются в любой конфигурации, которую я пробовал. Это возможно? Если да, то что мне нужно сделать, чего я еще не делаю?

Это конфигурация в примере jsFiddle:

$('#container').highcharts({ 
    chart: { 
     type: 'bar' 
    }, 
    title: { 
     text: 'Stacked bar chart' 
    }, 
    xAxis: [{ 
     categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas'] 
    }, { 
     title: 'Avg.', 
     categories: [3.0, 3.3, 3.6, 2.6, 3.0], 
     opposite: true 
    }], 
    yAxis: { 
     min: 0, 
     title: { 
      text: 'Percent fruit consumption' 
     } 
    }, 
    plotOptions: { 
     series: { 
      stacking: 'percent' 
     } 
    }, 
    series: [{ 
     name: 'John', 
     data: [5, 3, 4, 7, 2] 
    }, { 
     name: 'Jane', 
     data: [2, 2, 3, 2, 1] 
    }, { 
     name: 'Joe', 
     data: [3, 4, 4, 2, 5] 
    }] 
}); 
+0

[Это обсуждение в форумах Highcharts] (HTTP: //forum.highcharts.com/highcharts-usage/x-axis-group-categories-t12897/?hilit=bar%20chart%20second%20categories) считают, что это невозможно, но может быть у некоторых неопределенное будущее время. – pjmorse

+0

Да, вы можете использовать вторую ось и поставить второй набор категорий на эту вторую ось. – jlbriggs

+1

О, я вижу, у вас есть эта часть :) Что вам не хватает, так это то, что вам нужно либо привязать 2-ю ось к 1-му, либо к ней добавить одну из серий данных. Итак, для этого добавьте ** linkedTo: 0 ** на свою вторую ось. Fiddle: http://jsfiddle.net/jlbriggs/z4zkm8v5/2/ – jlbriggs

ответ

3

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

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

Если добавить linkedTo собственности, он будет работать в соответствии с требованиями:

xAxis: [{ 
    categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas'] 
}, { 
    linkedTo: 0, // <-- now the chart will show it, as long as axis 0 is able to be shown 
    title: 'Avg.', 
    categories: [3.0, 3.3, 3.6, 2.6, 3.0], 
    opposite: true 
}] 

Обновлено скрипка:

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