/** * random data generation */ public function actionRandomData() { echo "generate random data!\n"; RandomAu::deleteAll(); // 30day $day = 30; do { $date = date('Y-m-d', strtotime("-{$day} day")); // 5 channels $ch_num = 0; do { ++$ch_num; //record $rec = new RandomAu(); $rec->date = $date; $rec->channel = 'ch' . $ch_num; $dau = rand(100, 10000); $dnu = rand(100, $dau); $rec->dau = $dau; $rec->dnu = $dnu; $rec->save(); } while ($ch_num < 5); --$day; } while ($day > 0); echo "30 days 5 channels!\n"; }
public function actionV2() { //fetch data from db $recs = RandomAu::find()->limit(150)->asArray()->all(); $x_y = $this->_transRecs($recs, 'dau'); $y = $x_y['y']; $opt = $this->_getOptLineFromData('dau', $x_y['x'], $y); $total = 0; foreach ($y as $k => $i) { $s = array_sum($i); $pie_sum[$k] = $s; $total += $s; } if (isset($pie_sum)) { foreach ($pie_sum as $k => $i) { $pie_data[$k] = $i * 100 / $total; } } $opt_pie = $this->_getOptPieFromData(isset($pie_data) ? $pie_data : []); return $this->render('v2', ['opt_pie' => $opt_pie, 'opt_line' => $opt]); }