javascript - 将两个数组放在谷歌图表中

标签 javascript charts google-visualization

我有两个数组:

Sales [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Dates [01/03/2017, 02/03/2017, 03/03/2017, 04/03/2017, 05/03/2017, 06/03/2017, 07/03/2017, 08/03/2017, 09/03/2017, 10/03/2017, 11/03/2017, 12/03/2017, 13/03/2017, 14/03/2017, 15/03/2017, 16/03/2017, 17/03/2017, 18/03/2017, 19/03/2017, 20/03/2017, 21/03/2017, 22/03/2017, 23/03/2017, 24/03/2017, 25/03/2017, 26/03/2017, 27/03/2017, 28/03/2017, 29/03/2017, 30/03/2017, 31/03/2017]

我不知道这样对不对,但我是在变量中玩:

var dates= [
            <c:forEach var="a" items="${getDates}" varStatus="s">
            ['${a}'],
            </c:forEach>
            ];

和:

var sales= [
   <c:forEach var="b" items="${getSales}" varStatus="s">
     [${b}],
   </c:forEach>
];

我想输入这段代码,但我不能:

<script type="text/javascript">
      google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Dates', 'Sales'],
          for (var i = 0; i <= dates.length; i++) {
            [dates[i], sales[i]],
}
        ]);

        var options = {
          title: 'Company Performance',
          curveType: 'function',
          legend: { position: 'bottom' }
        };

        var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));

        chart.draw(data, options);
      }
    </script>

这是逻辑吗?我不知道如何解决它。你能帮帮我吗?

最佳答案

不能将 for 语句放在对 arrayToDataTable 的方法调用中

相反,首先创建DataTable,然后添加行,

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

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

function drawChart() {
  var sales = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  var dates = ['01/03/2017', '02/03/2017', '03/03/2017', '04/03/2017', '05/03/2017', '06/03/2017', '07/03/2017', '08/03/2017', '09/03/2017', '10/03/2017', '11/03/2017', '12/03/2017', '13/03/2017', '14/03/2017', '15/03/2017', '16/03/2017', '17/03/2017', '18/03/2017', '19/03/2017', '20/03/2017', '21/03/2017', '22/03/2017', '23/03/2017', '24/03/2017', '25/03/2017', '26/03/2017', '27/03/2017', '28/03/2017', '29/03/2017', '30/03/2017', '31/03/2017'];

  var data = new google.visualization.DataTable();
  data.addColumn('string', 'x');
  data.addColumn('number', 'y');

  for (var i = 0; i < dates.length; i++) {
    data.addRow([dates[i], sales[i]]);
  }

  var options = {
    chartArea: {
      bottom: 60
    },
    title: 'Company Performance',
    curveType: 'function',
    legend: { position: 'bottom' }
  };

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


注意:问题中发布的Dates 数组看起来有点可疑

它应该看起来更像上面片段中的那个

如果您想要一个实际的 'date' 而不是 'string'

你需要构建这样的东西......

var dates = [new Date('01/03/2017'), new Date('02/03/2017'), new Date('03/03/2017'), ...

关于javascript - 将两个数组放在谷歌图表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42951213/

相关文章:

javascript - 如何将 css 样式嵌入到打印预览中

charts - 向谷歌散点图添加标签

charts - 如何在 flutter 中制作动态图表?

c# - ASP 图表控件 - 图表标题 CSS 类名

javascript - Internet Explorer 8 中的堆叠条形图谷歌可视化 'null or not an object'

javascript - Flowplayer,Javascript,捕获点击事件?

javascript - 刷新后保持折叠状态

javascript - 我想在 Linkbutton 上调用 javascript pop up,但它回发页面并且弹出窗口消失

javascript - Google Charts BarChart OnClick 或 OnSelect

javascript - Google Charts 图例未正确显示