如何在谷歌图表中绘制月份与文本标签图表

时间:2018-05-01 15:00:26

标签: graph charts google-visualization google-chartwrapper

如何在h轴上创建月份年度(2018年3月)的谷歌图表图表,并在V轴上创建标签(数据库模块)

[
    ['Database Module', new Date(2018, 3, 30),1],
    ['HR Module', new Date(2018, 1, 4), 1],
    ['Finance Module', new Date(2018, 2, 4),4],
    ['Operations Module', new Date(2018, 2, 4), 6],
    ['PP Module', new Date(2018, 2, 4), 1]
]

1 个答案:

答案 0 :(得分:0)

不确定这是否是您正在寻找的图表,
但您可以使用np.split为每个标签创建一个v轴列,
然后使用DataView方法按日期求和......

group()
google.charts.load('current', {
  packages: ['corechart']
}).then(function () {
  var data = google.visualization.arrayToDataTable([
    ['Database Module', new Date(2018, 3, 30),1],
    ['HR Module', new Date(2018, 1, 4), 1],
    ['Finance Module', new Date(2018, 2, 4),4],
    ['Operations Module', new Date(2018, 2, 4), 6],
    ['PP Module', new Date(2018, 2, 4), 1]
  ], true);

  var dataView = new google.visualization.DataView(data);
  var labels = data.getDistinctValues(0);
  var viewColumns = [1];
  labels.forEach(function (label, index) {
    viewColumns.push({
      calc: function (dt, row) {
        if (dt.getValue(row, 0) === label) {
          return dt.getValue(row, 2);
        }
        return null;
      },
      label: label,
      type: 'number'
    });
  });
  dataView.setColumns(viewColumns);

  var aggColumns = [];
  labels.forEach(function (label, index) {
    aggColumns.push({
      aggregation: google.visualization.data.sum,
      column: index + 1,
      label: dataView.getColumnLabel(index + 1),
      type: dataView.getColumnType(index + 1)
    });
  });

  var dataGroup = google.visualization.data.group(dataView, [0], aggColumns);

  var chartDiv = document.getElementById('chart_div');
  var chart = new google.visualization.ColumnChart(chartDiv);
  chart.draw(dataGroup, {
    legend: 'bottom'
  });
});