回答編集履歴

5

質問者が追加したコードの部分を追記

2021/02/12 04:35

投稿

miyabi_pudding
miyabi_pudding

スコア9555

test CHANGED
@@ -22,6 +22,38 @@
22
22
 
23
23
 
24
24
 
25
+ $('.single-slider').jRange({
26
+
27
+ from: 0,
28
+
29
+ to: 4.9,
30
+
31
+ step: 0.1,
32
+
33
+ scale: [0, 1, 2, 3, 4, 4.9],
34
+
35
+ format: '%s',
36
+
37
+ width: 300,
38
+
39
+ showLabels: true,
40
+
41
+ isRange: true,
42
+
43
+ onstatechange: function () {
44
+
45
+ $(".single-slider").trigger('change');
46
+
47
+ }
48
+
49
+ });
50
+
51
+
52
+
53
+ document.addEventListener('DOMContentLoaded', function () {
54
+
55
+
56
+
25
57
  var dataset0=[
26
58
 
27
59
  ['Labels','data'],
@@ -276,6 +308,10 @@
276
308
 
277
309
 
278
310
 
311
+ });
312
+
313
+
314
+
279
315
  </script>
280
316
 
281
317
  </head>

4

質問者の構文を省略せず記載

2021/02/12 04:35

投稿

miyabi_pudding
miyabi_pudding

スコア9555

test CHANGED
@@ -16,7 +16,163 @@
16
16
 
17
17
 
18
18
 
19
- // 前段省略(各変数定義)
19
+ // ライブラリロード
20
+
21
+ google.load('visualization', '1', {'packages':['corechart']});
22
+
23
+
24
+
25
+ var dataset0=[
26
+
27
+ ['Labels','data'],
28
+
29
+ [0.1,110],
30
+
31
+ [0.2,90],
32
+
33
+ [0.3,120],
34
+
35
+ [0.4,80],
36
+
37
+ [0.5,160],
38
+
39
+ [0.6,120],
40
+
41
+ [0.7,140],
42
+
43
+ [0.8,120],
44
+
45
+ [0.9,100],
46
+
47
+ [1 ,100],
48
+
49
+ [1.1,110],
50
+
51
+ [1.2,130],
52
+
53
+ [1.3,110],
54
+
55
+ [1.4,100],
56
+
57
+ [1.5,180],
58
+
59
+ [1.6,120],
60
+
61
+ [1.7,140],
62
+
63
+ [1.8,120],
64
+
65
+ [1.9,140],
66
+
67
+ [2 ,90],
68
+
69
+ [2.1,70],
70
+
71
+ [2.2,60],
72
+
73
+ [2.3,100],
74
+
75
+ [2.4,80],
76
+
77
+ [2.5,90],
78
+
79
+ [2.6,70],
80
+
81
+ [2.7,60],
82
+
83
+ [2.8,150],
84
+
85
+ [2.9,80],
86
+
87
+ [3 ,90],
88
+
89
+ [3.1,70],
90
+
91
+ [3.2,60],
92
+
93
+ [3.3,100],
94
+
95
+ [3.4,80],
96
+
97
+ [3.5,40],
98
+
99
+ [3.6,40],
100
+
101
+ [3.7,40],
102
+
103
+ [3.8,20],
104
+
105
+ [3.9,60],
106
+
107
+ [4 ,100],
108
+
109
+ [4.1,120],
110
+
111
+ [4.2,140],
112
+
113
+ [4.3,120],
114
+
115
+ [4.4,80],
116
+
117
+ [4.5,100],
118
+
119
+ [4.6,110],
120
+
121
+ [4.7,100],
122
+
123
+ [4.8,90]
124
+
125
+
126
+
127
+ ];
128
+
129
+
130
+
131
+ var dataset1= [
132
+
133
+ ['Labels','data'],
134
+
135
+ ["0〜0.5",500],
136
+
137
+ ["0.6〜1",600],
138
+
139
+ ["1.1〜1.5",550],
140
+
141
+ ["1.6〜2",700],
142
+
143
+ ["2.1〜2.5",400],
144
+
145
+ ["2.6〜3",450],
146
+
147
+ ["3.1〜3.5",400],
148
+
149
+ ["3.6〜4",200],
150
+
151
+ ["4.1〜4.5",400],
152
+
153
+ ["4.6〜5",550]
154
+
155
+ ];
156
+
157
+
158
+
159
+ var dataset2= [
160
+
161
+ ['Labels','data'],
162
+
163
+ ["0〜0.9",1100],
164
+
165
+ ["1〜1.9",1250],
166
+
167
+ ["2〜2.9",850],
168
+
169
+ ["3〜3.9",600],
170
+
171
+ ["4〜4.9",950]
172
+
173
+ ];
174
+
175
+
20
176
 
21
177
 
22
178
 

3

コメントを受けて、処理の順番などを変更

2021/02/12 02:19

投稿

miyabi_pudding
miyabi_pudding

スコア9555

test CHANGED
@@ -34,19 +34,19 @@
34
34
 
35
35
  case 0:
36
36
 
37
- data = google.visualization.arrayToDataTable(dataset0);
37
+ data = dataset0;
38
38
 
39
39
  case 1:
40
40
 
41
- data = google.visualization.arrayToDataTable(dataset1);
41
+ data = dataset1;
42
42
 
43
43
  case 2:
44
44
 
45
- data = google.visualization.arrayToDataTable(dataset2);
45
+ data = dataset2;
46
46
 
47
47
  default:
48
48
 
49
- data = google.visualization.arrayToDataTable(dataset0);
49
+ data = dataset0;
50
50
 
51
51
  }
