質問編集履歴
3
写真の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,15 +17,17 @@
|
|
17
17
|
{"start":0
|
18
18
|
,"stop":0.9
|
19
19
|
,"step":0.01666666666666
|
20
|
-
,"as":"
|
20
|
+
,"as":"time"}
|
21
21
|
}
|
22
22
|
,"mark":"line",
|
23
23
|
"encoding":{
|
24
|
-
"x":{"field":"
|
24
|
+
"x":{"field":"time","type":"quantitative"}
|
25
25
|
,"y":{"field":"x","type":"quantitative"}
|
26
26
|
}
|
27
27
|
,"title":"Time Series Chart"}
|
28
28
|
```
|
29
|
+
### Vega Editorの描画結果
|
30
|
+

|
29
31
|
|
30
32
|
### データセットを作成するコード
|
31
33
|
```js
|
2
問題点の一部改善
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Vega-Liteで
|
1
|
+
Vega-Liteでグラフが表示されない
|
body
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
加速度センサーから取得した値を、**Vega-Lite**を使って可視化させようとしたのですが、
|
2
|
+
加速度センサーから取得した値を、**Vega-Lite**を使って可視化させようとしたのですが、ブラウザには描画されず、**Vega Editor**を使って直接、値を入力してグラフの作成も試みたのですが、やはりダメでした。
|
3
|
-
**WARN Infinite extent for field "Time_Seriesl": [Infinity, -Infinity]**と表示されていました。自分では原因がわからずどのようにすれば描画できるでしょうか。
|
4
3
|
### 使用環境
|
5
4
|
macOS ver 11.6
|
6
5
|
node.js ver v16.8.0
|
@@ -9,51 +8,25 @@
|
|
9
8
|
https://cdn.jsdelivr.net/npm/vega-lite@5.1.1
|
10
9
|
https://cdn.jsdelivr.net/npm/vega-embed@6.18.2
|
11
10
|
### 作成したデータセット
|
11
|
+
データ数は54個 X軸が計測時間のシーケンス、Y軸が加速度センサーの軸のどれかの値(今回はx軸)
|
12
12
|
```
|
13
|
-
{
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
as: 'Time_Series'
|
29
|
-
}
|
30
|
-
},
|
31
|
-
// 折線グラフ
|
32
|
-
mark: 'line',
|
33
|
-
encoding: {
|
34
|
-
// 先ほど作成したシーケンス
|
35
|
-
x: { field: 'Time_Seriesl', type: 'temporal' },
|
36
|
-
// 加速度センサーのx軸の値
|
37
|
-
y: { field: 'x', type: 'quantitative' }
|
38
|
-
},
|
39
|
-
title: 'Time Series Chart'
|
40
|
-
}
|
13
|
+
{"$schema":"https://vega.github.io/schema/vega-lite/v5.json",
|
14
|
+
"data":{
|
15
|
+
"values":[{"x":0.018,"y":0.034,"z":0.066},{"x":0.01,"y":0.044,"z":0.079},{"x":0.018,"y":0.031,"z":0.069},{"x":0.021,"y":0.032,"z":0.072},{"x":0.02,"y":0.038,"z":0.071},{"x":0.015,"y":0.04,"z":0.072},{"x":0.024,"y":0.039,"z":0.067},{"x":0.02,"y":0.032,"z":0.067},{"x":0.017,"y":0.033,"z":0.065},{"x":0.022,"y":0.038,"z":0.074},{"x":0.019,"y":0.03,"z":0.072},{"x":0.015,"y":0.042,"z":0.068},{"x":0.019,"y":0.044,"z":0.074},{"x":0.01,"y":0.045,"z":0.075},{"x":0.015,"y":0.034,"z":0.072},{"x":0.016,"y":0.032,"z":0.063},{"x":0.02,"y":0.042,"z":0.065},{"x":0.02,"y":0.032,"z":0.065},{"x":0.019,"y":0.036,"z":0.077},{"x":0.017,"y":0.037,"z":0.08},{"x":0.028,"y":0.031,"z":0.065},{"x":0.022,"y":0.037,"z":0.067},{"x":0.015,"y":0.043,"z":0.06},{"x":0.022,"y":0.037,"z":0.072},{"x":0.019,"y":0.037,"z":0.065},{"x":0.018,"y":0.033,"z":0.069},{"x":0.023,"y":0.033,"z":0.073},{"x":0.022,"y":0.031,"z":0.055},{"x":0.022,"y":0.039,"z":0.058},{"x":0.015,"y":0.038,"z":0.065},{"x":0.025,"y":0.035,"z":0.067},{"x":0.015,"y":0.048,"z":0.074},{"x":0.012,"y":0.037,"z":0.079},{"x":0.021,"y":0.023,"z":0.067},{"x":0.013,"y":0.026,"z":0.067},{"x":0.01,"y":0.037,"z":0.072},{"x":0.022,"y":0.036,"z":0.067},{"x":0.019,"y":0.035,"z":0.072},{"x":0.019,"y":0.04,"z":0.075},{"x":0.016,"y":0.028,"z":0.067},{"x":0.023,"y":0.041,"z":0.076},{"x":0.018,"y":0.033,"z":0.064},{"x":0.019,"y":0.029,"z":0.066},{"x":0.018,"y":0.032,"z":0.071},{"x":0.028,"y":0.042,"z":0.065},{"x":0.022,"y":0.031,"z":0.06},{"x":0.018,"y":0.034,"z":0.072},{"x":0.02,"y":0.035,"z":0.065},{"x":0.018,"y":0.029,"z":0.064},{"x":0.019,"y":0.036,"z":0.081},{"x":0.013,"y":0.038,"z":0.07},{"x":0.014,"y":0.033,"z":0.075},{"x":0.02,"y":0.036,"z":0.069},{"x":0.016,"y":0.04,"z":0.071}],
|
16
|
+
"sequence":
|
17
|
+
{"start":0
|
18
|
+
,"stop":0.9
|
19
|
+
,"step":0.01666666666666
|
20
|
+
,"as":"time_series"}
|
21
|
+
}
|
22
|
+
,"mark":"line",
|
23
|
+
"encoding":{
|
24
|
+
"x":{"field":"time_series","type":"quantitative"}
|
25
|
+
,"y":{"field":"x","type":"quantitative"}
|
26
|
+
}
|
27
|
+
,"title":"Time Series Chart"}
|
41
28
|
```
|
42
|
-
|
29
|
+
|
43
|
-
```
|
44
|
-
{
|
45
|
-
values: [
|
46
|
-
{ x: 0.018, y: 0.034, z: 0.066 },
|
47
|
-
{ x: 0.01, y: 0.044, z: 0.079 },
|
48
|
-
{ x: 0.018, y: 0.031, z: 0.069 },
|
49
|
-
{ x: 0.02, y: 0.038, z: 0.071 },
|
50
|
-
{ x: 0.015, y: 0.04, z: 0.072 },
|
51
|
-
{ x: 0.017, y: 0.026, z: 0.069 },
|
52
|
-
{ x: 0.015, y: 0.042, z: 0.069 },
|
53
|
-
... 107201 more items
|
54
|
-
]
|
55
|
-
}
|
56
|
-
```
|
57
30
|
### データセットを作成するコード
|
58
31
|
```js
|
59
32
|
router.post('/graph', /*async*/ function(req, res, next) {
|
1
問題点を全部確認するため
title
CHANGED
File without changes
|
body
CHANGED
@@ -92,4 +92,73 @@
|
|
92
92
|
|
93
93
|
module.exports = router;
|
94
94
|
```
|
95
|
-
色々と調べてはみたのですが、はっきりとは意味がわからなかったです。
|
95
|
+
色々と調べてはみたのですが、はっきりとは意味がわからなかったです。
|
96
|
+
|
97
|
+
### 追記
|
98
|
+
ejsのソースコード
|
99
|
+
```ejs
|
100
|
+
<!DOCTYPE html>
|
101
|
+
<html>
|
102
|
+
<head>
|
103
|
+
<meta charset="UTF-8">
|
104
|
+
<title><%= title%></title>
|
105
|
+
<link rel="stylesheet" href="/stylesheets/style.min.css" />
|
106
|
+
<link rel="stylesheet" href="/stylesheets/style.css" />
|
107
|
+
<script src="/javascripts/jquery-3.6.0.min.js"></script>
|
108
|
+
<script src="/javascripts/jstree.min.js"></script>
|
109
|
+
|
110
|
+
<script src="https://cdn.jsdelivr.net/npm/vega@5.20.2"></script>
|
111
|
+
<script src="https://cdn.jsdelivr.net/npm/vega-lite@5.1.1"></script>
|
112
|
+
<script src="https://cdn.jsdelivr.net/npm/vega-embed@6.18.2"></script>
|
113
|
+
|
114
|
+
</head>
|
115
|
+
<body>
|
116
|
+
<div id="content">
|
117
|
+
<header>
|
118
|
+
ヘッダー部分
|
119
|
+
</header>
|
120
|
+
<div id="split-panel">
|
121
|
+
<div id="left-panel">
|
122
|
+
<div id="file_tree"></div>
|
123
|
+
</div>
|
124
|
+
<div id="right-panel">
|
125
|
+
<div id="chart"></div>
|
126
|
+
<!-- ここ描画 -->
|
127
|
+
|
128
|
+
</div>
|
129
|
+
</div>
|
130
|
+
|
131
|
+
</div>
|
132
|
+
<script src="/javascripts/readTree.js"></script>
|
133
|
+
</body>
|
134
|
+
</html>
|
135
|
+
```
|
136
|
+
### ejsに描画させるコード
|
137
|
+
```js
|
138
|
+
$('#file_tree').on("changed.jstree", function (e, data) {
|
139
|
+
var myReg = new RegExp('.+\.\w{3}$');
|
140
|
+
if (myReg.test(data.selected[0])) {
|
141
|
+
// データがあるURL
|
142
|
+
var url = "BASE_URL" + data.node['parent'] + '/' + data.selected[0];
|
143
|
+
console.log(url);
|
144
|
+
$.ajax({
|
145
|
+
async:true,
|
146
|
+
url:"http://localhost:3000/graph",
|
147
|
+
type: 'POST',
|
148
|
+
data:{'url':url},
|
149
|
+
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
|
150
|
+
}).done((data) => {
|
151
|
+
console.log('成功');
|
152
|
+
// 作成したデータセット
|
153
|
+
var vlSpec = data;
|
154
|
+
// 描画させる
|
155
|
+
vegaEmbed('#chart', vlSpec);
|
156
|
+
}).fail(() => {
|
157
|
+
console.log('失敗');
|
158
|
+
});
|
159
|
+
|
160
|
+
} else {
|
161
|
+
console.log("Folder")
|
162
|
+
}
|
163
|
+
});
|
164
|
+
```
|