You must be logged in to post your query.
Home › Forums › Chart Support › I want to make a 100% stacked chart where JSON data can run
Tagged: canvasjs, chartjs, CSS, html, javascript
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function () {
var dps1 = [], dps2 = [], dps3 = [];
var chart = new CanvasJS.Chart("chartContainer",{
animationEnabled: true,
theme: "dark2",
title:{
text: "MOVEMENT CATEGORY"
},
subtitles:[
{
text: "(STANDSTILL, ON FOOT or ON VEHICLE)",
},],
axisX:{
title: "TIME SLOT"
},
axisY:{
title:"Number of users(%)",
suffix: "%"
},
data: [
{
type: "stackedArea100",
name: "STANDSTILL",
showInLegend: "true",
yValueFormatString: "#,##0.##\"%\"",
dataPoints: dps1
},
{
type: "stackedArea100",
name: "ON FOOT",
showInLegend: "true",
yValueFormatString: "#,##0.##\"%\"",
dataPoints: dps2
},
{
type: "stackedArea100",
name: "ON VEHICLE",
showInLegend: "true",
yValueFormatString: "#,##0.##\"%\"",
dataPoints: dps3
}
]
});
getData();
chart.render();
function getData() {
$.getJSON("https://api.myjson.com/bins/a98dm",
function(data) {
for(var i = 0; i < data.length; i++){
dps1.push({
label: data[i].label,
y: data[i].y1
});
dps2.push({
label: data[i].label,
y: data[i].y2
});
dps3.push({
label: data[i].label,
y: data[i].y3
});
}
});
}
setInterval(function(){
getData();
chart.render();
}, 5000);
</script>
</head>
<body>
<div id="chartContainer" style="height: 400px; width: 100%;"></div>
<script src="https://cdn.canvasjs.com/canvasjs.min.js"></script>
</body>
</html>
In this code, I want to run JSON data. But for some unknown reason this coding is not working properly. Can anybody help me out by solving this problem of providing the appropriate code? It will be highly appreciated. Also, the chart should in a way that an user can get the proper view so that He or she can have a better understanding.
THANK YOU :)
HTML:
<div id="chartContainer" style="height: 300px; width: 150%;"></div>
JAVASCRIPT:
var dps1 = [], dps2 = [], dps3 = [];
var chart = new CanvasJS.Chart("chartContainer",{
title:{
text: "Y Values based on Frequency of Date"
},
axisX:{
title: "Date"
},
axisY:{
title: "Frequecy of dates"
},
data: [
{
type: "stackedArea100",
name: "STANDSTILL",
showInLegend: "true",
yValueFormatString: "#,##0.##\"%\"",
dataPoints: dps1
},
{
type: "stackedArea100",
name: "ON FOOT",
showInLegend: "true",
yValueFormatString: "#,##0.##\"%\"",
dataPoints: dps2
},
{
type: "stackedArea100",
name: "ON VEHICLE",
showInLegend: "true",
yValueFormatString: "#,##0.##\"%\"",
dataPoints: dps3
}
]
});
getData();
chart.render();
function getData() {
$.getJSON("https://api.myjson.com/bins/a98dm", function(data) {
for(var i = 0; i < data.length; i++){
dps1.push({
label: data[i].label,
y: data[i].y1
});
dps2.push({
label: data[i].label,
y: data[i].y2
});
dps3.push({
label: data[i].label,
y: data[i].y3
});
}
});
}
setInterval(function(){
getData();
chart.render();
}, 5000);
I WANT TO COMBINE THIS 2 codes into a simple HTML File. How can I do that? Please write the whole code in the post after edition please. ALso how can i make it dynamic?
@priyanka M S
Thank you so so much for your help.
Tagged: canvasjs, chartjs, CSS, html, javascript
You must be logged in to reply to this topic.