• 締切済み

chartjsでグラフを選択制にしたい

chartjsで折れ線グラフを作成しています。 凡例をクリックするとグラフが表示・非表示と切り替わるように、セレクトボックスの選択で表示・非表示を切り替えたいです。 ご教授ください。 よろしくお願いいたします。 下記、現在のコードです。 HTML <select multiple="multiple" name="accessCount" class="select-block" title="アクセス数"> <option value="0">サンプル1</option> <option value="1">サンプル2</option> <option value="2">サンプル3</option> <option value="3">サンプル4</option> </select> <canvas id="chart-line" style="max-width: none"></canvas> js ※文字数上、datasetsの諸々の設定は省略してあります。 var data = { labelsY: ["01\/28 12:00","01\/29 00:00","12:00","01\/30 00:00","12:00"], sample1: [2,0,0,0,0], sample2: [1,0,0,0,0], sample3: false, sample4: false }; var lineData = { labels : data.labelsY, datasets: [ { label: "サンプル1", data: data.sample1, yAxisID: "leftNumberOfPeopleYaxis" }, { label: "サンプル2", data: data.sample2, yAxisID: "leftNumberOfPeopleYaxis" }, { label: "サンプル3", data: data.sample3, yAxisID: "leftNumberOfPeopleYaxis" }, { label: "サンプル4", data: data.sample4, yAxisID: "leftNumberOfPeopleYaxis" }, ], }; var ctx2 = document.getElementById("chart-line").getContext("2d"); var myLineChart = new Chart(ctx2,{ type: 'line', data: lineData, options: { legend: { display: false } }, scales: { xAxes: [ { ticks: { autoSkip: false, } } ], yAxes: [ { id: 'leftNumberOfPeopleYaxis', type: 'linear', position: 'left', scaleLabel: { display: true, labelString: 'アクセス数', }, ticks: { beginAtZero: true, callback: function(value) {if (value % 1 === 0) {return value;}} } }, { id: 'rightTimeYaxis', type: 'linear', position: 'right', scaleLabel: { display: true, labelString: '待機時間', }, ticks: { beginAtZero: true, callback: function(value) {if (value % 1 === 0) {return value;}} } }, ] } } });

みんなの回答

回答No.5

変数chartjsは環境に合わせて変更してください。 let select = document.querySelector(".select-block"); select.addEventListener('change',() =>{ for (let i = 0; i < select.length; i++) { try{ let meta = chartjs.getDatasetMeta(i); if (select[i].selected) meta.hidden = true; else meta.hidden = false; }catch(e){ // } } chartjs.update(); });

  • doraneko66
  • ベストアンサー率11% (535/4742)
回答No.4

それ。。。 JavaScript基礎から、勉強した方が良いですよ。 どのプログラミングでも、そう言うことあるんで 組み合わせて使えないってことは、プログラムで 機能とか作れませんよ。。。

  • doraneko66
  • ベストアンサー率11% (535/4742)
回答No.3

onClickと同じようにonChangeというのがあるので mdnとかで調べて見てください。

riisasa
質問者

補足

調べてみましたがchartjsとの組み合わせて使う方法がやっぱり分からず。。。 初心者の質問で申し訳ないです。。

  • doraneko66
  • ベストアンサー率11% (535/4742)
回答No.2

クリック処理とセレクトボックス切り替え時の処理は、どこに書いてあるのでしょうか?

riisasa
質問者

補足

凡例をクリックして表示・非表示に切り替える処理は、Chart.jsのファイルにもともとあるようです。 https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.min.js セレクトボックスでの切り替え処理については、その方法が知りたいのです。

  • doraneko66
  • ベストアンサー率11% (535/4742)
回答No.1

どこにchange後の処理が書いてあるのでしょうか?

riisasa
質問者

補足

change後の処理とはどういう事でしょうか? 素人で申し訳ないです。。

関連するQ&A

専門家に質問してみよう