public static function lineChart($title, $element_label, $labels, $data, $color = null)
{
$id = Laralum::randomString();
$default_color = Laralum::settings()->header_color;
if (Laralum::settings()->line_chart_source == 'chartjs') {
$graph = "\n <canvas id='{$id}'></canvas>\n <script>\n \tvar ctx = document.getElementById('{$id}');\n \tvar data = {\n \t labels: [";
foreach ($labels as $label) {
$graph .= "'" . $label . "',";
}
$graph .= "],\n \t datasets: [\n \t {\n \t label: '{$element_label}',\n \t lineTension: 0.3,\n ";
if ($color) {
$graph .= "borderColor: '{$color}',";
} else {
$graph .= "borderColor: '{$default_color}',";
}
$graph .= "\n \t data: [";
foreach ($data as $dta) {
$graph .= $dta . ',';
}
$graph .= "],\n \t }\n \t ]\n \t};\n\n \tvar myLineChart = new Chart(ctx, {\n \t\ttype: 'line',\n \t\tdata: data,\n \t\toptions: {\n \t\t\ttitle: {\n \t display: true,\n text: '{$title}',\n \t\t\t\tfontSize: 20,\n \t }\n \t }\n \t});\n </script>\n ";
} elseif (Laralum::settings()->line_chart_source == 'highcharts') {
$graph = "\n <script type='text/javascript'>\n \$(function () {\n \$('#{$id}').highcharts({\n title: {\n text: '{$title}',\n x: -20 //center\n },\n xAxis: {\n categories: [";
foreach ($labels as $label) {
$graph .= "'" . $label . "',";
}
$graph .= "]\n },\n yAxis: {\n title: {\n text: '{$element_label}'\n },\n plotLines: [{\n value: 0,\n height: 0.5,\n width: 1,\n color: '#808080'\n }]\n },\n plotOptions: {\n series: {\n color: '";
if ($color) {
$graph .= $color;
} else {
$graph .= $default_color;
}
$graph .= "'\n }\n },\n legend: {\n layout: 'vertical',\n align: 'right',\n verticalAlign: 'middle',\n borderWidth: 0\n },\n series: [{\n name: '{$element_label}',\n data: [";
foreach ($data as $dta) {
$graph .= $dta . ',';
}
$graph .= "]\n }]\n });\n });\n </script>\n <div id='{$id}'></div>\n ";
} else {
$graph = "\n <script type='text/javascript'>\n\n google.charts.setOnLoadCallback(drawChart);\n\n function drawChart() {\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 fontSize: 12,\n title: '{$title}',\n ";
if ($color) {
$graph .= "colors: ['{$color}'],";
} else {
$graph .= "colors: ['{$default_color}'],";
}
$graph .= "\n legend: { position: 'top', alignment: 'end' }\n };\n\n var chart = new google.visualization.LineChart(document.getElementById('{$id}'));\n\n chart.draw(data, options);\n }\n </script>\n\n <div id='{$id}'></div>\n ";
}
return $graph;
}