public static function barChart($title, $element_label, $labels, $data, $colors = null)
{
$id = Laralum::randomString();
if (Laralum::settings()->bar_chart_source == 'chartjs') {
$graph = "\n <canvas id='{$id}'></canvas>\n <script>\n var ctx = document.getElementById('{$id}');\n var myChart = new Chart(ctx, {\n type: 'bar',\n data: {\n labels: [";
foreach ($labels as $label) {
$graph .= "'" . $label . "',";
}
$graph .= "],\n datasets: [\n {\n label: '{$element_label}',\n backgroundColor: [";
if ($colors) {
foreach ($colors as $color) {
$graph .= "'" . $color . "',";
}
} else {
foreach ($data as $dta) {
$graph .= "'" . Laralum::randomColor() . "',";
}
}
$graph .= "],\n data: [";
foreach ($data as $dta) {
$graph .= $dta . ',';
}
$graph .= "],\n }\n ]\n },\n options: {\n title: {\n display: true,\n text: '" . $title . "',\n fontSize: 20,\n },\n scales: {\n yAxes: [{\n display: true,\n ticks: {\n beginAtZero: true,\n }\n }]\n }\n }\n });\n </script>\n ";
} elseif (Laralum::settings()->bar_chart_source == 'highcharts') {
$graph = "\n <script type='text/javascript'>\n \$(function () {\n \$('#{$id}').highcharts({\n chart: {\n plotBackgroundColor: null,\n plotBorderWidth: null,\n plotShadow: false,\n type: 'column'\n },\n title: {\n text: '{$title}'\n },\n plotOptions: {\n column: {\n pointPadding: 0.2,\n borderWidth: 0\n }\n },\n xAxis: {\n categories: [\n ";
foreach ($labels as $label) {
$graph .= "'{$label}',";
}
$graph .= "\n ],\n crosshair: true\n },\n series: [{\n name: '{$element_label}',\n data: [\n ";
foreach ($data as $dta) {
$graph .= "{$dta},";
}
$graph .= "\n ]\n }]\n });\n });\n </script>\n <div id='{$id}'></div>\n ";
} else {
$graph = "\n <script type='text/javascript'>\n google.charts.setOnLoadCallback(drawPieChart);\n function drawPieChart() {\n\n var data = google.visualization.arrayToDataTable([\n ['Element', '{$element_label}'],\n ";
$i = 0;
foreach ($data as $dta) {
$e = $labels[$i];
$v = $dta;
$graph .= "['{$e}', {$v}],";
$i++;
}
$graph .= "\n ]);\n\n var options = {\n legend: { position: 'top', alignment: 'end' },\n fontSize: 12,\n title: '{$title}',";
if ($colors) {
$graph .= "colors:[";
foreach ($colors as $color) {
$graph .= "'{$color}',";
}
$graph .= "],";
}
$graph .= "\n };\n\n var chart = new google.visualization.ColumnChart(document.getElementById('{$id}'));\n\n chart.draw(data, options);\n }\n </script>\n\n <div id='{$id}'></div>\n ";
}
return $graph;
}