グーグルチャートのサイズをパーセンテージで設定するにはどうすればよいですか?これはhtmlにあります:
<div id="chart_div" width="90%" height="20%"></div>
また、jsのオプションには幅も高さもありません。
ただし、グラフのサイズはビューポートに適合しません。
まず、属性ではなくスタイルを使用してディメンションを設定します。
<div id="chart_div" style="width: 90%; height: 20%;"></div>
デフォルトでは、チャートはdivのサイズで描画されますが、チャートは反応しません。チャートを再描画するウィンドウ(またはウィンドウ内でサイズを変更する場合は他の要素)に「サイズ変更」イベントハンドラーをフックする必要があります。
function resizeChart () {
chart.draw(data, options);
}
if (document.addEventListener) {
window.addEventListener('resize', resizeChart);
}
else if (document.attachEvent) {
window.attachEvent('onresize', resizeChart);
}
else {
window.resize = resizeChart;
}
チャートオプションで$(window).width()または$(window).height()に適切な係数を掛けることにより
var options = {
width: $(window).width(),
height: $(window).height()*0.75
};
上記の回答のように、正しいCSSを使用してスタイル設定することをお勧めします。これにより、グリッチの少ないチャートが作成されます。ただし、Javascriptでサイズを変更できます...
https://developers.google.com/chart/interactive/docs/basic_customizing_chart
そのため、チャートを描画するときのオプションについて(上記のchart.draw(data, options)
を使用)...
var options = {
width:400,
height:300
}
レスポンシブデザインの良いフィドルはこちらです...
http://jsfiddle.net/toddlevy/pyAz5/
$(window).resize(function(){
var container = document.getElementById("chart_div").firstChild.firstChild;
container.style.width = "100%";
chart.draw(data, options);
});
スクリプトのオプションから幅と高さのプロパティを削除し、次のスタイルをページに追加してください
<style>
.chart {
width: 100%;
min-height: 450px;
}
.row {
margin: 0 !important;
}
</style>