使用谷歌图表动态调整条形图的大小

时间:2011-08-28 21:14:48

标签: javascript dynamic graph

这只是一个快速的但我无法找到我需要解决的问题。任何帮助表示赞赏。

在Google图表游乐场中间大约一半(我认为第48行)有一个宽度变量。它似乎默认设置为像素。

有没有办法将它设置为动态,以便宽度延伸到页面的整个长度?

或者我最好用jscript查找页面的整个宽度,然后将其传递到宽度字段?

2 个答案:

答案 0 :(得分:1)

您应该读取页面宽度并动态生成宽度值。 Graph API非常具有脑死亡能力(但非常棒)而且只是做了它所说的。

答案 1 :(得分:1)

我不认为一旦图表呈现就会改变图表的宽度或高度,因为它使用了您无法访问的iFrame,尽管您可以重新绘制图表(如果页面)宽度/高度变化。

下面是我用来根据它包含div的宽度和/或高度生成图表的代码。

此函数用户Jquery.com的width()/ height()

<pre>
// Draws Google Chart inside a pre-existing chart_id 
render_chart = function(chart_id, chartType, data, options) {
    // Create and populate the data table.
    var gData = google.visualization.arrayToDataTable(data);

    // Special full width over-ride flag
    if(options.width == '*') {
        // Set chart width to it's containing Div's width';
        options.width = $('#'+chart_id).width();
        // Set height equal to width
        if(options.height == 'width') options.height = options.width;
    }

    // Special full height over-ride flag
    if(options.height == '*') {
        // Set chart height to it's containing Div's width';
        options.height = $('#'+chart_id).height();
        // Set width equal to height
        if(options.width == 'height') options.width = options.height;
    }

    // Create and draw the visualization.
    new google.visualization[chartType](document.getElementById(chart_id)).draw(gData, options);
}
</pre>