(function($) { 'use strict'; var data = [{ data: 18000, color: '#FABA66', label: 'Linda' }, { data: 20000, color: '#F36368', label: 'John' }, { data: 13000, color: '#76C1FA', label: 'Margaret' }, { data: 15000, color: '#63CF72', label: 'Richard' } ]; if ($("#pie-chart").length) { $.plot("#pie-chart", data, { series: { pie: { show: true, radius: 1, label: { show: true, radius: 3 / 4, formatter: labelFormatter, background: { opacity: 0.5 } } } }, legend: { show: false } }); } function labelFormatter(label, series) { return "
" + label + "
" + Math.round(series.percent) + "%
"; } /*--------------------- ----- LINE CHART ----- ---------------------*/ var d1 = [ [0, 30], [1, 35], [2, 35], [3, 30], [4, 30] ]; var d2 = [ [0, 50], [1, 40], [2, 45], [3, 60], [4, 50] ]; var d3 = [ [0, 40], [1, 50], [2, 35], [3, 25], [4, 40] ]; var stackedData = [{ data: d1, color: "#76C1FA" }, { data: d2, color: "#63CF72" }, { data: d3, color: "#F36368" } ]; /*--------------------------------------------------- Make some random data for Recent Items chart ---------------------------------------------------*/ var options = { series: { shadowSize: 0, lines: { show: true, }, }, grid: { borderWidth: 1, labelMargin: 10, mouseActiveRadius: 6, borderColor: '#eee', show: true, hoverable: true, clickable: true }, xaxis: { tickColor: '#eee', tickDecimals: 0, font: { lineHeight: 15, style: "normal", color: "#000" }, shadowSize: 0, ticks: [ [0, "Jan"], [1, "Feb"], [2, "Mar"], [3, "Apr"], [4, "May"], [5, "Jun"], [6, "Jul"], [7, "Aug"], [8, "Sep"], [9, "Oct"], [10, "Nov"], [11, "Dec"] ] }, yaxis: { tickColor: '#eee', tickDecimals: 0, font: { lineHeight: 15, style: "normal", color: "#000", }, shadowSize: 0 }, legend: { container: '.flc-line', backgroundOpacity: 0.5, noColumns: 0, backgroundColor: "white", lineWidth: 0 }, colors: ["#F36368", "#63CF72", "#68B3C8"] }; if ($("#line-chart").length) { $.plot($("#line-chart"), [{ data: d1, lines: { show: true }, label: 'Product A', stack: true, color: '#F36368' }, { data: d2, lines: { show: true }, label: 'Product B', stack: true, color: '#FABA66' }, { data: d3, lines: { show: true }, label: 'Product C', stack: true, color: '#68B3C8' } ], options); } /*--------------------------------- Tooltips for Flot Charts ---------------------------------*/ if ($(".flot-chart-line").length) { $(".flot-chart-line").on("bind", "plothover", function(event, pos, item) { if (item) { var x = item.datapoint[0].toFixed(2), y = item.datapoint[1].toFixed(2); $(".flot-tooltip").html(item.series.label + " Sales " + " : " + y).css({ top: item.pageY + 5, left: item.pageX + 5 }).show(); } else { $(".flot-tooltip").hide(); } }); $("
").appendTo("body"); } /*--------------------- ----- AREA CHART ----- ---------------------*/ var d1 = [ [0, 0], [1, 35], [2, 35], [3, 30], [4, 30], [5, 5], [6, 32], [7, 37], [8, 30], [9, 35], [10, 30], [11, 5] ]; var options = { series: { shadowSize: 0, curvedLines: { //This is a third party plugin to make curved lines apply: true, active: true, monotonicFit: true }, lines: { show: false, fill: 0.98, lineWidth: 0, }, }, grid: { borderWidth: 0, labelMargin: 10, hoverable: true, clickable: true, mouseActiveRadius: 6, }, xaxis: { tickDecimals: 0, tickLength: 0 }, yaxis: { tickDecimals: 0, tickLength: 0 }, legend: { show: false } }; var curvedLineOptions = { series: { shadowSize: 0, curvedLines: { //This is a third party plugin to make curved lines apply: true, active: true, monotonicFit: true }, lines: { show: false, lineWidth: 0, }, }, grid: { borderWidth: 0, labelMargin: 10, hoverable: true, clickable: true, mouseActiveRadius: 6, }, xaxis: { tickDecimals: 0, ticks: false }, yaxis: { tickDecimals: 0, ticks: false }, legend: { noColumns: 4, container: $("#chartLegend") } }; if ($("#area-chart").length) { $.plot($("#area-chart"), [{ data: d1, lines: { show: true, fill: 0.6 }, label: 'Product 1', stack: true, color: '#76C1FA' }], options); } /*--------------------- ----- COLUMN CHART ----- ---------------------*/ $(function() { var data = [ ["January", 10], ["February", 8], ["March", 4], ["April", 13], ["May", 17], ["June", 9] ]; if ($("#column-chart").length) { $.plot("#column-chart", [data], { series: { bars: { show: true, barWidth: 0.6, align: "center" } }, xaxis: { mode: "categories", tickLength: 0 }, grid: { borderWidth: 0, labelMargin: 10, hoverable: true, clickable: true, mouseActiveRadius: 6, } }); } }); /*-------------------------------- ----- STACKED CHART ----- --------------------------------*/ $(function() { var d1 = []; for (var i = 0; i <= 10; i += 1) { d1.push([i, parseInt(Math.random() * 30)]); } var d2 = []; for (var i = 0; i <= 10; i += 1) { d2.push([i, parseInt(Math.random() * 30)]); } var d3 = []; for (var i = 0; i <= 10; i += 1) { d3.push([i, parseInt(Math.random() * 30)]); } if ($("#stacked-bar-chart").length) { $.plot("#stacked-bar-chart", stackedData, { series: { stack: 0, lines: { show: false, fill: true, steps: false }, bars: { show: true, fill: true, barWidth: 0.6 }, }, grid: { borderWidth: 0, labelMargin: 10, hoverable: true, clickable: true, mouseActiveRadius: 6, } }); } }); /*-------------------------------- ----- REALTIME CHART ----- --------------------------------*/ $(function() { // We use an inline data source in the example, usually data would // be fetched from a server var data = [], totalPoints = 300; function getRandomData() { if (data.length > 0) data = data.slice(1); // Do a random walk while (data.length < totalPoints) { var prev = data.length > 0 ? data[data.length - 1] : 50, y = prev + Math.random() * 10 - 5; if (y < 0) { y = 0; } else if (y > 100) { y = 100; } data.push(y); } // Zip the generated y values with the x values var res = []; for (var i = 0; i < data.length; ++i) { res.push([i, data[i]]) } return res; } // Set up the control widget var updateInterval = 30; if ($("#realtime-chart").length) { var plot = $.plot("#realtime-chart", [getRandomData()], { series: { shadowSize: 0 // Drawing is faster without shadows }, yaxis: { min: 0, max: 100 }, xaxis: { show: false }, grid: { borderWidth: 0, labelMargin: 10, hoverable: true, clickable: true, mouseActiveRadius: 6, } }); function update() { plot.setData([getRandomData()]); // Since the axes don't change, we don't need to call plot.setupGrid() plot.draw(); setTimeout(update, updateInterval); } update(); } }); /*-------------------------------- ----- CURVED LINE CHART ----- --------------------------------*/ $(function() { var d1 = [ [0, 6], [1, 14], [2, 10], [3, 14], [4, 5] ]; var d2 = [ [0, 6], [1, 7], [2, 11], [3, 8], [4, 11] ]; var d3 = [ [0, 6], [1, 5], [2, 6], [3, 10], [4, 5] ]; if ($("#curved-line-chart").length) { $.plot($("#curved-line-chart"), [{ data: d1, lines: { show: true, fill: 0.98 }, label: 'Plans', stack: true, color: '#5E50F9' }, { data: d2, lines: { show: true, fill: 0.98 }, label: 'Purchase', stack: true, color: '#8C95FC' }, { data: d3, lines: { show: true, fill: 0.98 }, label: 'Services', stack: true, color: '#A8B4FD' } ], curvedLineOptions); } }); })(jQuery);