【问题标题】:Updating Google Chart dynamically with PHP and JavaScript使用 PHP 和 JavaScript 动态更新 Google Chart
【发布时间】:2010-12-15 18:24:34
【问题描述】:

我有一个在页面加载时填充的 Google 图表(使用 Google Visualization API,而不是 Google Charts API)。之后,用户可以从多个下拉菜单中选择选项。我希望用户能够根据他们的选择更新 Google 图表。

我已经创建了 PHP 代码以通过 MySQL 获取新数据 - 在用户选择各种选项之后。

问题:我是否需要替换当前图表?还是应该创建一个 JavaScript 函数来更新图表?

这是我的 Google Chart JavaScript 代码:

google.load("visualization", "1", {packages:["columnchart"]});
google.setOnLoadCallback(drawChart);

function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('string', 'Cluster');
  data.addColumn('number', 'Loans');
  data.addColumn('number', 'Lines');

/* create for loops to add as many columns as necessary */

var len = (encoded_cluster_name.length)-27; // encoded_line_volume.length;

  data.addRows(len);

for(i=0; i<len; i++) {

        var lines = (encoded_line_volume[i])/100000;
    var loans = (encoded_loan_volume[i])/100000;

data.setValue(i, 0, ' '+encoded_cluster_name[i]+' ');       /* x-axis */
data.setValue(i, 1, loans);             /* Y-axis category #1*/
data.setValue(i, 2, lines);             /* Y-axis category #2*/
}

/*********************************end of loops*****/

  var chart = new google.visualization.ColumnChart(
                document.getElementById('chart_div'));
  chart.draw(data, {
                    width: 600,
                    height: 300,
                    is3D: true,
                    title: 'Prospect Population',
                    legend: 'right'
                   });
}

【问题讨论】:

    标签: php dynamic charts google-visualization


    【解决方案1】:

    我只会更新数据而不是替换图表。并请求重绘图表。

    您可以修改playground example 进行测试。
    它看起来像这样:

    function drawVisualization() {
      // Create and populate the data table.
      var data = new google.visualization.DataTable();
      data.addColumn('string', 'Name');
      data.addColumn('number', 'Height');
      data.addRows(3);
      data.setCell(0, 0, 'Tong Ning mu');
      data.setCell(1, 0, 'Huang Ang fa');
      data.setCell(2, 0, 'Teng nu');
      data.setCell(0, 1, 174);
      data.setCell(1, 1, 523);
      data.setCell(2, 1, 86);
    
      // Create and draw the visualization.
      var v=new google.visualization.ColumnChart(
              document.getElementById('visualization')
            );
      v.draw(data, null);
      // Pretend update data triggered and processed
      data.setCell(2, 1, 860);
      v.draw(data, null);
    }
    ​
    

    【讨论】:

    • dlamblin,感谢您回答我的问题。我欠你一个! brussels0828
    • 不客气,该游乐场链接应该在 URL 的 # 部分包含 _ 未编码(如 %5F)。但是帖子会因降价而被过滤。此评论中的链接应该有效:code.google.com/apis/ajax/playground/…
    • @dlamblin 我将您的代码粘贴到 Playground 并点击播放,但它什么也没做......有什么想法吗?哈哈。
    • @Shackrock 如果我转到code.google.com/apis/ajax/playground/… 并将代码粘贴到我的答案中,然后按“运行代码”,它对我有用。
    • 动态添加一行而不只是改变图表数据怎么样?我需要这个注释图表,以显示数据如何实时变化。我按照这里的建议做了,但给出了错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    相关资源
    最近更新 更多