Shadow/3D Effect for Stacked Column Chart - CanvasJS JavaScript Charts
Shadow/3D Effect for Stacked Column Chart - CanvasJS JavaScript Charts
by canvasjs
HTML
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>
JavaScript
var chart = new CanvasJS.Chart("chartContainer",
{
title: {
text: "3D Effect on Columns"
},
data: [
{
type: "stackedColumn",
dataPoints: [
{ x: 10, y: 171 },
{ x: 20, y: 155},
{ x: 30, y: 150 },
{ x: 40, y: 165 },
{ x: 50, y: 195 },
{ x: 60, y: 168 },
{ x: 70, y: 128 },
{ x: 80, y: 134 },
{ x: 90, y: 114}
]
},{
type: "stackedColumn",
dataPoints: [
{ x: 10, y: 101 },
{ x: 20, y: 105},
{ x: 30, y: 100 },
{ x: 40, y: 105 },
{ x: 50, y: 105 },
{ x: 60, y: 108 },
{ x: 70, y: 108 },
{ x: 80, y: 104 },
{ x: 90, y: 104}
]
}
]
});
chartRender(chart);
function chartRender(chart){
chart.render();
chart.ctx.shadowBlur = 8;
chart.ctx.shadowOffsetX = 4;
chart.ctx.shadowColor = "black";
for (var i = 0; i < chart.plotInfo.plotTypes.length; i++) {
var plotType = chart.plotInfo.plotTypes[i];
for (var j = 0; j < plotType.plotUnits.length; j++) {
var plotUnit = plotType.plotUnits[j];
//For Stacked-Column Chart
if (plotUnit.type === "stackedColumn"){
chart.renderStackedColumn(plotUnit);
}
//For Stacked-Bar Chart
else if (plotUnit.type === "stackedBar"){
chart.renderStackedBar(plotUnit);
}
}
}
chart.ctx.shadowBlur = 0;
chart.ctx.shadowOffsetX = 0;
chart.ctx.shadowColor = "transparent";
}