1

我正在尝试创建一个包含三列类型字符串、timeofday、数字的 ComboChart,但我面临一个错误“给定轴上的所有系列必须具有相同的数据类型”,即使列类型存在,如何解决?

请检查链接:https ://jsfiddle.net/minamagdy666/2jfn1uec/3/

    google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);

function drawChart() {

  var data = new google.visualization.DataTable();
   data.addColumn('string', 'Time of Day');
  data.addColumn('timeofday', 'Time of Day');
  data.addColumn('number', 'Emails Received');

  data.addRows([
    ['eee',[8, 30, 45], 5],
    ['eee',[9, 0, 0], 10],
  ]);

  var options = {
    title: 'Total Emails Received Throughout the Day',
    height: 450,
    series: {0:{type: 'line'}}
  };

  var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));

  chart.draw(data, options);
}
4

1 回答 1

0

首先,需要seriesType为图表定义。

'line', 'area', 'bars', 'candlesticks', 或'steppedArea'

seriesType: 'bars'

接下来,如果每个系列不是同一类型,
(在这种情况下,一个是数字,另一个是时间)
那么每个系列必须在自己的 y 轴上......

1: {targetAxisIndex: 1}

请参阅以下工作片段...

google.charts.load('current', {
  packages: ['corechart']
}).then(function () {
  var data = new google.visualization.DataTable();
  data.addColumn('string', 'Time of Day');
  data.addColumn('timeofday', 'Time of Day');
  data.addColumn('number', 'Emails Received');
  data.addRows([
    ['eee',[8, 30, 45], 5],
    ['eee',[9, 0, 0], 10],
  ]);

  var options = {
    title: 'Total Emails Received Throughout the Day',
    height: 450,
    seriesType: 'bars',
    series: {
      0:{
        type: 'line'
      },
      1: {
        targetAxisIndex: 1
      }
    }
  };

  var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
  chart.draw(data, options);
});
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>

于 2019-08-11T13:26:01.577 回答