質問編集履歴
6
間違い修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
<script src="js/jquery-3.1.1.min.js"></script>
|
33
33
|
<script src="js/jQuery.csv.js"></script>
|
34
34
|
<script src="http://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.min.js"></script>
|
35
|
-
<script src="mychart.js"></script>
|
35
|
+
<script src="js/mychart.js"></script>
|
36
36
|
<title>A</title>
|
37
37
|
</head>
|
38
38
|
<body>
|
@@ -45,6 +45,8 @@
|
|
45
45
|
<form name="pullForm">
|
46
46
|
<select name="pullMenu">
|
47
47
|
<option value="a_data.csv">a_data.csv</option>
|
48
|
+
<input type="hidden" name="graph_title" value="グラフタイトル">
|
49
|
+
<input type="hidden" name="target_title" value="グラフタイトル2">
|
48
50
|
</select>
|
49
51
|
</form>
|
50
52
|
|
5
ソース書き直し
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,51 +17,226 @@
|
|
17
17
|
chart.thml
|
18
18
|
```
|
19
19
|
コード
|
20
|
+
<!DOCTYPE html>
|
21
|
+
<html lang="en">
|
22
|
+
<style>
|
23
|
+
@media screen and (min-width: 768px) {
|
24
|
+
.chart_container {
|
25
|
+
width: 640px;
|
26
|
+
margin: auto;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
</style>
|
30
|
+
<head>
|
31
|
+
<meta charset="UTF-8">
|
20
|
-
<script src="js/jquery-3.1.1.min.js"></script>
|
32
|
+
<script src="js/jquery-3.1.1.min.js"></script>
|
33
|
+
<script src="js/jQuery.csv.js"></script>
|
21
|
-
<script src="http://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.min.js"></script>
|
34
|
+
<script src="http://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.min.js"></script>
|
22
|
-
<script src="js/jQuery.csv.js"></script>
|
23
|
-
<script src="
|
35
|
+
<script src="mychart.js"></script>
|
36
|
+
<title>A</title>
|
37
|
+
</head>
|
24
38
|
<body>
|
39
|
+
|
40
|
+
<!--ここにグラフが挿入されます-->
|
25
|
-
<div
|
41
|
+
<div style="width: 600; height: 600;">
|
26
|
-
|
42
|
+
<canvas id="myChart" style="width: 100%; height: auto;"></canvas>
|
27
43
|
</div>
|
44
|
+
<br/>
|
45
|
+
<form name="pullForm">
|
46
|
+
<select name="pullMenu">
|
47
|
+
<option value="a_data.csv">a_data.csv</option>
|
48
|
+
</select>
|
49
|
+
</form>
|
50
|
+
|
51
|
+
<!--ボタンを押すとリロードします。-->
|
52
|
+
<input type="button" id="update_chart" value="グラフ表示" onclick="main()"/>
|
53
|
+
<!--ここにCSVデータが挿入されます-->
|
54
|
+
<div id="news"></div>
|
28
55
|
</body>
|
56
|
+
</html>
|
29
57
|
```
|
30
|
-
|
58
|
+
a_data.csv
|
59
|
+
```ここに言語を入力
|
60
|
+
1, 3, 22, 6
|
61
|
+
2, -24, 15, 8
|
62
|
+
3, -20, 32, 15
|
63
|
+
```
|
31
64
|
data.csv
|
32
65
|
```
|
33
66
|
日付,目標
|
34
67
|
1,231
|
35
68
|
2,462
|
36
|
-
|
69
|
+
3,693
|
37
70
|
```
|
38
71
|
|
39
72
|
|
40
73
|
mychart.js
|
41
74
|
```
|
75
|
+
function csv2Array(str) {
|
76
|
+
var csvData = [];
|
77
|
+
//CR削除
|
78
|
+
str = str.replace(/\r\n/g, '\n');
|
79
|
+
//空行削除
|
80
|
+
str = str.replace(/\n+/g, '\n');
|
81
|
+
//空白削除
|
82
|
+
str = str.replace(/\s+,|,\s+/g, ',');
|
83
|
+
var lines = str.split('\n');
|
84
|
+
for (var i = 0; i < lines.length; i++) {
|
85
|
+
var cells = lines[i].split(",");
|
86
|
+
csvData.push(cells);
|
87
|
+
}
|
88
|
+
return csvData;
|
89
|
+
}
|
90
|
+
|
42
91
|
var insert = '';
|
43
92
|
var csvList;
|
44
93
|
$(function t_csv(){
|
45
94
|
var target_csv = '#news';
|
46
95
|
$.ajax({
|
96
|
+
dataType: 'text',
|
47
|
-
url: '
|
97
|
+
url: 'h_j_t_data2.csv',
|
48
98
|
success: function(data) {
|
49
99
|
csvList = $.csv()(data);
|
50
100
|
for(var i = 1, n = csvList.length; i < n; i++){
|
51
101
|
insert += ( csvList[i][1] + ( i!=n-1 ? "," : "" ) );
|
52
102
|
}
|
53
|
-
$(target_csv).append(insert);
|
103
|
+
$(target_csv).append(insert);
|
54
104
|
}
|
55
105
|
});
|
56
106
|
});
|
57
107
|
|
58
108
|
|
109
|
+
// リクエストにjqueryを利用する場合
|
110
|
+
function main_jquery() {
|
111
|
+
var csvData = $.ajax({
|
112
|
+
//グラフ表示内容取得
|
113
|
+
//url: 'j_data.csv',
|
114
|
+
url: document.pullForm.pullMenu.value,
|
115
|
+
dataType: 'text',
|
116
|
+
cache: false
|
117
|
+
//cache: true
|
118
|
+
}).then(function (resText) {
|
119
|
+
var data = csv2Array(resText);
|
120
|
+
drawBarChart(data)
|
121
|
+
})
|
122
|
+
}
|
123
|
+
|
124
|
+
|
125
|
+
//colormapもどき
|
126
|
+
function mycolmap(l) {
|
127
|
+
function rgbaStr(rgba) {
|
128
|
+
return 'rgba(' + rgba.join(',') + ')';
|
129
|
+
}
|
130
|
+
var cStr = [];
|
131
|
+
var color_from = [54, 162, 235, 0.3];
|
132
|
+
var color_to = [255, 99, 132, 0.3];
|
133
|
+
var l1 = l - 1;
|
134
|
+
for (var i = 0; i < l; i++) {
|
135
|
+
var c = [];
|
136
|
+
var j = 0;
|
137
|
+
for (; j < 3; ++j) {
|
138
|
+
c[j] = Math.floor(color_from[j] * (l1 - i) / l1 + color_to[j] * (i) / l1);
|
139
|
+
}
|
140
|
+
// alpha doesn't need floor
|
141
|
+
c[j] = color_from[j] * (l1 - i) / l1 + color_to[j] * (i) / l1;
|
142
|
+
cStr[i] = rgbaStr(c)
|
143
|
+
}
|
144
|
+
return cStr;
|
145
|
+
}
|
146
|
+
|
147
|
+
//common part
|
148
|
+
|
149
|
+
function drawBarChart(data) {
|
150
|
+
|
151
|
+
// set chart labels and data
|
152
|
+
var tmpLabels = [];
|
153
|
+
var dataList = [];
|
154
|
+
//var nameList2 = ["A", "B", "C"];
|
155
|
+
var nameList = ["D", "E", "F"];
|
156
|
+
|
157
|
+
//先頭行の列数からデータ数を導出する
|
158
|
+
var numData = data[0].length-1;
|
159
|
+
var bgcolList = mycolmap(numData);
|
160
|
+
|
161
|
+
for (var i = 0; i < numData; i++) {
|
162
|
+
dataList[i] = [];
|
163
|
+
}
|
164
|
+
|
165
|
+
for (var row in data) {
|
166
|
+
tmpLabels.push(data[row][0])
|
167
|
+
for (var i = 0; i < numData; i++) {
|
168
|
+
dataList[i].push(data[row][i+1]);
|
169
|
+
}
|
170
|
+
};
|
171
|
+
|
172
|
+
var datasetList = [];
|
173
|
+
for (var i = 0; i < numData; i++) {
|
59
|
-
datasetList.push({
|
174
|
+
datasetList.push({
|
175
|
+
label: nameList[i],
|
176
|
+
backgroundColor: bgcolList[i],
|
177
|
+
data: dataList[i]
|
178
|
+
});
|
179
|
+
}
|
180
|
+
|
181
|
+
datasetList.push({
|
60
|
-
|
182
|
+
type: 'line',
|
61
|
-
|
183
|
+
label: document.pullForm.target_title.value,
|
62
|
-
|
184
|
+
scaleShowLabels : false,
|
63
|
-
|
185
|
+
backgroundColor: "rgba(70, 150, 150, 1)",
|
64
|
-
|
186
|
+
fill: false,
|
187
|
+
//data:arr;
|
65
|
-
|
188
|
+
data:[231,462,693]/////CSVから値を入れたい箇所/////
|
66
|
-
});
|
189
|
+
});
|
190
|
+
var chartData = {
|
191
|
+
labels: tmpLabels,
|
192
|
+
datasets: datasetList
|
193
|
+
};
|
194
|
+
|
195
|
+
var ctx = document.getElementById("myChart").getContext("2d");
|
196
|
+
ctx.canvas.width = 1000;
|
197
|
+
ctx.canvas.height = 600;
|
198
|
+
// for chart.js 2.0
|
199
|
+
|
200
|
+
var myChart = new Chart(ctx, {
|
201
|
+
type: 'bar',
|
202
|
+
data: chartData,
|
203
|
+
options: {
|
204
|
+
title: {
|
205
|
+
display: true,
|
206
|
+
text: document.pullForm.graph_title.value, //グラフの見出し
|
207
|
+
padding:6
|
208
|
+
},
|
209
|
+
scales: {
|
210
|
+
xAxes: [{
|
211
|
+
stacked: true, //積み上げ棒グラフにする設定
|
212
|
+
ticks: {
|
213
|
+
autoSkip: false,
|
214
|
+
maxRotation: 90,
|
215
|
+
minRotation: 90
|
216
|
+
}
|
217
|
+
}],
|
218
|
+
yAxes: [{
|
219
|
+
stacked: true,//積み上げ棒グラフにする設定
|
220
|
+
scaleLabel: {
|
221
|
+
display: true,
|
222
|
+
labelString: 'TEST',
|
223
|
+
fontSize: 14
|
224
|
+
}
|
225
|
+
}]
|
226
|
+
},
|
227
|
+
legend: {
|
228
|
+
display: true,
|
229
|
+
position: 'right'
|
230
|
+
}
|
231
|
+
}
|
232
|
+
});
|
233
|
+
|
234
|
+
}
|
235
|
+
|
236
|
+
// ここがメイン
|
237
|
+
function main() {
|
238
|
+
main_jquery();
|
239
|
+
}
|
240
|
+
|
241
|
+
main();
|
67
242
|
```
|
4
リンクの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
javascriptとAjax?での値受け渡し
|
2
2
|
|
3
|
-
chart.js(http://www.chartjs.org/)
|
3
|
+
[chart.js](http://www.chartjs.org/)
|
4
4
|
を使ってグラフの表示に挑戦しているのですが
|
5
5
|
同じJS内下記部分
|
6
6
|
data:[231,462,693];
|
7
7
|
へCSVから取得した値を入れたいのですが
|
8
8
|
うまくいきません。
|
9
9
|
※値の渡し方をわかっておりません
|
10
|
-
(CSVの取得はjQuery.csv.jsを使用させていただいて取り込めました
|
10
|
+
(CSVの取得は[jQuery.csv.js](http://cly7796.net/wp/javascript/ajax-get-csv/)を使用させていただいて取り込めました
|
11
11
|
http://cly7796.net/wp/javascript/ajax-get-csv/)
|
12
12
|
|
13
13
|
hrml内には
|
3
URLのついか
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,23 +1,22 @@
|
|
1
1
|
javascriptとAjax?での値受け渡し
|
2
2
|
|
3
|
+
chart.js(http://www.chartjs.org/)
|
3
|
-
|
4
|
+
を使ってグラフの表示に挑戦しているのですが
|
4
5
|
同じJS内下記部分
|
5
6
|
data:[231,462,693];
|
6
7
|
へCSVから取得した値を入れたいのですが
|
7
8
|
うまくいきません。
|
8
9
|
※値の渡し方をわかっておりません
|
9
|
-
(CSVの取得はjQuery.csv.jsを使用させていただいて取り込めました
|
10
|
+
(CSVの取得はjQuery.csv.jsを使用させていただいて取り込めました
|
11
|
+
http://cly7796.net/wp/javascript/ajax-get-csv/)
|
10
12
|
|
11
13
|
hrml内には
|
12
14
|
231,462,693と表示されたのですがどうすれば良いのか
|
13
15
|
教えていただけませんでしょうか。
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
///////////
|
19
|
-
chart.
|
17
|
+
chart.thml
|
20
|
-
|
18
|
+
```
|
19
|
+
コード
|
21
20
|
<script src="js/jquery-3.1.1.min.js"></script>
|
22
21
|
<script src="http://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.min.js"></script>
|
23
22
|
<script src="js/jQuery.csv.js"></script>
|
@@ -27,19 +26,19 @@
|
|
27
26
|
<ul id="news"></ul>
|
28
27
|
</div>
|
29
28
|
</body>
|
29
|
+
```
|
30
30
|
|
31
|
-
///////////
|
32
31
|
data.csv
|
33
|
-
|
32
|
+
```
|
34
33
|
日付,目標
|
35
34
|
1,231
|
36
35
|
2,462
|
37
36
|
2,693
|
37
|
+
```
|
38
38
|
|
39
39
|
|
40
|
-
///////////
|
41
40
|
mychart.js
|
42
|
-
|
41
|
+
```
|
43
42
|
var insert = '';
|
44
43
|
var csvList;
|
45
44
|
$(function t_csv(){
|
@@ -64,4 +63,5 @@
|
|
64
63
|
backgroundColor: "rgba(70, 150, 150, 1)",
|
65
64
|
fill: false,
|
66
65
|
data:[231,462,693];//CSVから値を入れたい箇所
|
67
|
-
});
|
66
|
+
});
|
67
|
+
```
|
2
余分なソースを削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -59,7 +59,7 @@
|
|
59
59
|
|
60
60
|
datasetList.push({
|
61
61
|
type: 'line',
|
62
|
-
label:
|
62
|
+
label: "グラフのラベル",
|
63
63
|
scaleShowLabels : false,
|
64
64
|
backgroundColor: "rgba(70, 150, 150, 1)",
|
65
65
|
fill: false,
|
1
初心者すぎて何がわかっていないのかを表記
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,9 @@
|
|
5
5
|
data:[231,462,693];
|
6
6
|
へCSVから取得した値を入れたいのですが
|
7
7
|
うまくいきません。
|
8
|
+
※値の渡し方をわかっておりません
|
8
9
|
(CSVの取得はjQuery.csv.jsを使用させていただいて取り込めました)
|
10
|
+
|
9
11
|
hrml内には
|
10
12
|
231,462,693と表示されたのですがどうすれば良いのか
|
11
13
|
教えていただけませんでしょうか。
|
@@ -16,11 +18,16 @@
|
|
16
18
|
///////////
|
17
19
|
chart.html
|
18
20
|
///////////
|
21
|
+
<script src="js/jquery-3.1.1.min.js"></script>
|
22
|
+
<script src="http://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.min.js"></script>
|
23
|
+
<script src="js/jQuery.csv.js"></script>
|
24
|
+
<script src="js/mychart.js"></script>
|
25
|
+
<body>
|
19
26
|
<div id="contents">
|
20
27
|
<ul id="news"></ul>
|
21
28
|
</div>
|
29
|
+
</body>
|
22
30
|
|
23
|
-
|
24
31
|
///////////
|
25
32
|
data.csv
|
26
33
|
///////////
|