Lavachart每个月显示一次

时间:2017-04-06 02:09:49

标签: php laravel charts laravel-5.2

您好我需要认真的帮助,因为我已经尝试了所有方法而没有找到答案...所以我真的想要显示每月计算许多数据的图表,1月1日数据,3月3日数据等...请看在这个兄弟

public function lihatkeluhan(){
    $halaman="tindaklayanan";
    $keluhan_list=DB::table('keluhans')
    ->select(DB::raw('id,tanggal,produk,username,area,masalah,status'))->get();

    $keluhan_group = keluhan::select(DB::raw('id,tanggal,produk,username,area,masalah,status'))
    ->get()->groupBy(function($date) {
    return Carbon::parse($date->tanggal)->format('m'); // grouping by months
    });
    foreach ($keluhan_group as $group) {
        $count[] = count($group);
    }

    $bulan = array("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des");
    $count = Count($keluhan_list);

    $population = Lava::DataTable();
    $population->addDateColumn("Month")
               ->addNumberColumn('Keluhan');
               foreach($keluhan_group as $group){
               $population->addRow(["jan",$count]);
                }

    Lava::LineChart('Population', $population, [
        'title' => 'Tahun : 2017',
        'titleTextStyle' => [
            'color'    => '#212F3C',
            'fontSize' => 14
        ]
    ]);

$ keluhan_group用于按月分组 $ count结果是每个月的数据量 但是idk如何在图表上显示...

btw $ population-> addDateColumn(" Month")不起作用,它不显示月份而是显示年份T_T

3 个答案:

答案 0 :(得分:0)

使用以下代码将代码从del sys.modules["package"] del package 替换为$keluhan_group并检查。 在这里你需要传递一个月的数组和那个月的数量

$population
希望这会有所帮助。

答案 1 :(得分:0)

看到我使用“用户”表格实现了图表, 我没有在我的项目中使用lavachart所以我使用http://itsolutionstuff.com/post/laravel-5-geo-chart-example-and-demo-using-lavacharts-packageexample.html

更新了它

这是我的控制器代码:

 $users = Users::select(DB::raw("COUNT(*) as count ,  MONTHNAME(created_at) as month"))
    ->orderBy("created_at")
    ->groupBy(DB::raw("month(created_at)"))
    ->get()->toArray();

    $chart_array = array();
    foreach($users as $data){
        $n_data = [];
        array_push($n_data,$data['month'],$data['count']);
        array_push($chart_array,$n_data);
    }
    $lava = new Lavacharts; 
    $popularity = $lava->DataTable();
    $popularity->addStringColumn('Country')
               ->addNumberColumn('Popularity')
               ->addRows($chart_array);
    $lava->LineChart('demochart', $popularity, [
            'title' => 'Demo population count',
            'animation' => [
            'startup' => true,
            'easing' => 'inAndOut'
        ],
        'colors' => ['blue', '#F4C1D8']
    ]);
return view('welcome', ['lava' => $lava]);

并在我的.blade文件中:

<div id="temps_div"></div>

<?= $lava->render('LineChart', 'demochart' , 'temps_div') ?>

希望这会有帮助。

答案 2 :(得分:0)

$companies=Company::all();

$start    = (new DateTime('2017-01-01'))->modify('first day of this month');
$end      = (new DateTime('2022-01-01'))->modify('first day of next month');
$interval = DateInterval::createFromDateString('12 month');
$period   = new DatePeriod($start, $interval, $end);

$lava = new Lavacharts; // See note below for Laravel

$finances = \Lava::DataTable();

$finances->addDateColumn('Year');
foreach($companies as $company)
{
    $finances  ->addNumberColumn($company->company_name." ".$company->company_location." total sales amount");

}
foreach ($period as $dt) {

    $yeardate=$dt->format("Y-m-d");
    $insertrow = array( $yeardate );
    foreach($companies as $company)
    {
        $cmp= $company->company_name;
        $loc= $company->company_location;
        $companiesinfo[]=$cmp." ".$loc;
        $databasename=$company->database_name;
        \Config::set('database.connections.tenant.host', 'localhost');
        \Config::set('database.connections.tenant.username','root');
        \Config::set('database.connections.tenant.password', '');
        \Config::set('database.connections.tenant.database', $databasename);
        \Config::set('database.default', 'tenant');
        DB::reconnect('tenant');

        $calculatesalesofcompany=B2CFINAL::
        select(DB::raw('sum(GrandTotal) as total'))
                ->where(DB::raw('YEAR(SaleDate)'), '=', $yeardate)
                ->first();

        if($calculatesalesofcompany->total==null)
        {
                $calculatesalesofcompany->total=0;
        }
        array_push( $insertrow, $calculatesalesofcompany->total );

    }


    $finances   ->addRow($insertrow);
}



\Lava::ComboChart('Finances2', $finances2, [
    'title' => 'Company Performance',
    'titleTextStyle' => [
            'color'    => 'rgb(123, 65, 89)',
            'fontSize' => 16
    ],
    'legend' => [
            'position' => 'in'
    ],
    'seriesType' => 'bars',

]);