-
Notifications
You must be signed in to change notification settings - Fork 2
/
plottest.js
57 lines (47 loc) · 1.44 KB
/
plottest.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
var dataset = require('./michael_sleep.json');
var plot = require('plotter').plot;
//assume 2 point dataset
function completeDatasetWithTime(startTime, frequency, data) {
var toAdd = 1000 / frequency; //1sec(in ms)/frequency, calculate how much to add in time for each sample
startTime = (startTime || Date.now()) - toAdd;
// data[0] = [startTime, data[0][0], data[0][1]];
// data.forEach((sample, i) => { if(i>0) data[i] = [data[i-1]+toAdd, sample[0], sample[1]] })
return data.map(function fixData(sample, i) {
return [startTime + (toAdd*i+1), sample[0], sample[1]];
});
}
function saveChartFromData(timeSerie, filename, title) {
var timeData = [];
var channelOneData = {};
var channelTwoData = {};
timeSerie.forEach((data) => {
timeData.push(data[0]);
channelOneData[data[0]/1000] = data[1];
channelTwoData[data[0]/1000] = data[2];
});
// var channelOneData = [];
// var channelTwoData = [];
// timeSerie.forEach((data) => {
// timeData.push(data[0]);
// channelOneData.push(data[1]);
// channelTwoData.push(data[2]);
// });
plot({
data: {
'CH0': channelOneData,
'CH1': channelTwoData
},
filename: filename,
ylabel: 'Signal (uV)',
xlabel: 'Time',
time: '%H:%M:%s',
title: title
});
return filename;
}
function main() {
var data = completeDatasetWithTime(Date.now(), 250, dataset);
console.log('Length of data:', data.length);
console.log(saveChartFromData(data, 'output.png', 'Michaels Muscles'));
}
main();