function set_labels_from_array($a) { $x_axis_labels = new x_axis_labels(); $x_axis_labels->set_labels($a); $this->labels = $x_axis_labels; if (isset($this->steps)) { $x_axis_labels->set_steps($this->steps); } }
function get_statistic() { $this->load->library('OpenFlashChartLib', NULL, 'OFCL'); $data_1 = array(); $data_2 = array(); // generate 7 data points for ($i = 0; $i <= 7; $i++) { $x = mktime(0, 0, 0, date("m"), date("d") - $i, date('Y')); $param['sms_date'] = date('Y-m-d', mktime(0, 0, 0, date("m"), date("d") - $i, date("Y"))); $param['user_id'] = $this->session->userdata('id_user'); $y = $this->Kalkun_model->get_sms_used('date', $param); $data_1[] = new scatter_value($x, $y); $data_2[] = $y; } $def = new solid_dot(); $def->size(4)->halo_size(0)->colour('#21759B')->tooltip('#date:d M y#<br>#val# SMS'); $line = new scatter_line('#21759B', 3); $line->set_values($data_1); $line->set_default_dot_style($def); $line->set_key("SMS used in last 7 days", 10); $x = new x_axis(); // grid line and tick every 10 $x->set_range(mktime(0, 0, 0, date("m"), date("d") - 7, date('Y')), mktime(0, 0, 0, date("m"), date("d"), date('Y'))); // show ticks and grid lines for every day: $x->set_steps(86400); $labels = new x_axis_labels(); // tell the labels to render the number as a date: $labels->text('#date:M-d#'); // generate labels for every day $labels->set_steps(86400); // only display every other label (every other day) $labels->visible_steps(1); $labels->rotate(45); // finally attach the label definition to the x axis $x->set_labels($labels); $y = new y_axis(); if (max($data_2) > 0) { $max = max($data_2); } else { $max = 10; } $y->set_range(0, $max, 10); $chart = new open_flash_chart(); //$chart->set_title( $title ); $chart->add_element($line); $chart->set_x_axis($x); $chart->set_y_axis($y); echo $chart->toPrettyString(); }
/** * Method to render a statistical chart using Open Flash library. * * @return false if someting wrong */ function render() { $values = array(); foreach ($this->values as $number_variable => $variable) { $values[$number_variable] = (int) $variable; } $area = new area(); $area->set_default_dot_style(new hollow_dot()); $area->set_colour('#5B56B6'); $area->set_fill_alpha(0.4); $area->set_values($values); $area->set_key('Values', 12); $x_labels = new x_axis_labels(); $x_labels->set_steps(1); $x_labels->set_vertical(); $x_labels->set_colour('#A2ACBA'); $x_labels->set_labels($this->legend); $x = new x_axis(); $x->set_colour('#A2ACBA'); $x->set_grid_colour('#D7E4A3'); $x->set_offset(false); $x->set_steps(1); // Add the X Axis Labels to the X Axis $x->set_labels($x_labels); $y = new y_axis(); $y_max = max($values) > 0 ? max($values) : 4; $y_mod = (int) ($y_max / 4 + 1); $y_max += $y_mod - $y_max % $y_mod; $y->set_range(0, $y_max, $y_mod); $y->labels = null; $y->set_offset(false); $chart = new open_flash_chart(); $chart->set_x_axis($x); $chart->add_y_axis($y); $chart->add_element($area); return $chart; }
$user_line->set_values($user_signups); $user_line->colour('#0099cc'); $user_line->set_key('User', 14); $grp_line = new line(); $grp_line->set_values($groups_added); $grp_line->colour('#990000'); $grp_line->set_key('Groups', 14); $max = $max; $steps = round($max / 5, 0.49); $y = new y_axis(); $y->set_range(0, $max, $steps); $chart = new open_flash_chart(); $chart->set_title($title); $chart->add_element($vid_line); $chart->add_element($user_line); $chart->add_element($grp_line); $x_labels = new x_axis_labels(); $x_labels->set_steps(1); $x_labels->set_vertical(); $x_labels->set_colour('#A2ACBA'); $x_labels->set_labels($year); $x = new x_axis(); $x->set_colour('#A2ACBA'); $x->set_grid_colour('#D7E4A3'); $x->set_offset(false); $x->set_steps(4); // Add the X Axis Labels to the X Axis $x->set_labels($x_labels); $chart->set_x_axis($x); $chart->set_y_axis($y); echo $chart->toString();
$line_watt->set_tooltip("#val# W"); $line_tot_default_dot = new dot(); $line_tot_default_dot->size(4)->halo_size(2); $line_tot = new line(); $line_tot->set_default_dot_style($line_tot_default_dot); $line_tot->set_values($data_tot); $line_tot->set_colour('#A0A000'); $line_tot->set_width(2); $line_tot->set_key('Gesamt (kWh)', 10); $line_tot->set_tooltip("#val# kWh"); $max = max(max($data_watt), $max_val) * 1.15; $y = new y_axis(); $y->set_range(0, $max, round($max * 0.1, -1)); $x_labels = new x_axis_labels(); $x_labels->set_vertical(); $x_labels->set_steps(6); $x_labels->set_colour('#333333'); $x_labels->set_labels($time_axis); $x = new x_axis(); $x->set_colour('#333333'); $x->set_grid_colour('#ffffff'); $x->set_offset(false); $x->set_steps(3); // Add the X Axis Labels to the X Axis $x->set_labels($x_labels); $chart = new open_flash_chart(); $chart->set_tooltip($tooltip); $chart->set_title($title); //$chart->add_element( $line_max ); $chart->add_element($line_watt); $chart->add_element($bars_curr);
} //Prevent error on no data if (count($datalist < 1)) { $datalist[] = 0; $labellist[] = 0; } $title = new title("Checking account forecast"); $default_dot = new dot(); $default_dot->tooltip('$#val#'); $line = new line(); $line->set_values($datalist); $line->set_default_dot_style($default_dot); $x_labels = new x_axis_labels(); $x_labels->rotate(45); $x_labels->set_labels($labellist); $x_labels->set_steps(3); $x = new x_axis(); $x->set_labels($x_labels); $y = new y_axis(); $y->set_range(min(min($datalist) - 10, 0), round(max($datalist) * 1.1)); $y->set_label_text("\$#val#"); $chart = new open_flash_chart(); $chart->set_title($title); $chart->add_element($line); $chart->set_x_axis($x); $chart->set_y_axis($y); $chart->set_bg_colour('#FFFFFF'); echo $chart->toPrettyString(); ?>
function getNewUsersByTime($timePhase, $fromDate = '', $toDate = '') { $this->load->library('ofc'); $userId = $this->common->getUserId(); $this->ofc->open_flash_chart(); $this->ofc->set_bg_colour(CHART_BG_COLOR); $toTime = date("Y-m-d", strtotime("-1 day")); if ($timePhase == "7day") { $fromTime = date("Y-m-d", strtotime("-8 day")); $color = CHART_LINE_1; $key = "近7日新增用户"; $title = new title("近7日新增用户统计"); } if ($timePhase == "1month") { $title = new title("近30天新增用户统计"); $fromTime = date("Y-m-d", strtotime("-31 day")); $color = CHART_LINE_2; $key = "近30天新增用户统计"; } if ($timePhase == "3month") { $title = new title("近三个月新增用户统计"); $fromTime = date("Y-m-d", strtotime("-92 day")); $color = CHART_LINE_3; $key = "近三个月新增用户统计"; } if ($timePhase == "all") { $title = new title("所有新增用户统计"); $fromTime = '1970-01-01'; $color = CHART_LINE_4; $key = "所有新增用户统计"; } if ($timePhase == "any") { $title = new title("所有新增用户统计"); $fromTime = $fromDate; $toTime = $toDate; $color = CHART_LINE_4; $key = "所有新增用户统计"; } $fromTime = $this->product->getUserStartDate($userId, $fromTime); $query = $this->newusermodel->getNewUsersByUserId($fromTime, $toTime, $userId); $data = array(); $maxY = 0; $recordCount = $query->num_rows(); $steps = $recordCount - 1 <= 10 ? 2 : (int) (((int) $recordCount - 1) / 10); $xlabelArray = array(); if ($query != null && $query->num_rows() > 0) { foreach ($query->result() as $row) { $dot = new dot(); $dot->size(3)->halo_size(1)->colour($color); $dot->tooltip($row->startdate . " 新增" . $row->totalusers . "用户"); $dot->value((int) $row->totalusers); if ((int) $row->totalusers > $maxY) { $maxY = (int) $row->totalusers; } array_push($xlabelArray, date('y-m-d', strtotime($row->startdate))); array_push($data, $dot); } } $y = new y_axis(); $y->set_range(0, $this->common->getMaxY($maxY), $this->common->getStepY($maxY)); $x = new x_axis(); $x->set_range(0, $recordCount > 1 ? $recordCount - 1 : 1); $x_labels = new x_axis_labels(); $x_labels->set_steps($steps); $x_labels->set_vertical(); $x_labels->set_colour(CHART_LABEL_COLOR); $x_labels->set_size(13); $x_labels->set_labels($xlabelArray); $x_labels->rotate(-25); $x->set_labels($x_labels); $x->set_steps(1); $this->ofc->set_y_axis($y); $this->ofc->set_x_axis($x); $dot = new dot(); $dot->size(3)->halo_size(1)->colour($color); $line = new line(); $line->set_default_dot_style($dot); $line->set_values($data); $line->set_width(2); $line->set_colour($color); $line->colour($color); $line->set_key($key, 12); $this->ofc->add_element($line); $title->set_style("{font-size: 14px; color:#000000; font-family: Verdana; text-align: center;}"); // $x_legend = new x_legend("<a href=\"javascript:changeChartName('chartNewUser')\">新增用户</a> <a href=\"javascript:changeChartName('chartActiveUser')\">活跃用户</a> <a href=\"javascript:changeChartName('chartStartUser')\">启动用户</a>"); // $this->ofc->set_x_legend( $x_legend ); // $x_legend->set_style( '{font-size: 14px; color: #778877}' ); $this->ofc->set_title($title); echo $this->ofc->toPrettyString(); }
public function index2Action() { $this->_helper->layout->disableLayout(); include 'open-flash-chart.php'; $db = Zend_Registry::get('db'); $select = $db->select(); $select->from('report', array('left(create_date,10) as date', 'count(*)'))->where('report.campaign_id = 3')->where("report.state = 'APPROVED'")->group('date')->order('date')->limit(0); $results = $db->fetchAll($select); $array_data = array(); $array_create_date = array(); foreach ($results as $result) { array_push($array_data, (int) $result["count(*)"]); array_push($array_create_date, $result["date"]); } $title = new title("BugsLock Reports By Day"); $y = new y_axis(); $y->set_range(0, 100, 10); $x = new x_axis(); $x_labels = new x_axis_labels(); $x_labels->set_labels($array_create_date); $x_labels->set_steps(2); $x_labels->rotate(40); $x->set_labels($x_labels); //There is a bug on the tooltip of bar: can not show #x_label#. So use bar_stack instead of bar here. // $bar = new bar_filled( '#E2D66A', '#577261' ); // $bar->set_values($array_data); // $bar->set_tooltip('#x_label#: #val#'); $bar = new bar_stack(); $bar->set_colours(array('#E2D66A', '#577261')); foreach ($array_data as $date) { $bar->append_stack(array((int) $date)); } $bar->set_tooltip('#x_label#: #val#'); $this->view->chart3 = new open_flash_chart(); $this->view->chart3->set_title($title); $this->view->chart3->add_element($bar); $this->view->chart3->set_bg_colour('#FFFFFF'); $this->view->chart3->set_x_axis($x); $this->view->chart3->set_y_axis($y); // echo $this->view->chart3->toPrettyString(); }
} //Prevent error on no data if (count($datalist < 1)) { $datalist[] = 0; $labellist[] = 0; } $title = new title("Daily checking account balance"); $default_dot = new dot(); $default_dot->tooltip('$#val#'); $line = new line(); $line->set_values($datalist); $line->set_default_dot_style($default_dot); $x_labels = new x_axis_labels(); $x_labels->rotate(45); $x_labels->set_labels($labellist); $x_labels->set_steps(2); $x = new x_axis(); $x->set_labels($x_labels); $y = new y_axis(); $y->set_range(0, round(max($datalist) * 1.1)); $y->set_label_text("\$#val#"); $chart = new open_flash_chart(); $chart->set_title($title); $chart->add_element($line); $chart->set_x_axis($x); $chart->set_y_axis($y); $chart->set_bg_colour('#FFFFFF'); echo $chart->toPrettyString(); ?>
//-----/end get ranges ----------------- // Prepare the x-axis $x = new x_axis(); $x->set_range($lowest, $highest); // Calculate the steps and visible steps $step = ($highest - $lowest) / 60; $step_vis = 2; // do not allow steps to be less than 30 minutes if ($step < 26400) { # 86400 $step = 26400; $step_vis = 1; } $x->set_steps($step); $labels = new x_axis_labels(); $labels->text('#date:Y-m-d#'); $labels->set_steps($step); $labels->visible_steps($step_vis); $labels->rotate(90); $x->set_labels($labels); // Prepare the y-axis $y = new y_axis(); // $maximum is already set above // set the range and y-step $y->set_range(0, $maximum + getIdealYSteps($maximum)); $y->set_steps(getIdealYSteps($maximum)); # $chart->add_element( $s ); $chart->set_x_axis($x); $chart->add_y_axis($y); // echo a pretty ofc-string anyway echo $chart->toPrettyString();
function admin_graphs($id = null) { App::import('Vendor', 'Newsletter.php-ofc-library', array('file' => 'php-ofc-library/open-flash-chart.php')); //Configure::write('debug', 0); //$this->layout = null; // generate some random data srand((double) microtime() * 1000000); $title = new title(__d("newsletter", "Views per time", true)); $chart = new open_flash_chart(); $chart->set_title($title); $newsletter = $this->Newsletter->read(null, $id); // Views $dates = array(); $values = array(); //// init sender class //// App::import('Lib', 'Newsletter.ClassCollection'); $senderOpt = NewsletterConfig::load('sender'); if (!is_array($senderOpt)) { $senderOpt = array('name' => $senderOpt); } $sender = ClassCollection::getObject('NewsletterSender', $senderOpt['name']); //// query //// $opt = array('type' => 'graph', 'query' => array('fields' => array('count(*) as nb', 'DATE(NewsletterEvent.date) as date'), 'conditions' => array('NewsletterSended.newsletter_id' => $id, 'or' => array('NewsletterEvent.action' => 'view', array('NewsletterEvent.action IS NULL', 'NewsletterEvent.url' => null))), 'group' => 'DATE(NewsletterEvent.date)', 'order' => 'DATE(NewsletterEvent.date)', 'model' => 'NewsletterEvent')); $data = $this->_get_stats(array('viewByDays' => $opt), $newsletter, $sender); //debug($data); $dates = $data['viewByDays']; $min_value = 99999999; $max_value = 0; foreach ($dates as $d => $val) { if ($val < $min_value) { $min_value = $val; } if ($val > $max_value) { $max_value = $val; } } if ($max_value == $min_value) { $max_value++; $min_value--; } $min_value = 0; //debug($dates); $min_date = key($dates); end($dates); $max_date = key($dates); for ($cur_date = $min_date; $cur_date <= $max_date; $cur_date = $cur_date + 86400) { $x = strtotime('00:00:00', $cur_date); if (isset($dates[$cur_date])) { $values[] = new scatter_value($x, $dates[$cur_date]); } else { $values[] = new scatter_value($x, 0); } } if ($max_date == $min_date) { $max_date += 86400; } //debug($values); //pr($views); $line_dot = new line(); $line_dot->set_values($values); $line_dot->set_text("Views"); $chart->add_element($line_dot); $y = new y_axis(); $y->set_range($min_value, $max_value, ($max_value - $min_value) / 10); $x = new x_axis(); // grid line and tick every 10 $x->set_range(mktime(0, 0, 0, date("m", $min_date), date("d", $min_date), date("Y", $min_date)), mktime(0, 0, 0, date("m", $max_date), date("d", $max_date), date("Y", $max_date))); // show ticks and grid lines for every day: $x->set_steps(86400); $labels = new x_axis_labels(); // tell the labels to render the number as a date: $labels->text('#date:d-m-Y#'); // generate labels for every day $labels->set_steps(86400); // only display every other label (every other day) $labels->visible_steps(ceil(($max_date - $min_date) / 86400 / 20)); $labels->rotate(90); $x->set_labels($labels); $chart->set_x_axis($x); $chart->set_y_axis($y); $chart->set_bg_colour("#FFFFFF"); //print_r($views); //$this->set("allviews",$views[0][0]['count(*)']); $line_dot = new line(); $line_dot->set_values(array(2, 1)); $line_dot->set_text("Unique views"); $line_dot->colour("#0000000"); //$chart->add_element($line_dot); // echo $chart->toPrettyString(); exit; //$this->render(false); }
public function get_jx_json_bar($info, $type = '') { $year = array_keys($info); $price = array_values($info); $chart = new open_flash_chart(); $chart->set_bg_colour('#FFFFFF'); //flash背景颜色 $x_labels = new x_axis_labels(); $x_labels->set_steps(1); $x_labels->set_size(12); $x_labels->set_colour('#000000'); if (count($year) > 0) { $x_labels->set_vertical(); } $x_labels->set_labels($year); // // 插入数据 $x = new x_axis(); $x->set_colour('#000000'); $x->set_grid_colour('#dadada'); $x->set_offset(true); $x->set_steps(1); // Add the X Axis Labels to the X Axis $x->set_labels($x_labels); $x->set_offset(true); $chart->set_x_axis($x); // $bar = new bar_filled( '#74b1e0', '#9dc7e8' ); // $bar->set_values( $price ); $price_array = array(); foreach ($price as $k => $v) { $price_array[$k] = new bar_value($v); $price_array[$k]->set_colour('#74b1e0'); if ($type == 'percent') { //$y->set_label_text("#val#%"); $price_array[$k]->set_tooltip($year[$k] . '<br>' . '' . number_format($v) . '%'); } else { $price_array[$k]->set_tooltip($year[$k] . '<br>' . '' . number_format($v)); } } $bar = new bar_glass(); $bar->set_values($price_array); $chart->add_element($bar); // // LOOK: // //$x_legend = new x_legend( '1983 to 2008' ); //$x_legend->set_style( '{font-size: 20px; color: #778877}' ); //$chart->set_x_legend( $x_legend ); // // remove this when the Y Axis is smarter // $y = new y_axis(); $max = $this->get_the_right_y(max($price)); $max = $max > 0 ? $max : 1; $y->set_range(0, ($max / 5 + 1) * 5, $max / 5 + 1); // if ($max > 20 && $max <= 100) { // // $y->set_range(0, $max, 10); // }elseif($max >= 10&&$max<=20){ // $y->set_range(0, $max, 5); // } // else { // $y->set_range(0, $max); // } $y->set_colour('#000000'); $y->set_grid_colour('#dadada'); if ($type == 'percent') { $y->set_label_text(" #val#%"); } else { $y->set_label_text(" #val#"); } $chart->add_y_axis($y); $info = $chart->toPrettyString(); return $info; }
function result_screen($mode = 'reg') { global $month_names; $page_title = "Statistic Center Results"; $page_detail = " "; // ----------------------------------------- if (!checkdate($_POST['to_month'], $_POST['to_day'], $_POST['to_year'])) { die("The 'Date To:' time is incorrect, please check the input and try again"); } if (!checkdate($_POST['from_month'], $_POST['from_day'], $_POST['from_year'])) { die("The 'Date From:' time is incorrect, please check the input and try again"); } // ----------------------------------------- $to_time = mktime(12, 0, 0, $_POST['to_month'], $_POST['to_day'], $_POST['to_year']); $from_time = mktime(12, 0, 0, $_POST['from_month'], $_POST['from_day'], $_POST['from_year']); // $sql_date_to = date("Y-m-d",$to_time); // $sql_date_from = date("Y-m-d",$from_time); $human_to_date = getdate($to_time); $human_from_date = getdate($from_time); // ----------------------------------------- if ($mode == 'reg') { $table = 'Registration Statistics'; $sql_table = 'users'; $sql_field = 'added'; $page_detail = "Showing the number of users registered. (Note: All times based on GMT)"; } else { if ($mode == 'rate') { $table = 'Rating Statistics'; $sql_table = 'ratings'; $sql_field = 'added'; $page_detail = "Showing the number of ratings. (Note: All times based on GMT)"; } else { if ($mode == 'post') { $table = 'Post Statistics'; $sql_table = 'posts'; $sql_field = 'added'; $page_detail = "Showing the number of posts. (Note: All times based on GMT)"; } else { if ($mode == 'msg') { $table = 'PM Sent Statistics'; $sql_table = 'messages'; $sql_field = 'added'; $page_detail = "Showing the number of sent messages. (Note: All times based on GMT)"; } else { if ($mode == 'torr') { $table = 'Torrent Statistics'; $sql_table = 'torrents'; $sql_field = 'added'; $page_detail = "Showing the number of Torrents. (Note: All times based on GMT)"; } else { if ($mode == 'bans') { $table = 'Ban Statistics'; $sql_table = 'bans'; $sql_field = 'added'; $page_detail = "Showing the number of Bans. (Note: All times based on GMT)"; } else { if ($mode == 'comm') { $table = 'Comment Statistics'; $sql_table = 'comments'; $sql_field = 'added'; $page_detail = "Showing the number of torrent Comments. (Note: All times based on GMT)"; } else { if ($mode == 'new') { $table = 'News Statistics'; $sql_table = 'news'; $sql_field = 'added'; $page_detail = "Showing the number of News Items added. (Note: All times based on GMT)"; } else { if ($mode == 'poll') { $table = 'Poll Statistics'; $sql_table = 'polls'; $sql_field = 'added'; $page_detail = "Showing the number of Polls added. (Note: All times based on GMT)"; } else { if ($mode == 'rqst') { $table = 'Request Statistics'; $sql_table = 'requests'; $sql_field = 'added'; $page_detail = "Showing the number of Requests made. (Note: All times based on GMT)"; } } } } } } } } } } switch ($_POST['timescale']) { case 'daily': $sql_date = "%w %U %m %Y"; $php_date = "F jS - Y"; // $sql_scale = "DAY"; break; case 'monthly': $sql_date = "%m %Y"; $php_date = "F Y"; // $sql_scale = "MONTH"; break; default: // weekly $sql_date = "%U %Y"; $php_date = " [F Y]"; // $sql_scale = "WEEK"; break; } $sortby = isset($_POST['sortby']) ? mysql_real_escape_string($_POST['sortby']) : ""; // $sortby = sqlesc($sortby); $sqlq = "SELECT UNIX_TIMESTAMP(MAX({$sql_field})) as result_maxdate,\n\t\t\t\t COUNT(*) as result_count,\n\t\t\t\t DATE_FORMAT({$sql_field},'{$sql_date}') AS result_time\n\t\t\t\t FROM {$sql_table}\n\t\t\t\t WHERE UNIX_TIMESTAMP({$sql_field}) > '{$from_time}'\n\t\t\t\t AND UNIX_TIMESTAMP({$sql_field}) < '{$to_time}'\n\t\t\t\t GROUP BY result_time\n\t\t\t\t ORDER BY {$sql_field} {$sortby}"; $res = @mysql_query($sqlq); $running_total = 0; $max_result = 0; $results = array(); if (mysql_num_rows($res)) { while ($row = mysql_fetch_assoc($res)) { if ($row['result_count'] > $max_result) { $max_result = $row['result_count']; } $running_total += $row['result_count']; $results[] = array('result_maxdate' => $row['result_maxdate'], 'result_count' => $row['result_count'], 'result_time' => $row['result_time']); } include 'chart/php-ofc-library/open-flash-chart.php'; foreach ($results as $pOOp => $data) { $counts[] = (int) $data['result_count']; if ($_POST['timescale'] == 'weekly') { $labes[] = "Week #" . strftime("%W", $data['result_maxdate']) . "\n" . date($php_date, $data['result_maxdate']); } else { $labes[] = date($php_date, $data['result_maxdate']); } } $title = new title($page_title . "\n" . ucfirst($_POST['timescale']) . " " . $table . " " . $human_from_date['mday'] . " " . $month_names[$human_from_date['mon']] . " " . $human_from_date['year'] . " to " . $human_to_date['mday'] . " " . $month_names[$human_to_date['mon']] . " " . $human_to_date['year']); $chart = new open_flash_chart(); $chart->set_title($title); $line_1 = new line_hollow(); $line_1->set_values($counts); $line_1->set_key($table . " | Total: " . $running_total, 12); $line_1->set_halo_size(1); $line_1->set_width(2); $line_1->set_colour('#0099FF'); $line_1->set_dot_size(5); $chart->add_element($line_1); $x_labels = new x_axis_labels(); $x_labels->set_steps(2); $x_labels->set_vertical(); $x_labels->set_colour('#000000'); $x_labels->set_size(12); $x_labels->set_labels($labes); $x = new x_axis(); $x->set_colours('#A2ACBA', '#ECFFAF'); $x->set_steps(2); $x->set_labels($x_labels); $chart->set_x_axis($x); $y = new y_axis(); $y->set_steps(2); $y->set_colour('#A2ACBA'); $y->set_range(0, max($counts) + 5, 50); $chart->add_y_axis($y); $cont = $chart->toPrettyString(); // toFile($_SERVER["DOCUMENT_ROOT"]."/chart/","chart.json",$cont,false); // unset($cont); $html = "<script type=\"text/javascript\" src=\"chart/js/json/json2.js\"></script>"; $html .= "<script type=\"text/javascript\" src=\"chart/js/swfobject.js\"></script>"; $html .= "<script type=\"text/javascript\">\n\n\t\t\t\tfunction open_flash_chart_data()\n\t\t\t\t{\n\t\t\t\treturn JSON.stringify(data);\n\t\t\t\t}\n\n\t\t\t\tfunction findSWF(movieName) {\n\t\t\t\t if (navigator.appName.indexOf(\"Microsoft\")!= -1) {\n\t\t\t\t\treturn window[movieName];\n\t\t\t\t } else {\n\t\t\t\t\treturn document[movieName];\n\t\t\t\t }\n\t\t\t\t}\n\n\t\t\t\tvar data = " . $cont . ";\n\n\t\t\t\t\t swfobject.embedSWF(\"chart/open-flash-chart.swf\", \"my_chart\", \"800\", \"" . (max($counts) * 5 < 200 ? "250" : (max($counts) * 5 > 400 ? "400" : max($counts) * 5)) . "\", \"9.0.0\", \"expressInstall.swf\", {\"loading\":\"Please wait while the stats are loaded!\"} );\n\t\t\t\t\t </script>"; $html .= "<div id=\"my_chart\"></div>"; } else { $html .= "No results found\n"; } print $html . "<br />"; }
function _render_statistic($x = array(), $yout = array(), $yin = array(), $type = 'bar', $points) { $this->load->helper('date'); $this->load->library('OpenFlashChartLib', NULL, 'OFCL'); $data_1 = array(); $data_2 = array(); $data_3 = array(); switch ($type) { case 'bar': for ($i = 0; $i <= $points; $i++) { $data_1[$i] = $x[$i]; $data_2[$i] = (int) $yout[$i]; // force to integer $data_3[$i] = (int) $yin[$i]; // force to integer } $data_1 = array_reverse($data_1); $data_2 = array_reverse($data_2); $data_3 = array_reverse($data_3); $bar_1 = new bar(); $bar_1->set_values($data_3); $bar_1->set_colour('#639F45'); $bar_1->key(lang('kalkun_incoming_sms'), 10); $bar_1->set_tooltip('#x_label#<br>#val# SMS'); //$bar_1->set_key("SMS used in last 7 days", 10); $bar_2 = new bar(); $bar_2->set_values($data_2); $bar_2->set_colour('#21759B'); $bar_2->key(lang('kalkun_outgoing_sms'), 10); $bar_2->set_tooltip('#x_label#<br>#val# SMS'); $x = new x_axis(); $labels = new x_axis_labels(); $labels->set_labels($data_1); $labels->set_steps(1); $x->set_labels($labels); $y = new y_axis(); $max = max(max($data_2), max($data_3)); if ($max < 10) { $max = 10; } $max = ceil($max / 5) * 5; $range = ceil($max / 5); $range = ceil($range / 10) * 10; $y->set_range(0, $max, $range); $element1 = $bar_1; $element2 = $bar_2; break; case 'line': for ($i = 0; $i <= 7; $i++) { $data_1[$i] = new scatter_value($x[$i], $yin[$i]); $data_2[$i] = new scatter_value($x[$i], $yout[$i]); $data_3[$i] = (int) $yin[$i]; $data_4[$i] = (int) $yout[$i]; } $def = new solid_dot(); $def->size(4)->halo_size(0)->colour('#21759B')->tooltip('#date:d M y#<br>#val# SMS'); $line_1 = new scatter_line('#639F45', 3); $line_1->set_values($data_1); $line_1->set_default_dot_style($def); $line_1->set_key("Incoming SMS", 10); $line_2 = new scatter_line('#21759B', 3); $line_2->set_values($data_2); $line_2->set_default_dot_style($def); $line_2->set_key("Outgoing SMS", 10); $x = new x_axis(); // grid line and tick every 10 $x->set_range(mktime(0, 0, 0, date("m"), date("d") - 7, date('Y')), mktime(0, 0, 0, date("m"), date("d"), date('Y'))); // show ticks and grid lines for every day: $x->set_steps(86400); $labels = new x_axis_labels(); // tell the labels to render the number as a date: $labels->text('#date:M-d#'); // generate labels for every day $labels->set_steps(86400); // only display every other label (every other day) $labels->visible_steps(1); $labels->rotate(45); // finally attach the label definition to the x axis $x->set_labels($labels); $y = new y_axis(); $max = max(max($data_3), max($data_4)); if ($max < 1) { $max = 10; } $y->set_range(0, $max, round($max / 100) * 10); $element1 = $line_1; $element2 = $line_2; break; } $chart = new open_flash_chart(); $chart->add_element($element1); $chart->add_element($element2); $chart->set_x_axis($x); $chart->set_y_axis($y); echo $chart->toPrettyString(); }
$line_dot->set_key($legend, 10); $chart->add_element($line_dot); $line_dot = NULL; } $y = new y_axis(); // grid steps: $y->set_range(0, $max_val + 10, (int) (($max_val + 10) / 10)); /*$y_labels = new y_axis_labels(); $y_labels->set_size (15); $y->set_labels( $y_labels );*/ $chart->set_y_axis($y); $x = new x_axis(); $x->offset(true)->steps(1); //var_dump($labels); $chart->set_x_axis($x); // // Style the X Axis Labels: // $x_labels = new x_axis_labels(); // show every other label: $x_labels->set_steps(5); //$x_labels->set_size( 15 ); // set them vertical //$x_labels->set_vertical(); $x_labels->set_labels($labels); // // Add the X Axis Labels to the X Axis // $x->set_labels($x_labels); //$x->set_labels_from_array($labels); echo $chart->toPrettyString();
} } } // // create an X Axis object $x = new x_axis(); $x->set_grid_colour("#E3E3E3"); //$x->steps(3); //$x->set_labels_from_array($labels); // grid line and tick every day $x->set_steps(TIME_DAY); $labels = new x_axis_labels(); $label_a = array_reverse($label_a); $labels->set_labels($label_a); $labels->text('#date:M d#'); $labels->set_steps(TIME_DAY); $labels->visible_steps(1); $labels->rotate(90); // finally attach the label definition to the x axis $x->set_labels($labels); //$x->set_steps(TIME_DAY); //SMA 50 $sma50 = array(); $sma25 = array(); $sma15 = array(); $sma10 = array(); $sma5 = array(); $sum5 = 0; $sum10 = 0; $sum15 = 0; $sum25 = 0;
public function clientimpressionAction() { ini_set('display_errors', 1); $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true); // filter! if (!$this->clientdashboardfilter()) { return; } $this->view->activeTab = 'clientimpression'; include 'open-flash-chart.php'; $request = $this->getRequest(); if ($request->isPost()) { $formData = $request->getPost(); $campaign_id = $formData['campaign_id']; } else { $campaign_id = $request->getParam('id'); } $this->_helper->layout->setLayout($this->getCampaignTemplate($campaign_id)); $this->view->campaign_id = $campaign_id; // get date from db $db = Zend_Registry::get('db'); $select = $db->select(); $select->from('report', array('left(create_date,10) as date', 'accesscode'))->where('report.campaign_id = ?', $campaign_id)->where('report.state = "APPROVED"')->order('date'); $results = $db->fetchAll($select); $accesscodeDbMatchArray = array(); foreach ($results as $result) { $accesscodeDbMatchArray[$result['accesscode']] = $result['date']; } $accesscodeArray = array_keys($accesscodeDbMatchArray); $campaignModel = new Campaign(); $campaign = $campaignModel->fetchRow('id = ' . $campaign_id); // get impression value from ws $db = Zend_Registry::get('db'); $select = $db->select(); $select->from('dashboard_mapping'); $select->where('survey_id = ?', $campaign->i2_survey_id); $select->where('mark="FRIENDS"'); $mappings = $db->fetchRow($select); $indicate2Connect = new Indicate2_Connect(); $response = $indicate2Connect->getAnswerSetForSurvey(array($campaign->i2_survey_id, $campaign->i2_survey_id_en), null, array(array('ContextIndex' => $mappings['context_index'], 'QuestionIndex' => $mappings['question_index'])), 0); // Zend_Debug::dump($mappings);die; $optionArray = array(); if (isset($response->QuestionType) && is_array($response->QuestionType)) { foreach ($response->QuestionType as $questionType) { foreach ($questionType->SelectionQuestionOptionType as $optionObject) { //get min value, like '11-15' = 11 $optionArray[$optionObject->OptionId] = (int) $optionObject->OptionText; } } } else { if (isset($response->QuestionType->SelectionQuestionOptionType)) { foreach ($response->QuestionType->SelectionQuestionOptionType as $optionObject) { //get min value, like '11-15' = 11 if ($optionObject->OptionText == '>=10') { $optionArray[$optionObject->OptionId] = 10; } $optionArray[$optionObject->OptionId] = (int) $optionObject->OptionText; } } } $answerArray = array(); $i = 0; if (isset($response->AnswerSetType)) { foreach ($response->AnswerSetType as $answerObject) { $answerArray[$i++] = array($answerObject->AccessCode, iconv("UTF-8", "gb18030", preg_replace('/[\\n\\r\\t]/', ' ', base64_decode($answerObject->AnswerType->AnswerText)))); } } // create x axis date value (endDate = expireDate/now + 10 days) $this->view->startDate = $startDate = date("Y-m-d", strtotime($campaign->create_date)); if (strtotime($campaign->expire_date) > strtotime(date("Y-m-d"))) { $this->view->xmax = $endDate = date("Y-m-d", strtotime("+10 days", strtotime(date("Y-m-d")))); } else { $this->view->xmax = $endDate = date("Y-m-d", strtotime("+10 days", strtotime($campaign->expire_date))); } if ($request->isPost()) { $formData = $request->getPost(); $this->view->xmax = $endDate = $formData['x_max']; } $resultArray = array(); $xDateArrayLength = 0; while (1) { $resultArray[$startDate] = 0; $startDate = date("Y-m-d", strtotime("+1 days", strtotime($startDate))); $xDateArrayLength++; if ($startDate == $endDate) { $resultArray[$startDate] = 0; $xDateArrayLength++; break; } } //var_dump($resultArray);die; // set sparks initial impressions for each campaign, it should be added if a new campaign is lanuched! switch ($campaign_id) { case '1': $staticsparks = array(50, 110); break; case '2': $staticsparks = array(50, 150, 250, 400, 450); break; case '3': $staticsparks = array(100, 350, 750, 1200, 1500); break; case '4': $staticsparks = array(50, 200, 250); break; case '5': $staticsparks = array(50, 150); break; case '6': $staticsparks = array(50, 150, 350, 500, 900, 1700, 2300, 2500); break; case '7': $staticsparks = array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 150, 350, 500, 900, 1038); break; case '8': $staticsparks = array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 300, 450, 600, 750, 900, 1000); break; case '9': $staticsparks = array(0, 0, 0, 150, 300, 450, 600, 750, 900, 1000); break; case '10': $staticsparks = array(0, 0, 0, 0, 0, 0, 0, 0, 150, 300, 450, 600, 750, 900, 1000); break; case '13': $staticsparks = array(0, 0, 0, 0, 0, 0, 50, 100, 150, 300, 450, 600, 750, 900, 1200); break; default: break; } for ($temp = count($staticsparks); $temp < $xDateArrayLength; $temp++) { $staticsparks[$temp] = $staticsparks[$temp - 1]; } // set everyday impression by using ws data foreach ($answerArray as $answer) { if (!isset($accesscodeDbMatchArray[$answer[0]])) { continue; } if (date("Y-m-d", strtotime($accesscodeDbMatchArray[$answer[0]])) > date("Y-m-d", strtotime($this->view->xmax))) { continue; } if (!array_key_exists($accesscodeDbMatchArray[$answer[0]], $resultArray)) { $resultArray[$accesscodeDbMatchArray[$answer[0]]] = $optionArray[$answer[1]]; } else { $resultArray[$accesscodeDbMatchArray[$answer[0]]] += $optionArray[$answer[1]]; } } //Zend_Debug::dump($optionArray); //Zend_Debug::dump($resultArray); //Zend_Debug::dump($answerArray); //Zend_Debug::dump($accesscodeDbMatchArray); // set line value $sparks = 0; $data_1 = array(); $data_2min = array(); $data_2max = array(); $data_3min = array(); $data_3max = array(); $i = 0; $data_1[0] = $data_2max[0] = $data_2min[0] = $data_3min[0] = $data_3max[0] = $accumulate = 0; $temp = 0; foreach ($resultArray as $result) { if ($result != 0) { $xTodayLength = $temp; } $temp++; } foreach ($resultArray as $result) { if ($i == 0) { $i++; continue; } $accumulate = $result + $accumulate; $data_1[$i] = $accumulate + $staticsparks[$i]; $data_2min[$i] = floor($accumulate * 2.5 + $staticsparks[$i]); $data_2max[$i] = $accumulate * 5 + $staticsparks[$i]; $data_2avg[$i] = $accumulate * 3.75; $data_3min[$i] = floor($data_2avg[$i] * 3) + $data_2min[$i]; $data_3max[$i] = floor($data_2avg[$i] * 4) + $data_2max[$i]; $max = $data_3max[$i]; if ($i == $xTodayLength) { break; } $i++; } // set max y axis value $dateArray = array_keys($resultArray); $y = new y_axis(); if ($request->isPost()) { $formData = $request->getPost(); $max = $formData['y_max']; } else { if ($max < 10000) { $max = ceil($max / 100) * 100; } else { $max = ceil($max / 1000) * 1000; } } $y->set_range(0, $max, $max / 10); $this->view->ymax = $max; // draw lines $x = new x_axis(); $x_labels = new x_axis_labels(); $x_labels->set_labels($dateArray); $x_labels->set_steps(floor($xDateArrayLength / 42) + 1); $x_labels->rotate(40); $x->set_labels($x_labels); $line_1_default_dot = new dot(); $line_1_default_dot->colour('#007DCD')->tooltip('#x_label#: #val#'); $line_1 = new line(); $line_1->set_default_dot_style($line_1_default_dot); $line_1->set_values($data_1); $line_1->set_colour("#007DCD"); $line_1->set_width(1); $line_2min_default_dot = new dot(); $line_2min_default_dot->colour('#81C909')->tooltip('#x_label#: #val#'); $line_2min = new line(); $line_2min->set_default_dot_style($line_2min_default_dot); $line_2min->set_values($data_2min); $line_2min->set_colour("#81C909"); $line_2min->set_width(1); $line_2_default_dot = new dot(); $line_2_default_dot->colour('#81C909')->tooltip('#x_label#: #val#'); $line_2 = new line(); $line_2->set_default_dot_style($line_2_default_dot); $line_2->set_values($data_2max); $line_2->set_colour("#81C909"); $line_2->set_width(1); $line_3_default_dot = new dot(); $line_3_default_dot->colour('#FF0000')->tooltip('#x_label#: #val#'); $line_3 = new line(); $line_3->set_default_dot_style($line_3_default_dot); $line_3->set_values($data_3min); $line_3->set_colour("#FF0000"); $line_3->set_width(1); $line_3max_default_dot = new dot(); $line_3max_default_dot->colour('#FF0000')->tooltip('#x_label#: #val#'); $line_3max = new line(); $line_3max->set_default_dot_style($line_3max_default_dot); $line_3max->set_values($data_3max); $line_3max->set_colour("#FF0000"); $line_3max->set_width(1); //tags $tags = new ofc_tags(); $tags->font("Verdana", 10)->colour("#2F2F2F")->align_x_right(); $this->view->chart = new open_flash_chart(); // create event $campaignEventModel = new CampaignEvent(); $campaignEvents = $campaignEventModel->fetchAll('campaign_id = ' . $campaign_id, 'event_date'); $eventTotal = count($campaignEvents); $eventTemp = 0; foreach ($campaignEvents as $campaignEvent) { $eventDate = floor((strtotime($campaignEvent->event_date) - strtotime($campaign->create_date)) / 86400); $eventDescription = $campaignEvent->event_name; // event line $eventline = new scatter_line('#C5BE97', 1); $def = new hollow_dot(); $def->size(0)->halo_size(0); $eventline->set_default_dot_style($def); $v = array(new scatter_value($eventDate, 0), new scatter_value($eventDate, $this->view->ymax)); $eventline->set_values($v); $this->view->chart->add_element($eventline); // event description $tagAndArrow_Yvalue = 1 - ($eventTotal - $eventTemp++) / 10; if ($tagAndArrow_Yvalue == 0) { $tagAndArrow_Yvalue = 0.1; } $tag_xvalue = $eventDate + 2; $t = new ofc_tag($tag_xvalue, $this->view->ymax * $tagAndArrow_Yvalue); $t->text($eventDescription)->style(false, false, false, 1.0)->padding(0, 0); $tags->append_tag($t); // event arrow $arrowStart_x = $tag_xvalue; $arrowStart_y = $this->view->ymax * $tagAndArrow_Yvalue; $arrowEnd_x = $tag_xvalue - 1.5; $arrowEnd_y = $this->view->ymax * $tagAndArrow_Yvalue; $arrowColor = '#000000'; $arrowBarbLength = 7; $a = new ofc_arrow($arrowStart_x, $arrowStart_y, $arrowEnd_x, $arrowEnd_y, $arrowColor, $arrowBarbLength); $this->view->chart->add_element($a); } $this->view->chart->add_element($line_1); $this->view->chart->add_element($line_2min); $this->view->chart->add_element($line_2); $this->view->chart->add_element($line_3); $this->view->chart->add_element($line_3max); $this->view->chart->add_element($tags); $this->view->chart->set_y_axis($y); $this->view->chart->set_x_axis($x); $this->view->chart->set_bg_colour('#FFFFFF'); }
function netio() { function bit_to_kb($n) { return round($n / 1000, 2); } function bit_to_mb($n) { return round($n / 1000000, 2); } function get_data() { $recv_l = trim(shell_exec("cat /sys/class/net/eth0/statistics/rx_bytes")) / 8; sleep(1); $recv_n = trim(shell_exec("cat /sys/class/net/eth0/statistics/rx_bytes")) / 8; return $recv_n - $recv_l; } if (array_key_exists('netio', $_SESSION) && array_key_exists('recv_l', $_SESSION)) { if (count($_SESSION['netio']) == 10) { array_shift($_SESSION['netio']); $_SESSION['netio'][] = get_data(); } else { $_SESSION['netio'][] = get_data(); $_SESSION['recv_l'] = end($_SESSION['netio']); } } else { $_SESSION['netio'] = array(0, 0, 0, 0, 0, 0, 0, 0, 0); $_SESSION['netio'][] = get_data(); $_SESSION['recv_l'] = end($_SESSION['netio']); } $data = $_SESSION['netio']; /* $data = array(); for($i=0;$i<40;$i++){ $data[] = rand(1000000,10000000); } */ foreach (range(1, 10) as $i) { settype($i, 'string'); $second[] = $i; } if (max($data) <= 1000) { $data = array_map("bit_to_kb", $data); $y_axis_max = 1; $y_axis_key_text = " KB/s"; } elseif (max($data) <= 10000) { $data = array_map("bit_to_kb", $data); $y_axis_max = 10; $y_axis_key_text = " KB/s"; } elseif (max($data) <= 100000) { $data = array_map("bit_to_kb", $data); $y_axis_max = 100; $y_axis_key_text = " KB/s"; } elseif (max($data) <= 1000000) { $data = array_map("bit_to_kb", $data); $y_axis_max = 1000; $y_axis_key_text = " KB/s"; } elseif (max($data) <= 10000000) { $data = array_map("bit_to_mb", $data); $y_axis_max = 10; $y_axis_key_text = " MB/s"; } else { $data = array_map("bit_to_mb", $data); $y_axis_max = 100; $y_axis_key_text = " MB/s"; } $y_axis_step = $y_axis_max / 5; $chart = new open_flash_chart(); $title = new title("实时流量显示"); $title->set_style("{font-size: 12px; color: #A2ACBA; text-align: center;}"); $chart->set_title($title); #点是指曲线图上的顶点 # $d = new dot(); # $d->colour('#9C0E57')->size(3); $area = new area(); #width是指曲线的宽度 # $area->set_width(3); # $area->set_default_dot_style($d); $area->set_colour('#5B56B6'); #value即曲线顶的值 $area->set_values($data); #左上角的文字 $area->set_key($y_axis_key_text, 10); $area->set_fill_colour('#CCCAAA'); #设透明度 $area->set_fill_alpha(0.3); #area设置结束,使用add_element方法把area加进来 $chart->add_element($area); $chart->set_bg_colour('#FFFFFF'); #设置label $x_labels = new x_axis_labels(); $x_labels->set_steps(1); $x_labels->set_colour('#A2ACBA'); $x_labels->set_labels($second); #设置X轴 $x_axis = new x_axis(); $x_axis->set_colour('#A2ACBA'); $x_axis->set_grid_colour('#D7E4A3'); $x_axis->set_offset(false); $x_axis->set_steps(1); $x_axis->set_labels($x_labels); $chart->set_x_axis($x_axis); #设置X轴的文件说明,即x_legend $legend_text = "当前网络流量 " . end($data) . $y_axis_key_text; $x_legend = new x_legend($legend_text); $x_legend->set_style('{font-size: 12px; color: #778877}'); $chart->set_x_legend($x_legend); #设置轴 $y_axis = new y_axis(); $y_axis->set_range(0, $y_axis_max, $y_axis_step); $y_axis->labels = null; $y_axis->set_offset(false); $chart->add_y_axis($y_axis); header("Cache-Control: cache, must-revalidate"); header("Pragma: public"); echo $chart->toPrettyString(); }
public function getChartDataString() { $values = $this->values; $chart = $this->chart; $line = self::getChartInstance(); $line->set_values($values['x']); if (self::LINE == $this->chartType) { $line->set_halo_size(2); $line->set_dot_size(2); } if (self::PIE == $this->chartType) { $line->set_animate(false); } $chart->add_element($line); $x = new x_axis(); $x_labels = new x_axis_labels(); if ('hour' != $this->interval) { $x_labels->set_vertical(); } $x_labels->set_labels($values['y']); if ('hour' != $this->interval) { $x_labels->set_steps(ceil(count($values['y']) / 13)); } if (self::PIE == $this->chartType) { $line->set_tooltip('#label# (#percent#)'); $line->set_colours(array('#77CC6D', '#FF5973', '#6D86CC', '#848484', '#CACFBE', '#1F8FA1')); } else { $line->set_tooltip('#x_label#: #val#'); } $x->set_labels($x_labels); $chart->set_x_axis($x); $y = new y_axis(); if (isset($values['min'])) { $y->set_range($values['min'], $values['max'], $values['step']); } $chart->add_y_axis($y); return $chart->toPrettyString(); }
include '../php-ofc-library/open-flash-chart.php'; $chart = new open_flash_chart(); $chart->set_title(new title('Area Chart')); // // Make our area chart: // $area = new area(); // set the circle line width: $area->set_width(2); $area->set_default_dot_style(new hollow_dot()); $area->set_colour('#838A96'); $area->set_fill_colour('#E01B49'); $area->set_fill_alpha(0.4); $area->set_values($data); // add the area object to the chart: $chart->add_element($area); $y_axis = new y_axis(); $y_axis->set_range(-2, 2, 2); $y_axis->labels = null; $y_axis->set_offset(false); $x_axis = new x_axis(); $x_axis->labels = $data; $x_axis->set_steps(2); $x_labels = new x_axis_labels(); $x_labels->set_steps(4); $x_labels->set_vertical(); // Add the X Axis Labels to the X Axis $x_axis->set_labels($x_labels); $chart->add_y_axis($y_axis); $chart->x_axis = $x_axis; echo $chart->toPrettyString();
function get_linear_graph($dates, $vals, $keys = array()) { include 'php-ofc-library/open-flash-chart.php'; $max_y = 0; $arr_filled = array(); for ($i = 0; $i < count($dates); $i++) { $year[] = $dates[$i]; for ($m = 0; $m < count($vals); $m++) { $price[$m][] = (int) $vals[$m][$i]; if ($max_y < (int) $vals[$m][$i]) { $max_y = (int) $vals[$m][$i]; } if (@$arr_filled[$m] != $vals[$m][$i] and @$arr_filled[$m] == 0) { @($arr_filled[$m] = (int) $vals[$m][$i]); } } } while ($max_y % 10 != 0) { $max_y++; } $chart = new open_flash_chart(); //$title = new title( 'UK Petrol price (pence) per Litre' ); $d = new anchor(); if (count($dates) > 60) { $d->size(2); } else { $d->size(3); } $d->halo_size(1); $d->colour('#3D5C56'); $d->rotation(0); $d->sides(4); for ($i = 0; $i < count($price); $i++) { if ($arr_filled[$i] == 0) { continue; } if ($i == 0) { $color = '#5E0722'; } elseif ($i == 1) { $color = '#00FF00'; } else { $color = '#FF0000'; } $area = new area(); $area->set_colour($color); $area->set_default_dot_style($d); $area->set_values($price[$i]); if (isset($keys[$i])) { $area->set_key($keys[$i], 12); } // mb_convert_encoding($keys[$i], "UTF-8", "Windows-1251") $area->set_width(2); $chart->add_element($area); } $x_labels = new x_axis_labels(); if (count($dates) > 40) { $x_labels->set_steps(7); } else { $x_labels->set_steps(1); } $x_labels->set_vertical(); $x_labels->set_colour('#000000'); $x_labels->set_labels($year); $x_labels->rotate(-55); $x_labels->set_size(12); $x = new x_axis(); $x->set_colour('#000000'); $x->set_grid_colour('#DDDDDD'); //$x->set_offset( false ); $x->set_steps(1); // Add the X Axis Labels to the X Axis $x->set_labels($x_labels); $chart->set_x_axis($x); $y = new y_axis(); $y->set_range(0, $max_y); $y->set_colour('#000000'); $y->set_grid_colour('#DDDDDD'); $chart->add_y_axis($y); $chart->set_bg_colour("#FFFFFF"); ?> <script type="text/javascript" src="script/json/json2.js"></script> <script type="text/javascript" src="script/swfobject.js"></script> <script type="text/javascript"> swfobject.embedSWF("open-flash-chart.swf", "my_chart", "600", "350", "9.0.0"); </script> <script type="text/javascript"> function ofc_ready() { } function open_flash_chart_data() { return JSON.stringify(data); } function findSWF(movieName) { if (navigator.appName.indexOf("Microsoft")!= -1) { return window[movieName]; } else { return document[movieName]; } } var data = <?php echo $chart->toPrettyString(); ?> ; </script> <?php }