groupByRowLabel不适用于Google时间线

时间:2017-06-06 04:10:36

标签: javascript google-visualization

目前,我的时间表图表看起来像这样

enter image description here

但我想将所有同一国家/地区的酒吧放在一行

我已经设置了

  

的时间表:{groupByRowLabel:真}

在选项中但不起作用

来自Google工作表的数据看起来像这样

enter image description here

我的完整代码

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
  <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>
  <script>
    google.charts.load('current', {
      packages: ["timeline"]
    });

    google.charts.setOnLoadCallback(drawRegionsMap);

    var data1;

    function handleQueryResponseTR1(response1) {
      if (response1.isError()) {
        alert('Error in query: ' + response1.getMessage() + ' ' + response1.getDetailedMessage());
        return;
      }
      data1 = response1.getDataTable();
      var view1 = new google.visualization.DataView(data1);
      view1.setColumns([{
        type: 'string',
        id: 'Country',
        calc: function(dt, row) {
          return dt.getFormattedValue(row, 0)
        }
      }, 1, 3, 4]);
      var chart1 = new google.visualization.Timeline(document.getElementById('colormap1'));

      var options1 = {

        width: 800,
        height: 1600,
        timeline: {
          groupByRowLabel: true
        }
}
      

      chart1.draw(view1, options1);

    }


    function drawRegionsMap() {

      var query1 = new google.visualization.Query("https://docs.google.com/spreadsheets/d/1sOyYwL51uWTd7Pv4Sp_bKdxWmH-g6QA2SDHhw93_2s8/edit?usp=sharing");
      query1.send(handleQueryResponseTR1);
}
</script>

      <div id='colormap1'> </div>

1 个答案:

答案 0 :(得分:0)

你所做的是绝对正确的。您的代码中没有任何内容可以添加。

timeline:{groupByRowLabel:true}

这将使您的标签位于同一行。

但这里的问题是你给出的数据集。 当且仅当标签的日期不重叠时,国家/地区的所有标签(在个案中)将出现在同一行。

例如,在你的情况下说。

Albania WEEE 7/20/2000   6/6/2017  
Albania Batteries 7/20/2015 6/5/2017

请参阅上述日期(WEEE的结束时间和电池的开始时间)重叠。

如果日期类似

Albania WEEE 7/20/2000  6/6/2016
Albania Batteries 6/6/2016 6/5/2017

检查这个日期。使用此数据集,您的标签将位于同一行。