52
52
 
@@ -80,9 +80,9 @@
80
80
 
81
81
  // 配列からデータの生成⇦ここにセットしております
82
82
 
83
- // 上記、switch構文にて代入ため、実行しない
83
+ // switch代入された変数を使っ定義すように変更
84
84
 
85
- // var data = google.visualization.arrayToDataTable(dataset0);
85
+ const dataSet = google.visualization.arrayToDataTable(data);
86
86
 
87
87
 
88
88
 
@@ -114,7 +114,7 @@
114
114
 
115
115
  // グラフの描画
116
116
 
117
- chart.draw(data, options);
117
+ chart.draw(dataSet, options);
118
118
 
119
119
  }
120
120
 

2

コールバック関数の処理も含めた回答に修正

2021/02/12 01:59

投稿

miyabi_pudding
miyabi_pudding

スコア9555

test CHANGED
@@ -24,9 +24,9 @@
24
24
 
25
25
  const selectElm = document.getElementById('example');
26
26
 
27
- // select要素が、変化する実行される
27
+ // 外側でも使う、処理を別枠で定義
28
28
 
29
- selectElm.onchange = function(){
29
+ const changeFunc = function(){
30
30
 
31
31
  // 選択しているoptionの値を使いたい場合は、this.value
32
32
 
@@ -54,7 +54,69 @@
54
54
 
55
55
 
56
56
 
57
+ // 初期値を適用させるために、実行
58
+
59
+ changeFunc.call(selectElm);
60
+
61
+
62
+
63
+ // select要素が、変化するたびに実行される
64
+
65
+ selectElm.onchange = changeFunc;
66
+
67
+
68
+
57
- // 後段省略(コールバック関数の部分)
69
+ // グラフを描画する為のコールバック関数を指定
70
+
71
+ google.setOnLoadCallback(drawChart);
72
+
73
+
74
+
75
+ // グラフの描画
76
+
77
+ function drawChart() {
78
+
79
+
80
+
81
+ // 配列からデータの生成⇦ここにセットしております
82
+
83
+ // 上記、switch構文にて代入しているため、実行しない
84
+
85
+ // var data = google.visualization.arrayToDataTable(dataset0);
86
+
87
+
88
+
89
+ // オプションの設定
90
+
91
+ var options = {
92
+
93
+ 'title':'全体',
94
+
95
+ 'is3D':true,
96
+
97
+ 'chartArea': {'height': '80%', 'width': '90%'},
98
+
99
+ 'hAxis': { title: '値', 'slantedText': false},
100
+
101
+ 'vAxis': { title: '人数' },
102
+
103
+ 'legend':'left',
104
+
105
+ };
106
+
107
+
108
+
109
+ // 指定されたIDの要素に棒グラフを作成
110
+
111
+ var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
112
+
113
+
114
+
115
+ // グラフの描画
116
+
117
+ chart.draw(data, options);
118
+
119
+ }
58
120
 
59
121
 
60
122
 

1

質問修正がされたので応じて修正

2021/02/12 01:27

投稿

miyabi_pudding
miyabi_pudding

スコア9555

test CHANGED
@@ -10,25 +10,51 @@
10
10
 
11
11
  <script type="text/javascript">
12
12
 
13
+ // 取り出したい値を外側スコープで定義しておく
14
+
15
+ let data;
13
16
 
14
17
 
18
+
15
- // 前段省略
19
+ // 前段省略(各変数の定義)
20
+
21
+
16
22
 
17
23
  // select要素を取得
18
24
 
19
25
  const selectElm = document.getElementById('example');
20
26
 
27
+ // select要素が、変化するたびに実行される
28
+
21
29
  selectElm.onchange = function(){
22
30
 
23
- // 処理記載
31
+ // 選択しているoptionの値使いたい場合は、this.value
24
32
 
33
+ switch (Number(this.value)) {
34
+
35
+ case 0:
36
+
25
- // 選択しているoptionの値を使いたい場合は、this.value
37
+ data = google.visualization.arrayToDataTable(dataset0);
38
+
39
+ case 1:
40
+
41
+ data = google.visualization.arrayToDataTable(dataset1);
42
+
43
+ case 2:
44
+
45
+ data = google.visualization.arrayToDataTable(dataset2);
46
+
47
+ default:
48
+
49
+ data = google.visualization.arrayToDataTable(dataset0);
50
+
51
+ }
26
52
 
27
53
  };
28
54
 
29
55
 
30
56
 
31
- // 後段省略
57
+ // 後段省略(コールバック関数の部分)
32
58
 
33
59
 
34
60