Использование highchart для получения ряда рядов в столбчатой диаграмме

#javascript #charts #highcharts #data-visualization

#javascript #Диаграммы #highcharts #визуализация данных

Вопрос:

Здесь я использую базовый пример столбчатой диаграммы:

Пример Highchart из JSFiddle через HC docs

Это нормально для одной серии xAxis, но мне нужна одна с двойной группировкой, например:

введите описание изображения здесь

У меня есть следующий код скрипта HC:

 Highcharts.chart('container', {
    chart: {
        type: 'column'
    },
    title: {
        text: 'Monthly Average Rainfall'
    },
    subtitle: {
        text: 'Source: WorldClimate.com'
    },
    xAxis: {
        categories: [
            ['Jan', '2020'],
            ['Feb', '2020']
        ],
        crosshair: true
    },
    yAxis: {
        min: 0,
        title: {
            text: 'Rainfall (mm)'
        }
    },
    tooltip: {
        headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
        pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>'  
            '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
        footerFormat: '</table>',
        shared: true,
        useHTML: true
    },
    plotOptions: {
        column: {
            pointPadding: 0.2,
            borderWidth: 0
        }
    },
    series: [{
        name: 'Tokyo',
        data: [[49.9, 2020], [71.5, 2020]]

    }, {
        name: 'New York',
        data: [[83.6, 2020], [78.8, 2020]]

    }]
});
 

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

Ответ №1:

Я думаю, что grouped categories highcharts module в этом случае вы можете использовать.

Документы: https://github.com/blacklabel/grouped_categories

 Highcharts.chart('container', {
  chart: {
    type: "column"
  },

  series: [{
    data: [4, 14, 18, 5, 6, 5]
  }, {
    data: [4, 14, 18, 5, 6, 5].reverse()
  }],
  xAxis: {
    categories: [{
      name: "2020",
      categories: ["Apple", "Banana", "Orange"]
    }, {
      name: "2021",
      categories: ["Carrot", "Potato", "Tomato"]
    }]
  }
});
 

Демонстрация: https://jsfiddle.net/BlackLabel/tzkq2hjp /