前提・実現したいこと
現在、タスク管理APPを作成しているのですが、その中でchart.jsのtooltipsを使って数字を時間に変換しているのですが、
tooltips内で引数の受け取り方が分からず、label(項目)が「undefined」になってしまっているので、もともとのラベルの表示をしたいです。
発生している問題・エラーメッセージ
画像の中段がlabel、下段がNaNとなってしまっています。
コードの中の「//★★★」で印をつけた部分で引数を受け取れるデータの書き方がわかりません。
該当のソースコード
var chartFunc1 = function() { var ctx = chartEl1.getContext('2d'); chart = new Chart(ctx, { type : 'doughnut', data : { labels: ['Jan', 'Feb', 'Mar'], datasets: [{ label: 'dataset', data: [130, 250, 20], backgroundColor: [ 'rgb(153, 102, 255)', 'rgb(255, 205, 86)', 'rgb(54, 162, 235)' ], }], }, options : { cutoutPercentage: 50, legend : { labels : { fontColor : "#0049A3", fontSize : 14, }, }, animation: { duration: 5000, animateRotate: true, animateScale: true }, tooltips: { callbacks: { title: (tooltipItem, data) => { return `My Title`; }, label: (tooltipItem, data) => { //時間を計算する let time_label = Math.floor(`${(data.datasets[0].data[tooltipItem.index] / 60)}`) + ":" + ('00' + `${(data.datasets[0].data[tooltipItem.index] % 60)}`).slice(-2); return `${tooltipItem.label}: ${time_label}`; //★★★ ここの引数の値がわからない }, footer: function(tooltipItem, data) { let total = 0 // 合計格納 let indexItem = data.datasets[0].data[tooltipItem.index] // マウスを当てたデータ // 全データの合計算出 data.datasets[0].data.forEach(item => { total += item }) // パーセント表示 ★★★ ここの引数の値がわからない return data.datasets[0].data[tooltipItem.label] + Math.round(indexItem / total * 100) + ' %' }, }, }, } }); };
試したこと
・公式サイトを見ながらdata.datasets[0].data[tooltipItem.label]の思い当たるコードをlabelに関わりそうなコードを複数試したのですが、答えが分かりませんでした。
https://misc.0o0o.org/chartjs-doc-ja/configuration/tooltip.html#%E4%BD%8D%E7%BD%AE%E3%83%A2%E3%83%BC%E3%83%89
こちらの解決方法お分かりになられる方いらっしゃいましたら、ご教授願います。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
chart.js 2.7.2を使用
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/23 04:18
退会済みユーザー
2021/05/23 05:50
2021/05/23 06:54