JSFiddle - React, Tailwind, and code Playground
by makrz
HTML
<h1>Sync Multiple Charts</h1>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer1" style="height: 360px; width: 100%;"></div>
<div id="chartContainer2" style="height: 360px; width: 100%;"></div>
<script type="text/javascript" src="https://canvasjs.com/assets/script/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script type="text/javascript">
JavaScript
var data_arr = [];
function getData() {
$.when($.getJSON(
'https://api.thingspeak.com/channels/713735/feeds.json?timezone=Europe/Warsaw&days=1×cale=5',
function(json_data) {
console.log(json_data);
json_data.feeds.forEach(function(data) {
data_arr.push({
x: new Date(data.created_at),
y: parseFloat(data.field1)
});
});
console.log("data_arr: ", data_arr);
})).then(function(){
});
}
var data_arr = [];
function getData() {
$.when($.getJSON(
'https://api.thingspeak.com/channels/713735/feeds.json?timezone=Europe/Warsaw&days=1×cale=5',
function(json_data) {
console.log(json_data);
json_data.feeds.forEach(function(data) {
data_arr.push({
x: new Date(data.created_at),
y: parseFloat(data.field2)
});
});
console.log("data_arr: ", data_arr);
})).then(function(){
chart1.render();
chart2.render();
});
}
var chart1 = new CanvasJS.Chart("chartContainer1", {
title: {
text: "Pressure"
},
axisX: {
valueFormatString: "HH:mm TT",
// labelAngle: -50
},
data: [{
xValueType: "dateTime",
type: "line",
dataPoints: data_arr,
}]
});
getData();
var chart2 = new CanvasJS.Chart("chartContainer2", {
title: {
text: "Temperature"
},
axisX: {
valueFormatString: "HH:mm TT",
// labelAngle: -50
},
data: [{
xValueType: "dateTime",
type: "line",
dataPoints: data_arr,
}]
});
getData();