The above example shows you how to create LineChart
using ChartJs package. In this example, for purpose of chart demonstration only, we do use mock-up data from array. As you can see, the KoolReport's widget in general support dataSource could be DataStore, Process, DataSource or even simple array.
This example shows how to build a line chart with the y-axis range set using the suggestedMin
and suggestedMax
properties. The data minimum and maximum used for determining the ticks is Math.min(dataMin, suggestedMin) and Math.max(dataMax, suggestedMax).
For example:
...
"scales" => array(
"yAxes" => array(
array(
"ticks" => array(
"suggestedMin" => 10,
"suggestedMax" => 50,
)
)
)
)
...
<?php
require_once "../../../load.koolreport.php";
require_once "MyReport.php";
$report = new MyReport;
$report->run();
$report->render();
?>
<html>
<head>
<title>
Suggested Min/Max Settings
</title>
</head>
<body>
<div>
<div id='report_render'>
</div>
</div>
</body>
</html>
<?php
class MyReport extends \koolreport\KoolReport
{
}
<div id="report_render">
<?php
$data = [
['month' => 'January', 'My First dataset' => 10, 'My Second dataset' => 18],
['month' => 'February', 'My First dataset' => 30, 'My Second dataset' => 33],
['month' => 'March', 'My First dataset' => 39, 'My Second dataset' => 22],
['month' => 'April', 'My First dataset' => 20, 'My Second dataset' => 19],
['month' => 'May', 'My First dataset' => 25, 'My Second dataset' => 11],
['month' => 'June', 'My First dataset' => 34, 'My Second dataset' => 39],
['month' => 'July', 'My First dataset' => -10, 'My Second dataset' => 30],
];
\koolreport\chartjs\LineChart::create(array(
'dataSource' => $data,
'columns' => array(
"month",
"My First dataset" => array(
"fill" => false,
"borderColor" => 'rgb(255, 99, 132)',
"backgroundColor" => 'rgb(255, 99, 132)'
),
"My Second dataset" => array(
"fill" => false,
"borderColor" => 'rgb(54, 162, 235)',
"backgroundColor" => 'rgb(54, 162, 235)'
)
),
"options" => array(
"responsive" => true,
"title" => array(
"display" => true,
"text" => 'Min and Max Settings'
),
"scales" => array(
"yAxes" => array(
array(
"ticks" => array(
"suggestedMin" => 10,
"suggestedMax" => 50,
)
)
)
)
)
));
?>
</div>