teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

2021/05/23 05:53

投稿

退会済みユーザー
answer CHANGED
@@ -43,7 +43,7 @@
43
43
  1. 上記コードのうち、label:の直下でコメントになっているconsole.log~2行の行頭コメント//を外しておきます。
44
44
  2. ページを更新してグラフをブラウザに表示させます。
45
45
  3. ブラウザのDeveloper toolsを表示させConsoleウィンドウを表示します。
46
- 4. 図のように、グラフの**黄色**のエリアにマウポインタを当てます。 (黄色は「Feb」つまり2番目のデータ)
46
+ 4. 図のように、グラフの**黄色**のエリアにマウポインタを当てます。 (黄色は「Feb」つまり2番目のデータ)
47
47
  ![イメージ説明](db5dae13071ca2f60dd8d76c9ad3aadf.png)
48
48
   
49
49
  5. このとき直近のConsoleウィンドウにログがずらずら表示されますが、**一番下の2行**に注目します。(図)
@@ -70,10 +70,10 @@
70
70
  ![イメージ説明](2a233f91188c6f76c47dc4ff1a24bd14.png)
71
71
  ![イメージ説明](a857ab072e46c1cd1b45912f22b2c28c.png)
72
72
 
73
- 10.したがって、さきほどの配列labelsのインデックス()には、tooltipItem.index を書けばよいことがわかります。
73
+ 10.したがって、さきほどの配列data.labelsのインデックスには、tooltipItem.index を指定すればよいことがわかります。
74
74
 
75
75
  11.上記をまとめると
76
76
  ```
77
77
  data.labels[tooltipItem.index]
78
78
  ```
79
- と書けば、それぞれのエリアに対応したラベル(Jan,Feb,Mar)にアクセスできることがわかります。
79
+ と書けば、それぞれのエリアに対応したラベル("Jan","Feb","Mar")にアクセスできることがわかります。

2

追記

2021/05/23 05:53

投稿

退会済みユーザー
answer CHANGED
@@ -5,11 +5,15 @@
5
5
  return `My Title`;
6
6
  },
7
7
  label: (tooltipItem, data) => { //時間を計算する
8
+ + // console.log("tooltipItem", tooltipItem);
9
+ + // console.log("data", data);
8
10
  let time_label = Math.floor(`${(data.datasets[0].data[tooltipItem.index] / 60)}`) + ":" + ('00' + `${(data.datasets[0].data[tooltipItem.index] % 60)}`).slice(-2);
9
11
  - return `${tooltipItem.label}: ${time_label}`; //★★★ ここの引数の値がわからない
10
12
  + return `${data.labels[tooltipItem.index]}: ${time_label}`;
11
13
  },
12
14
  footer: function(tooltipItem, data) {
15
+ + // console.log("footer:tooltipItem", tooltipItem);
16
+ + // console.log("footer:data", data);
13
17
  let total = 0 // 合計格納
14
18
  - let indexItem = data.datasets[0].data[tooltipItem.index] // マウスを当てたデータ
15
19
  + let indexItem = data.datasets[0].data[tooltipItem[0].index] // マウスを当てたデータ
@@ -25,9 +29,51 @@
25
29
 
26
30
  },
27
31
  ```
28
-
32
+ ------
29
33
  調べる方法として、
30
34
  label: (tooltipItem, data)
31
35
  等の直後に
36
+ ```
37
+ console.log("tooltipItem", tooltipItem);
32
- `console.log(tooltipItem, data);`
38
+ console.log("data", data);
39
+ ```
33
- と入れて、ブラウザのDevelopers Toolのconsoleウィンドウを見ます。
40
+ と入れて、ブラウザのDevelopers Toolのconsoleウィンドウを見ます。
41
+
42
+ 例)
43
+ 1. 上記コードのうち、label:の直下でコメントになっているconsole.log~2行の行頭コメント//を外しておきます。
44
+ 2. ページを更新してグラフをブラウザに表示させます。
45
+ 3. ブラウザのDeveloper toolsを表示させConsoleウィンドウを表示します。
46
+ 4. 図のように、グラフの**黄色**のエリアにマウシポインタを当てます。 (黄色は「Feb」つまり2番目のデータ)
47
+ ![イメージ説明](db5dae13071ca2f60dd8d76c9ad3aadf.png)
48
+  
49
+ 5. このとき直近のConsoleウィンドウにログがずらずら表示されますが、**一番下の2行**に注目します。(図)
50
+  ![イメージ説明](c9a66a076502815199444289ea226c29.png)
51
+  
52
+ 6. 「toolTipItem」 と 「data」それぞれの右隣りの三角形をクリックして展開し、下図のような状態にします。
53
+ [toolTipItem]
54
+
55
+  ![イメージ説明](00ed0e41e8218bfae08c1fec9daefd0d.png)
56
+ [data]  (datasets とその中の 0 および labelsを展開する)
57
+  ![イメージ説明](24b82196bf156945e8d6092b5bcb0edd.png)
58
+
59
+  
60
+ 7. 今回、黄色エリアのラベルとして取得したいのは、「Feb」というラベル表示です。
61
+ 先ほど展開したオブジェクトを見ると、data の中で"Feb"という表示を持っている場所は、
62
+ data -> labels という配列の中の インデックス 1 であることが分かります。
63
+ したがって、コード中で「data.labels[1] 」と書けば「Feb」と表示できるはずです。
64
+  ![イメージ説明](97c009d278cb740ac634a9fbefed2a50.png)
65
+  
66
+ 8. この「1」というインデックスは、マウスをポイントするエリアに合わせて切り替えないといけません。(仮にコード中に return data.labels[1] と書いてしまうと 全てのエリアで「Feb」と表示されてしまいます)したがって、あとは**ポイントしたエリア毎に変化するindex値**がどこにあるかを探せばよい、ということになります。
67
+
68
+ 9. マウスを動かして色々試すことで、**tooltipItemの中の「index」**が、このエリア毎に変化するindex値に対応していることが分かります。
69
+ ![イメージ説明](967278921cd7fb540ad5f23e237c238a.png)
70
+ ![イメージ説明](2a233f91188c6f76c47dc4ff1a24bd14.png)
71
+ ![イメージ説明](a857ab072e46c1cd1b45912f22b2c28c.png)
72
+
73
+ 10.したがって、さきほどの配列labelsのインデックス()には、tooltipItem.index を書けばよいことがわかります。
74
+
75
+ 11.上記をまとめると
76
+ ```
77
+ data.labels[tooltipItem.index]
78
+ ```
79
+ と書けば、それぞれのエリアに対応したラベル(Jan,Feb,Mar)にアクセスできることがわかります。

1

2021/05/23 05:48

投稿

退会済みユーザー
answer CHANGED
@@ -27,7 +27,7 @@
27
27
  ```
28
28
 
29
29
  調べる方法として、
30
- callbacks:{
30
+ label: (tooltipItem, data)
31
- の直後に
31
+ の直後に
32
32
  `console.log(tooltipItem, data);`
33
33
  と入れて、ブラウザのDevelopers Toolのconsoleウィンドウを見ます。