在Google Charts中为相同的图表加载不同的数据源

时间:2013-01-05 05:59:40

标签: jquery google-visualization

整体问题:我在不同的JSON文件中有年度数据。对于每个JSON文件,我生成3个显示在网页上的图表。现在,用户应该能够选择不同的年份,并且图表应该根据特定年份的数据进行更新。

我做了什么:我写了一个名为initialize_charts()的函数,它解析给定的JSON,根据谷歌图表要求准备数据并绘制这些图表。我从google.setOnLoadCallback调用此函数。 (截至目前我已经硬编码了json文件名)。

主要问题:现在,我不确定当用户选择其他年份的JSON文件时如何重新呈现图表?不知何故,我应该能够将文件名参数传递给google.setOnLoadCallback或google.load,这样我的initialize_chart会读取这些新数据并重新呈现图表。但我不确定如何。

我尝试了什么:我尝试编写一个名为initialize的包装函数,如下所示:

google.setOnLoadCallback(initialize);

function initialize()
{
  initialize_charts("year1.json");
}

因此,当它首先加载时,它会加载year1.json数据。然后对于onclick事件,我调用onclick =“initialize_charts(”year2.json“)。但这不起作用。我认为图表(div元素)的占位符被图表本身所取代。所以,它不能找到那些占位符。

我非常感谢对此有任何帮助。如果您需要更多信息或我的代码,我很乐意提供。我在最近2天坚持这个: - (

1 个答案:

答案 0 :(得分:0)

解决了它。使用这段代码:

google.setOnLoadCallback(function() {
    initialize_charts('year1.json');
});

function initialize_charts(filename)
{
   ..... 
}

第一次加载后,如果必须更改数据源,只需使用其他一些json文件调用initialize_charts(例如:year2.json)