質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Chart.js

Chart.jsは、多様なグラフを組み込めるJavaScriptのライブラリ。折れ線グラフや棒グラフ、円グラフ、レーダーチャートなどのグラフの種類が用意されています。HTML5のCanvasを用いて描画され、マークアップも分かりやすく、簡単に編集することが可能です。

JavaScript

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

Q&A

1回答

2407閲覧

chart.jsで特定のデータセットだけにデータを追加したい。

Damaku_ProG

総合スコア29

Chart.js

Chart.jsは、多様なグラフを組み込めるJavaScriptのライブラリ。折れ線グラフや棒グラフ、円グラフ、レーダーチャートなどのグラフの種類が用意されています。HTML5のCanvasを用いて描画され、マークアップも分かりやすく、簡単に編集することが可能です。

JavaScript

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

0グッド

0クリップ

投稿2020/10/23 08:02

現在chart.jsにて積み上げの棒グラフを作成しています。
引数を'My1'のデータセットのみに送りたいのですが、今のコードでは全てのデータセット('My1', 'My2')に値が追加されてしまします。
おそらく、下から5行目のforEachが間違っていると思うのですが、どう変えたらいいか分かりません。
ご回答の方、よろしくお願い致します。

javascript

1コード 2var ctx; 3var chart; 4function aaa(){ 5 6 bb(); 7 addData(chart, 1, 80, 'My1'); 8 9} 10 11function bb(){ 12 13 14 ctx = document.getElementById('stage').getContext('2d'); 15 chart = new Chart(ctx, { 16 // The type of chart we want to create 17 type: 'bar', 18 // The data for our dataset 19 data: { 20 labels: [], 21 datasets: [{ 22 label: 'My1', 23 borderWidth:0.1, 24 backgroundColor: 'rgb(255, 99, 132)', 25 borderColor: 'rgb(255, 99, 132)', 26 data: [] 27 }, 28 { 29 label: 'My2', 30 borderWidth:0.1, 31 backgroundColor: 'red', 32 borderColor: 'rgb(255, 99, 132)', 33 data: [] 34 } 35 ] 36 }, 37 38 // Configuration options go here 39 options: { 40 title: { 41 display: true, 42 text: '2016年図書館入館者数のご報告', //グラフの見出し 43 padding:3 44 }, 45 scales: { 46 xAxes: [{ 47 stacked: true, //積み上げ棒グラフにする設定 48 categoryPercentage:0.4 //棒グラフの太さ 49 }], 50 yAxes: [{ 51 stacked: true //積み上げ棒グラフにする設定 52 }] 53 }, 54 legend: { 55 labels: { 56 boxWidth:30, 57 padding:20 //凡例の各要素間の距離 58 }, 59 display: true 60 }, 61 tooltips:{ 62 mode:'label' //マウスオーバー時に表示されるtooltip 63 } 64 } 65}); 66 67} 68 69function addData(chart, labels, data, vvv) { 70 chart.data.labels.push(labels); 71 chart.data.datasets.forEach((dataset) => { 72 dataset.data.push(data); 73 }); 74 chart.update(); 75}

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

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

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

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

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

guest

回答1

0

chart.jsを使っているということはchartのデータ構造を変更せずにが前提だとして。

chart.data.datasetsは配列で、'My1'等はlabelプロパティとして持っているようなので、ちょっと強引だけどforEachの処理の中でlabelプロパティが合致するものだけ処理するという処理を入れればできるかも。

if (dataset.label == vvv)

とか。

投稿2020/11/01 20:17

tera82100202

総合スコア19

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問