/** * Theme: Velonic Admin Template * Author: Coderthemes * Module/App: RickshawChart Application */ !function($) { "use strict"; var RickshawChart = function() { this.$body = $("body") }; //creates area graph RickshawChart.prototype.createAreaGraph = function(selector, seriesData, random, colors, labels) { var areaGraph = new Rickshaw.Graph( { element: document.querySelector(selector), renderer: 'area', stroke: true, height: 250, preserve: true, series: [ { color: colors[0], data: seriesData[0], name: labels[0] }, { color: colors[1], data: seriesData[1], name: labels[1] } ] }); areaGraph.render(); setInterval( function() { random.removeData(seriesData); random.addData(seriesData); areaGraph.update(); }, 700 ); $(window).resize(function(){ areaGraph.render(); }); }, RickshawChart.prototype.createSimpleareaGraph = function(selector, simpleAdata,colors) { var Simplearea = new Rickshaw.Graph( { element: document.querySelector(selector), renderer: 'area', stroke: true, series: [ { data: simpleAdata, color: colors[0] }] }); Simplearea.render(); }, RickshawChart.prototype.createMultipleareaGraph = function(selector, multipleAdata1,multipleAdata2,colors) { var Multiplearea = new Rickshaw.Graph( { element: document.querySelector(selector), renderer: 'area', stroke: true, series: [ { data: multipleAdata1, color: colors[0], border: 0 }, { data: multipleAdata2, color: colors[1] }] }); Multiplearea.render(); }, RickshawChart.prototype.createLinetoggleGraph = function(selector, height, colors, names) { // set up our data series with 50 random data points var seriesData = [ [], [], [] ]; var random = new Rickshaw.Fixtures.RandomData(150); for (var i = 0; i < 150; i++) { random.addData(seriesData); } // instantiate our graph! var graph = new Rickshaw.Graph( { element: document.getElementById(selector), height: height, renderer: 'line', series: [ { color: colors[0], data: seriesData[0], name: names[0] }, { color: colors[1], data: seriesData[1], name: names[1] }, { color: colors[2], data: seriesData[2], name: names[2] } ] } ); graph.render(); var hoverDetail = new Rickshaw.Graph.HoverDetail( { graph: graph, formatter: function(series, x, y) { var date = '' + new Date(x * 1000).toUTCString() + ''; var swatch = ''; var content = swatch + series.name + ": " + parseInt(y) + '
' + date; return content; } } ); }, RickshawChart.prototype.createLinePlotGraph = function(selector, colors, names) { var graph = new Rickshaw.Graph( { element: document.getElementById(selector), renderer: 'lineplot', padding: { top: 0.1 }, series: [ { data: [ { x: 0, y: 40 }, { x: 1, y: 49 }, { x: 2, y: 38 }, { x: 3, y: 30 }, { x: 4, y: 32 } ], color: colors[0], name: names[0] }, { data: [ { x: 0, y: 19 }, { x: 1, y: 22 }, { x: 2, y: 32 }, { x: 3, y: 20 }, { x: 4, y: 21 } ], color: colors[1], name: names[1] } ] } ); var hover = new Rickshaw.Graph.HoverDetail({ graph: graph }); graph.render(); }, RickshawChart.prototype.createMultiGraph = function(selector, height, names, colors) { var seriesData = [ [], [], [], [], [] ]; var random = new Rickshaw.Fixtures.RandomData(50); for (var i = 0; i < 75; i++) { random.addData(seriesData); } var graph = new Rickshaw.Graph( { element: document.getElementById(selector), renderer: 'multi', height: height, dotSize: 5, series: [ { name: names[0], data: seriesData.shift(), color: colors[0], renderer: 'stack' }, { name: names[1], data: seriesData.shift(), color: colors[1], renderer: 'stack' }, { name: names[2], data: seriesData.shift(), color: colors[2], renderer: 'scatterplot' }, { name: names[3], data: seriesData.shift().map(function(d) { return { x: d.x, y: d.y / 4 } }), color: colors[3], renderer: 'bar' }, { name: names[4], data: seriesData.shift().map(function(d) { return { x: d.x, y: d.y * 1.5 } }), color: colors[4], renderer: 'line' } ] } ); graph.render(); var detail = new Rickshaw.Graph.HoverDetail({ graph: graph }); var legend = new Rickshaw.Graph.Legend({ graph: graph, element: document.querySelector('#legend') }); var highlighter = new Rickshaw.Graph.Behavior.Series.Highlight({ graph: graph, legend: legend, disabledColor: function() { return '#ddd' } }); var highlighter = new Rickshaw.Graph.Behavior.Series.Toggle({ graph: graph, legend: legend }); }, //initializing various charts and components RickshawChart.prototype.init = function() { //live statics var seriesData = [ [], [], [], [], [], [], [], [], [] ]; var random = new Rickshaw.Fixtures.RandomData(200); for (var i = 0; i < 100; i++) { random.addData(seriesData); } //create live area graph var colors = ['#5fbeaa', '#ebeff2']; var labels = ['Moscow', 'Shanghai']; this.createAreaGraph("#linechart", seriesData, random, colors, labels); //create Simple area graph var simpleAdata = [ { x: 0, y: 20 }, { x: 1, y: 25 }, { x: 2, y: 38 }, { x: 3, y: 28 }, { x: 4, y: 20 } ]; var simpleAcolors = ['#5fbeaa']; this.createSimpleareaGraph("#simplearea", simpleAdata, simpleAcolors); //create Multiple area graph var multipleAdata1 = [ { x: 0, y: 40 }, { x: 1, y: 49 }, { x: 2, y: 38 }, { x: 3, y: 30 }, { x: 4, y: 32 } ]; var multipleAdata2 = [ { x: 0, y: 40 }, { x: 1, y: 49 }, { x: 2, y: 38 }, { x: 3, y: 30 }, { x: 4, y: 32 } ]; var MultipleAcolors = ['#5fbeaa','#ebeff2']; this.createMultipleareaGraph("#multiplearea", multipleAdata1, multipleAdata2, MultipleAcolors); //create Line-Toggle graph var height = [250]; var LineTcolors = ["#5fbeaa", "#5d9cec","#36404a"]; var names = ['New York', 'London','Tokyo']; this.createLinetoggleGraph("linetoggle", height, LineTcolors, names); //create Line-plot graph var LinePlotcolors = ['#5fbeaa','#5d9cec']; var linePnames = ["Series 1", "Series 2"]; this.createLinePlotGraph("lineplotchart", LinePlotcolors, linePnames); //create Multi graph var Multiheight = [250]; var multinames = ['Temperature', 'Heat index','Dewpoint','Pop','Humidity']; var multicolors = ['#5fbeaa','#ebeff2','#36404a','#5d9cec','#fb6d9d']; this.createMultiGraph("multichart", Multiheight, multinames, multicolors); }, //init dashboard $.RickshawChart = new RickshawChart, $.RickshawChart.Constructor = RickshawChart }(window.jQuery), //initializing rickksawChart function($) { "use strict"; $.RickshawChart.init() }(window.jQuery);