Building a prototype so I can turn a chart into a PNG using phantomjs/casperjs to go into monthly client reports sent out by email
A Pen by Tahir Fayyaz on CodePen.
Building a prototype so I can turn a chart into a PNG using phantomjs/casperjs to go into monthly client reports sent out by email
A Pen by Tahir Fayyaz on CodePen.
<div id="container"> | |
<h1 class="desc">Chart created using chart.js ready for image capture by CasperJS</h1> | |
<div id="caspersnap"> | |
<span class="yaxis-label">Request Loads</br> (million)</span> | |
<div class="key"> | |
<div class="current-year">Last 12 Months</div> | |
<div class="prev-year">Previous 12 Months</div> | |
</div> | |
<canvas id="canvas" height="300" width="600"></canvas> | |
</div> | |
<div id="caspercapture"> | |
<h1 class="desc">Image created using CasperJS from this Pen</h1> | |
<img src="http://www.reflectionsworld.co.uk/assets/images/chartjs-casperjs.png" /> | |
</div> | |
</div> |
var featuredMonthName = 'mar'; | |
var featuredMonthIndex = '2'; | |
var today = new Date(); | |
var lastMonth = today.getMonth() + 4; | |
var months= [], i; | |
var month = ["Dec","Nov","Oct","Sep","Aug","Jul","Jun","May","Apr","Mar","Feb","Jan"]; | |
// var month = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; | |
for (i=0; i<12; i++) { | |
months.push(month[lastMonth]); | |
lastMonth--; | |
if (lastMonth < 0) { | |
lastMonth = 11; | |
} | |
} | |
console.log(lastMonth) | |
var previousYear = [200,48,40,19,96,27,200,96,27,200,96,27]; | |
var currentYear = [65,59,90,81,56,55,40,65,59,90,81,56]; | |
var brand = 'apple'; | |
var lineChartData = { | |
labels : months, | |
datasets : [ | |
{ | |
fillColor : "rgba(220,220,220,0.5)", | |
strokeColor : "rgba(220,220,220,1)", | |
pointColor : "rgba(220,220,220,1)", | |
pointStrokeColor : "#fff", | |
datasetStroke : true, | |
data : previousYear | |
}, | |
{ | |
fillColor : "rgba(251,87,20,0.5)", | |
strokeColor : "rgba(251,127,20,1)", | |
pointColor : "rgba(251,127,20,1)", | |
pointStrokeColor : "#fff", | |
data : currentYear | |
} | |
] | |
} | |
var options = { | |
//Number - Radius of each point dot in pixels | |
pointDotRadius : 5, | |
datasetStroke : true, | |
scaleLabel : "<%=value%>" + location.search | |
} | |
var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Line(lineChartData,options); |
* { | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
body { | |
font-family: Arial; | |
background-color: #333; | |
color: #eee; | |
} | |
canvas { | |
} | |
h1 { | |
font-size: 16px; | |
margin: 20px 10px; | |
} | |
#container { | |
position: relative; | |
width: 600px; | |
margin: 0 auto; | |
} | |
.yaxis-label { | |
position: absolute; | |
left: 30px; | |
width: 200px; | |
top: 60px; | |
} | |
.key { | |
width: 200px; | |
margin-left: 400px; | |
} | |
.current-year { | |
display: block; | |
width: 200px; | |
border-left: 20px solid rgba(251,127,20,1); | |
padding: 2px 5px; | |
margin-bottom: 5px; | |
} | |
.prev-year { | |
display: block; | |
width: 200px; | |
border-left: 20px solid rgba(220,220,220,1); | |
padding: 2px 5px; | |
margin-bottom: 2px; | |
} | |
#caspersnap { | |
padding: 10px 0px; | |
margin: 0px; | |
} |