78 lines
1.6 KiB
JavaScript
78 lines
1.6 KiB
JavaScript
/* If you have not signed up for Plotly you can do so using https://plot.ly
|
|
* or see the example signup.js. Once you do, populate the config.json in this
|
|
* example folder!
|
|
*/
|
|
var config = require('./config.json')
|
|
, username = config['user']
|
|
, apikey = config['apikey']
|
|
, token = config['token']
|
|
, token2 = config['token2']
|
|
, Plotly = require('../.')(username, apikey)
|
|
|
|
|
|
var categories = ["sin", "cos", "tan"]
|
|
|
|
var data = [{
|
|
"name": "1/2 Hz",
|
|
"x": [],
|
|
"y": [],
|
|
"type": "bar",
|
|
"stream": {
|
|
token: token
|
|
}
|
|
}, {
|
|
"name": "1 Hz",
|
|
"x": ["sin", "cos", "tan"],
|
|
"y": [12, 18, 29],
|
|
"type": "bar",
|
|
"stream": {
|
|
token: token2
|
|
}
|
|
}]
|
|
|
|
var layout= {
|
|
"fileopt": 'overwrite',
|
|
filename: 'bar fight',
|
|
"layout":{
|
|
"title": "Mathy Bar Fight",
|
|
"barmode": "group",
|
|
"xaxis": {"type": "category"},
|
|
"yaxis": {
|
|
"range": [-1,1]
|
|
},
|
|
"categories": categories
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
* Call plotly.plot to set the file up.
|
|
* If you have included a streaming token
|
|
* you should get a "All Streams Go!" message
|
|
*/
|
|
|
|
Plotly.plot(data, layout, function (err, resp) {
|
|
if (err) return console.log("ERROR", err);
|
|
|
|
console.log(resp);
|
|
|
|
var plotlystream1 = Plotly.stream(token, function () {});
|
|
var plotlystream2 = Plotly.stream(token2, function () {});
|
|
|
|
streamHz(plotlystream1, 0.5);
|
|
streamHz(plotlystream2, 1);
|
|
})
|
|
|
|
|
|
function streamHz(stream, hz) {
|
|
var ts = 0.1;
|
|
var t = 0;
|
|
|
|
setInterval( function () {
|
|
var yarray = categories.map( function (func) {return Math[func](hz * t)} );
|
|
var data = {x:categories, y: yarray};
|
|
stream.write(JSON.stringify(data) + "\n");
|
|
t += ts;
|
|
}, ts * 1000)
|
|
}
|