首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌图表(图表)

谷歌图表(图表)
EN

Stack Overflow用户
提问于 2018-02-07 05:43:11
回答 1查看 79关注 0票数 2

我试图根据用户选择的年份显示表格图表。我无法遍历这些数据。

代码语言:javascript
复制
function drawTable() {

    year = document.getElementById("thedropdown").value; 

    var data = new google.visualization.DataTable();
    data.addColumn('string','YEAR');
    data.addColumn('number', 'JAN');
    data.addColumn('number', 'FEB');
    data.addColumn('number', 'MAR');
    data.addColumn('number', 'APR');
    data.addColumn('number', 'MAY');
    data.addColumn('number', 'JUNE');
    data.addColumn('number', 'JULY');
    data.addColumn('number', 'AUG');
    data.addColumn('number', 'SEP');
    data.addColumn('number', 'OCT');
    data.addColumn('number', 'NOV');
    data.addColumn('number', 'DEC');
    data.addRows([
      ['2005',15000,20100,54637,27384,84958,43526,54637,82939,94857,53647,36456,87382],
      ['2006',13500,35464,24536,64738,53426,26373,53426,72634,53425,72837,63526,72839],
      ['2007',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
      ['2008',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
      ['2009',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
      ['2010',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
      ['2011',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
      ['2012',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
      ['2013',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
      ['2014',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],      
    ]);


    var table = new google.visualization.Table(document.getElementById('table_div'));

我只想显示用户选择的年份从一月到十二月的值。如果用户选择ALL,则显示整个表。帮我摆脱这一切。

我的Html部分:

代码语言:javascript
复制
<form  action="#" id="form1" name="form1" onchange="drawChart()" >
    <select id="thedropdown">
        <option value="2005">2005</option>
        <option value="2006">2006</option>
    </select>
</form>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-07 12:23:02

你不需要循环,

您可以使用数据表方法--> getFilteredRows

若要创建筛选过的数据视图,请执行以下操作。

代码语言:javascript
复制
var view = new google.visualization.DataView(data);
if (year !== 'All') {
  view.setRows(data.getFilteredRows([{
    column: 0,
    value: year
  }]));
}

然后用视图绘制图表..。

代码语言:javascript
复制
google.charts.load('current', {
  packages:['table']
}).then(function () {
  var data = new google.visualization.DataTable();
  data.addColumn('string','YEAR');
  data.addColumn('number', 'JAN');
  data.addColumn('number', 'FEB');
  data.addColumn('number', 'MAR');
  data.addColumn('number', 'APR');
  data.addColumn('number', 'MAY');
  data.addColumn('number', 'JUNE');
  data.addColumn('number', 'JULY');
  data.addColumn('number', 'AUG');
  data.addColumn('number', 'SEP');
  data.addColumn('number', 'OCT');
  data.addColumn('number', 'NOV');
  data.addColumn('number', 'DEC');
  data.addRows([
    ['2005',15000,20100,54637,27384,84958,43526,54637,82939,94857,53647,36456,87382],
    ['2006',13500,35464,24536,64738,53426,26373,53426,72634,53425,72837,63526,72839],
    ['2007',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
    ['2008',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
    ['2009',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
    ['2010',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
    ['2011',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
    ['2012',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
    ['2013',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
    ['2014',17567,25000,64738,83748,62536,35467,53647,54636,65748,93894,24356,21000],
  ]);
  var table = new google.visualization.Table(document.getElementById('table_div'));
  selectYear = document.getElementById('thedropdown');
  selectYear.addEventListener('change', drawChart, false);
  drawChart();

  function drawChart() {
    var year = selectYear.value;
    var view = new google.visualization.DataView(data);
    if (year !== 'All') {
      view.setRows(data.getFilteredRows([{
        column: 0,
        value: year
      }]));
    }
    table.draw(view);
  }
});
代码语言:javascript
复制
<script src="https://www.gstatic.com/charts/loader.js"></script>
<select id="thedropdown">
  <option value="All" selected>All</option>
  <option value="2005">2005</option>
  <option value="2006">2006</option>
  <option value="2007">2007</option>
  <option value="2008">2008</option>
  <option value="2009">2009</option>
</select>
<div id="table_div"></div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48656735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档