[解決済み] Googleの折れ線グラフを描画すると、curveTypeが設定されず、アニメーションが期待通りに動作しない
質問
googleの折れ線グラフを描いているのですが、うまくいきます。チャートは正しいデータで描画されます。しかし、curveTypeのオプションを変更しようとすると、'function'オプションが直線から曲線に変更されません。また、アニメーション関数も全く機能しません。何か見落としているのでしょうか?これは私のコードです。
google.charts.load('current', {
'packages': ['line']
});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Number']
, ['2005', 61372]
, ['2006', 65425]
, ['2007', 71389]
, ['2008', 75173]
, ['2009', 75554]
, ['2010', 75174]
, ['2011', 74033]
, ['2012', 72225]
, ['2013', 68954]
, ['2014', 67462]
, ])
};
var options = {
animation:{
duration: 1000,
easing: 'out',
}, curveType: 'function'
, smoothline: 'true'
, width: 875
, height: 400
, legend: {position: 'none'}
};
var chart = new google.charts.Line(document.getElementById('number_chart'));
chart.draw(data, options);
}
解決方法は?
上記のコードにいくつかのエラーがありますが、より大きなブロックコードからのカットアンドペーストが原因でしょうか?
しかし、それはさておき、これらの機能が動作しない根本的な原因は
'line'
を読み込んでいるパッケージと
google.charts.Line(...)
オブジェクトを使用することで、Google が言うところの
マテリアルチャート
. これは Google Visualization API の実装を Google の "Material Design" 仕様に準拠して完全に再設計したもので、現在まだベータ版です (詳細はこちら)。
こちら
). クラシックと呼ばれるチャート・ライブラリの機能の多くは、まだマテリアルデザイン・チャートには引き継がれていません (
このGithubの問題
と注意書きがあります。
animation.*
と
curveType
はいずれも現在未対応です。
とにかく、以下のように古い(しかしサポートはずっと良い)Google Visualization "Classic" corechart パッケージを使うことで問題を解決することができます。
/* Load "Classic" Google Visualization API corechart package */
google.charts.load('current', {
'packages': ['corechart']
});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Number'],
['2005', 61372],
['2006', 65425],
['2007', 71389],
['2008', 75173],
['2009', 75554],
['2010', 75174],
['2011', 74033],
['2012', 72225],
['2013', 68954],
['2014', 67462],
]);
var options = {
animation: {
startup: true, /* Need to add this for animations */
duration: 1000,
easing: 'out',
},
curveType: 'function',
//smoothline: 'true', /* What does this do? */
//width: 875, /* Better to specify size of containing DIV? */
//height: 400,
legend: {
position: 'none'
},
vAxis:{ /* You may wish to add this to make curve animations appear from the bottom of the chart */
baseline: 60000,
}
};
/* Create instance of "Classic" Visualization Line Chart */
var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
chart.draw(data, options);
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div id="curve_chart"></div>
お役に立てれば幸いです。
アダム
追記編集しました。なぜか、埋め込まれた "Run Code Snippet" でチャートが実行されないのですが (Win 7 で最新の Chrome を使用しています)、コードは他の場所で問題なく動作するはずです。
関連
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】Angular JS Uncaught Error。[インジェクター:モジュラー]。
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み] テスト
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】エラー:リクエストのエンティティが大きすぎる
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】Failed to load resource: net::ERR_FILE_NOT_FOUND loading json.js
-
[解決済み] 解決済み】clearInterval()が動作しない [重複] [重複]
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】BootstrapのCollapseが折りたたまれない
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み】React-Routerの子が1つしかない。
-
[解決済み】Kendo Observable Bindingと併用する場合、Kendo Switch Labelsを変更することは可能ですか?[Kendo-UI]です。
-
[解決済み】JavaScriptで関数が存在するかどうかを確認する方法は?