Здесь мы рассмотрим визуализацию данных с помощью Highcharts. Как правило, визуализация данных представляет данные в графическом или графическом формате, что помогает читателям легко понять данные.
Highcharts.com предоставляет множество различных типов диаграмм — линейные, областные, столбчатые, столбчатые, круговые и многие другие. Здесь мы реализуем линейную диаграмму с необходимыми данными, полученными из базы данных.
В этом примере мы показываем годовые продажи 10 разных компаний, таблицу базы данных можно найти здесь.
Файл модели будет выглядеть так:
<?php namespace App; use Illuminate\Database\Eloquent\Model; class CompanyDetails extends Model { protected $table = 'companydetails'; public $timestamps = false; }
Сначала мы получаем все данные из базы данных, а затем конвертируем код javascript highcharts в PHP и передаем данные в представление, чтобы можно было увидеть визуализацию данных.
Мы получаем данные от каждой компании отдельно,
$y2006Details = CompanyDetails::where ( 'year', '2006' )->get (); $y2007Details = CompanyDetails::where ( 'year', '2007' )->get (); $y2008Details = CompanyDetails::where ( 'year', '2008' )->get (); $y2009Details = CompanyDetails::where ( 'year', '2009' )->get (); $y2010Details = CompanyDetails::where ( 'year', '2010' )->get (); $y2011Details = CompanyDetails::where ( 'year', '2011' )->get (); $y2012Details = CompanyDetails::where ( 'year', '2012' )->get (); $y2013Details = CompanyDetails::where ( 'year', '2013' )->get (); $y2014Details = CompanyDetails::where ( 'year', '2014' )->get (); $y2015Details = CompanyDetails::where ( 'year', '2015' )->get ();
Мы получаем все названия компаний,
$companyNames = CompanyDetails::select ( 'company' )->groupBy ( 'company' )->get ();
Теперь мы помещаем все названия компаний в массив, чтобы передать этот массив в highcharts.
foreach ( $companyNames as $company ) array_push ( $comapanyNamesArray, $company->company );
Теперь мы помещаем каждую информацию о продажах компании в массив,
foreach ( $y2006Details as $det ) array_push ( $y2006, ( int ) $det->sales ); foreach ( $y2007Details as $det ) array_push ( $y2007, ( int ) $det->sales ); foreach ( $y2008Details as $det ) array_push ( $y2008, ( int ) $det->sales ); foreach ( $y2009Details as $det ) array_push ( $y2009, ( int ) $det->sales ); foreach ( $y2010Details as $det ) array_push ( $y2010, ( int ) $det->sales ); foreach ( $y2011Details as $det ) array_push ( $y2011, ( int ) $det->sales ); foreach ( $y2012Details as $det ) array_push ( $y2012, ( int ) $det->sales ); foreach ( $y2013Details as $det ) array_push ( $y2013, ( int ) $det->sales ); foreach ( $y2014Details as $det ) array_push ( $y2014, ( int ) $det->sales ); foreach ( $y2015Details as $det ) array_push ( $y2015, ( int ) $det->sales );
Теперь мы помещаем каждый из этого массива в массив, чтобы передать эти данные в highcharts,
array_push ( $dataArray, $y2006, $y2007, $y2008, $y2009, $y2010, $y2011, $y2012, $y2013, $y2014, $y2015 );
Передача имени и данных для массива серий в highcharts.
for($i = 0; $i < count ( $dataArray ); $i ++) $chartArray ["series"] [] = array ( "name" => $comapanyNamesArray [$i], "data" => $dataArray [$i] );
Теперь мы передаем некоторые данные, такие как заголовок диаграммы, имя оси X, имя оси Y, в highcharts.
$chartArray ["chart"] = array ( "type" => "line" ); $chartArray ["title"] = array ( "text" => "Yearly sales" ); $chartArray ["credits"] = array ( "enabled" => false ); $chartArray ["xAxis"] = array ( "categories" => array () ); $chartArray ["tooltip"] = array ( "valueSuffix" => "$" ); $chartArray ["xAxis"] = array ( "categories" => $categoryArray ); $chartArray ["yAxis"] = array ( "title" => array ( "text" => "Sales ( $ )" ) );
Мы передаем этот chartArray приветственному просмотру.
return view ( 'welcome' )->withChartarray ( $chartArray );
В представлении мы просто передаем этот массив в highcharts.
<script type="text/javascript"> $(function() { $('#container').highcharts( <?php echo json_encode($chartarray) ?>) }); </script>
Результат нашей визуализации
Исходное сообщение:
Сообщение: http://justlaravel.com/visualization-data-highcharts-laravel/
Рабочая демонстрация:
Рабочая демонстрация: http://demos.justlaravel.com/highcharts-in-laravel/
Источник на гитхабе:
Источник: https://github.com/avinashn/highcharts-demo-laravel