🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

24469閲覧

chart.jsでグラフのデータを動的に切り替えるにはどのようにすれば良いでしょうか?

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

2クリップ

投稿2019/10/09 12:14

編集2019/10/21 13:30

chart.jsで棒グラフを描写しました。

html

1<script> 2var ctx = document.getElementById("BarChart").getContext("2d"); 3var chart = new Chart(ctx, { 4 type: "bar", 5 data:{ 6 labels:["1月","2月","3月"], 7 datasets:[{ 8 data:[4,5,9] 9 }] 10 }, 11 options:{} 12}); 13</script>

これに例えば、

html

1 data:{ 2 labels:["2000年","2001年","2002年"], 3 datasets:[{ 4 data:[41,34,52] 5 }] 6 },

というデータを追加し、それをクリック等で切り替えられるようにしたいです。
どのようなコードを記述すれば実現出来るのでしょうか?

html

1<script> 2 var ctx = document.getElementById("BarChart").getContext('2d'); 3 var DiskChart = new Chart(ctx, { 4 type: 'bar', 5 data: { 6 labels: ["2018/9", "2018/10", "2018/11"], 7 datasets: [ 8 { 9 label: "しめじ", 10 data: [20, 26, 12], 11 }, 12 { 13 label: "えのき", 14 data: [28, 22, 32], 15 }, 16 17 { 18 label: "しいたけ", 19 data: [15, 23, 15], 20 }, 21 ] 22 }, 23 options: { 24 scales: { 25 xAxes: [{ 26 stacked: true, 27 }], 28 yAxes: [{ 29 stacked: true, 30 }], 31 } 32 } 33}); 34</script>

html

1<script> 2 var ctx = document.getElementById("BarChart").getContext('2d'); 3 var DiskChart = new Chart(ctx, { 4 type: 'bar', 5 data: { 6 labels: ["2018/9", "2018/10", "2018/11"], 7 datasets: [ 8 { 9 label: "リンゴ", 10 data: [20, 26, 12], 11 }, 12 { 13 label: "みかん", 14 data: [28, 22, 32], 15 }, 16 17 { 18 label: "ぶどう", 19 data: [15, 23, 15], 20 }, 21 ] 22 }, 23 options: { 24 scales: { 25 xAxes: [{ 26 stacked: true, 27 }], 28 yAxes: [{ 29 stacked: true, 30 }], 31 } 32 } 33}); 34</script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/14 14:36 編集

回答文にコメントしました。
guest

回答1

0

ベストアンサー

こんにちは

var chart = new Chart(ctx, ・・・{ で作成した変数 chart を使って

javascript

1chart.data.labels = ["2000年","2001年","2002年"]; 2chart.data.datasets[0].data = [41,34,52];

としておいて、 chart.update() で、更新が反映されます。

以下、サンプルです。ボタンをクリックするとデータとラベルを切り替えます。

以上、参考になれば幸いです。

投稿2019/10/12 01:30

jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/14 14:35

こんばんは。アドバイスありがとうございます。 お返事が遅れてしまい、大変申し訳ございません。 とても勉強になります。 もう一つお聞きしたいのですが、例えば、全く繋がりのないグラフを切り替える際は何か良い方法はないでしょうか? 単純にタブやクリックでhtmlを入れ替えるという方法もあるかと思いますが、これだけページを開いた時に、同時に読み込んでしまうため、パフォーマンス的にもよろしくないかと思い質問させて頂きました。
jun68ykt

2019/10/18 12:14

こんにちは > 全く繋がりのないグラフを切り替える際は何か良い方法はないでしょうか? とのことですが、おっしゃっている、「全く繋がりのないグラフ」とは、具体的には、 たとえば 一方のグラフはLineチャートで、もう一方はRadarチャートで、データもラベルも全く違う2つのグラフ というものを想定すればよいでしょうか?
退会済みユーザー

退会済みユーザー

2019/10/19 10:06

返信遅れてしまい申し訳ありません。 その通りでございます。
jun68ykt

2019/10/19 15:45

方法を調べたところ、stackoverflowの以下の投稿 Chart.js: Dynamic Changing of Chart Type (Line to Bar as Example) https://stackoverflow.com/questions/36949343/ のベストアンサーになっている下記の回答 https://stackoverflow.com/a/36988676 の回答者が作成した以下のサンプル https://jsfiddle.net/ta9ogpvj/1/ が参考になるかもしれません。これを参考に、BARチャートと PIEチャートを切り替えるサンプルを作成してみました。以下です。 https://codepen.io/jun68ykt/pen/BaaQWWB
退会済みユーザー

退会済みユーザー

2019/10/21 13:29

アドバイスありがとうございます。とても助かります。 もう一点お聞きしたいのですが、例えば積立グラフのような場合はどのようにして、chart.update()を使えば良いのでしょうか? 参考までにサンプルコードを質問文に載せて起きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問