public function renderGraph() { require_once 'libs/jpgraph/jpgraph.php'; require_once 'libs/jpgraph/jpgraph_bar.php'; require_once 'libs/jpgraph/jpgraph_line.php'; $graph = new Graph(300, 200, 'auto'); $graph->SetMarginColor('white'); $graph->SetFrame(false); $graph->SetScale("textlin"); $graph->SetY2Scale("lin"); $graph->img->SetMargin(0, 30, 20, 65); $graph->yaxis->HideLabels(); $graph->yaxis->HideTicks(); $graph->yaxis->scale->SetGrace(20); $graph->y2axis->SetColor("black", "red"); $graph->ygrid->SetFill(true, '#EFEFEF@0.5', '#BBCCFF@0.5'); $labelsy = array(); $datay = array(); $datay2 = array(); switch ($this->_controllerAction->getRequest()->getParam('type')) { case 'year': $this->_populateYearData($labelsy, $datay, $datay2); break; default: $this->_populateWeekData($labelsy, $datay, $datay2); } $graph->xaxis->SetTickLabels($labelsy); $locale = Zend_Registry::get('Zend_Locale'); if ($locale == 'ja') { // the ttf file for FF_MINCHO is already encoded in utf-8 $legend1 = $this->view->translate('Trusted sites'); $legend2 = $this->view->translate('Sites per user'); } else { // default ttf files are latin-1 encoded $legend1 = utf8_decode($this->view->translate('Trusted sites')); $legend2 = utf8_decode($this->view->translate('Sites per user')); } $bplot = new BarPlot($datay); $bplot->setLegend($legend1); $bplot->SetFillGradient("navy", "lightsteelblue", GRAD_WIDE_MIDVER); $bplot->value->Show(); $bplot->value->SetFormat('%d'); $p1 = new LinePlot($datay2); $p1->SetColor("red"); $p1->SetLegend($legend2); $graph->Add($bplot); $graph->AddY2($p1); $graph->legend->SetLayout(LEGEND_HOR); if ($locale == 'ja') { $graph->legend->setFont(FF_MINCHO, FS_NORMAL); } $graph->legend->Pos(0.5, 0.99, "center", "bottom"); $graph->Stroke(); }
/** * */ public function summary($id) { $iterationAux; //try { $project = Project::findOrFail($id); $iterations = Iterations::where('projectid', '=', $id)->get(); //foreach($iterations as $var){ // $iterationAux = $iterationAux . var_dump($var); //} //}catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) { //} //die; JpGraph\JpGraph::load(); JpGraph\JpGraph::module('bar'); JpGraph\JpGraph::module('line'); $datay = array(20, 30, 50, 80); $datay2 = array(30, 95, 70, 40); $datazero = array(0, 0, 0, 0); // Create the graph. $graph = new Graph(800, 500); $graph->title->Set('Example with 2 scale bars : ' . $project->name . ' : ' . $id . ' : ' . sizeof($iterations)); // Setup Y and Y2 scales with some "grace" $graph->SetScale("textlin"); $graph->SetY2Scale("lin"); //$graph->yaxis->scale->SetGrace(30); //$graph->y2axis->scale->SetGrace(30); //$graph->ygrid->Show(true,true); $graph->ygrid->SetColor('gray', 'lightgray@0.5'); // Setup graph colors $graph->SetMarginColor('white'); $graph->y2axis->SetColor('darkred'); // Create the "dummy" 0 bplot $bplotzero = new BarPlot($datazero); // Create the "Y" axis group $ybplot1 = new BarPlot($datay); $ybplot1->value->Show(); $ybplot = new GroupBarPlot(array($ybplot1, $bplotzero)); // Create the "Y2" axis group $ybplot2 = new BarPlot($datay2); $ybplot2->value->Show(); $ybplot2->value->SetColor('darkred'); $ybplot2->SetFillColor('darkred'); $y2bplot = new GroupBarPlot(array($bplotzero, $ybplot2)); // Add the grouped bar plots to the graph $graph->Add($ybplot); $graph->AddY2($y2bplot); $datax = array('A', 'B', 'C', 'D'); $graph->xaxis->SetTickLabels($datax); // .. and finally stroke the image back to browser $graph->Stroke(); }
header('content-type:text/html;charset=utf-8'); //JpGraph 是一种面向对象的图像 绘制库,其基于GD2函数库,对其中函数进行封装,得到几个用于生成统计图的函数。 //可以生成X-Y坐标图,X-Y-Y坐标图,柱形图,饼图,3D饼图等统计图,并自动生成坐标轴,刻度,图例等信息 //引入类库 require_once "../src/jpgraph.php"; require_once "../src/jpgraph_line.php"; $data = array(0 => -21, 1 => -3, 2 => 12, 3 => 19, 4 => 23, 5 => 29, 6 => 30, 7 => 22, 8 => 26, 9 => 18, 10 => 5, 11 => -10); //第一条数据 $data2y = array(0 => 3, 1 => 12, 2 => 18, 3 => 30, 4 => 28, 5 => 33, 6 => 43, 7 => 39, 8 => 36, 9 => 29, 10 => 15, 11 => 10); //第二条数据 //得到Graph对象 $graph = new Graph(600, 400); //设置X和Y轴样式及Y轴的最大值最小值 $graph->SetScale("textint", -30, 50); //设置右侧Y轴样式及其最大值最小值 $graph->SetY2Scale("int", -30, 50); //设置图像样式,加入阴影 $graph->SetShadow(); //设置图像边界范围 $graph->img->setMargin(40, 30, 50, 70); //设置标题 //设置标题中文编码 $graph->title->SetFont(FF_CHINESE); $graph->title->Set("this is a test 折线图X-Y-Y"); //得到曲线实例 $linePlot = new LinePlot($data); //得到第二条曲线 $linePlot2y = new LinePlot($data2y); //将曲线加入到图像中 $graph->Add($linePlot); $graph->Add($linePlot2y);
/* BEGIN GOOD WORK HERE */ $times = array(); $temps = array(); $dewps = array(); $srad = array(); for ($i = 0; $row = @pg_fetch_array($rs, $i); $i++) { $ts = strtotime(substr($row["valid"], 0, 16)); $times[] = $ts; $srad[] = $row["srad"] >= 0 ? $row["srad"] : ""; $temps[] = $row["tmpf"] > -50 && $row["tmpf"] < 120 ? $row["tmpf"] : ""; $dewps[] = $row["dwpf"] > -50 && $row["dwpf"] < 120 ? $row["dwpf"] : ""; } /* Generate Graph Please */ $graph = new Graph(640, 480); $graph->SetScale("datelin"); $graph->SetY2Scale("lin", 0, 1200); $graph->xaxis->SetTitle("Valid Local Time"); $graph->yaxis->SetTitle("Temperature [F]"); $graph->y2axis->SetTitle("Solar Radiation [W m**-2]", "low"); $graph->tabtitle->Set(' ' . $cityname . " on " . $titleDate . ' '); $tcolor = array(230, 230, 0); /* Common for all our plots */ $graph->img->SetMargin(80, 60, 40, 80); //$graph->img->SetAntiAliasing(); $graph->xaxis->SetTextTickInterval(120); $graph->xaxis->SetPos("min"); $graph->xaxis->title->SetFont(FF_FONT1, FS_BOLD, 14); $graph->xaxis->SetFont(FF_FONT1, FS_BOLD, 12); //$graph->xaxis->title->SetBox( array(150,150,150), $tcolor, true); //$graph->xaxis->title->SetColor( $tcolor ); $graph->xaxis->SetTitleMargin(15);
function draw_bp($actual, $graph_details) { $w = 700; $h = 450; $arr_xlabel = array(); $arr_diastolic = array(); $arr_systolic = array(); $arr_status = array(); //print_r($actual); foreach ($actual as $key => $value) { array_push($arr_xlabel, $value[0]); array_push($arr_diastolic, $value[1]); array_push($arr_systolic, $value[2]); array_push($arr_status, $value[3]); } $graph = new Graph($w, $h); $graph->SetScale('intlin'); $graph->SetY2Scale('int', 0, 200); $graph->SetMargin(40, 70, 40, 60); $graph->title->Set($graph_details[0] . ' of ' . get_px_name()); $graph->xaxis->title->Set($graph_details[1]); $graph->yaxis->title->Set($graph_details[2]); $graph->xaxis->SetTickLabels($arr_xlabel); $lineplot = new LinePlot($arr_diastolic); $lineplot2 = new LinePlot($arr_systolic); $lineplot->SetColor('blue'); $lineplot->SetWeight(2); $lineplot2->SetColor('red'); $lineplot2->SetWeight(2); $lineplot->value->Show(); $lineplot2->value->Show(); $graph->Add($lineplot); $graph->AddY2($lineplot2); $lineplot->SetLegend('Systolic'); $lineplot2->SetLegend('Diastolic'); $graph->legend->SetLayout(LEGEND_HOR); $graph->legend->Pos(0.5, 0.99, 'center', 'bottom'); $graph->Stroke(); }
$arr_data = array(); $temp_data = array(); $temp2_data = array(); $arr_xticks = array(); while ($row = mysql_fetch_array($result)) { array_push($arr_data, $row['light'] / 255 * 100); array_push($temp_data, $row['temp']); array_push($temp2_data, $row['temp2']); array_push($arr_xticks, $row['uts']); } // Create the graph. These two calls are always required $graph = new Graph(800, 600, "auto"); // SCALE $graph->SetScale("datint", 0, 100); // SET THE SCALE MANUALLY $graph->SetY2Scale("lin", -10, 40); $graph->SetMargin(50, 50, 50, 125); // SET UP CUSTOM SETTINGS $graph->xaxis->SetLabelAngle(90); //$graph->xaxis->SetTextLabelInterval(10); $graph->xaxis->scale->SetTimeAlign(MINADJ_15); // ALIGN TO A 5 MIN INTERVAL $graph->xaxis->scale->SetDateFormat('H:i'); // SET THE FORMAT FOR THE X-AXIS UTS CONVERSION // SET UP TITLES $graph->title->Set("Combined Light/Temp - " . date("G:i, F j", $uts_e) . " to " . date("G:i, F j", $uts_now)); $graph->xaxis->SetTitle('Time', 'middle'); $graph->yaxis->SetTitle('Light Level / %', 'middle'); $graph->y2axis->SetTitle('Temperature / C', 'middle'); $graph->xaxis->SetTitleMargin('75'); $graph->xaxis->scale->SetDateFormat('G:i - d/m');
if ($rday == '5') { $x = array(' ', "{$txt_day5}", ' ', ' ', ' ', "{$txt_day6}", ' ', ' ', ' ', "{$txt_day7}", ' ', ' ', ' ', "{$txt_day1}", ' ', ' ', ' ', "{$txt_day2}", ' ', ' ', ' ', "{$txt_day3}", ' ', ' ', ' ', "{$txt_day4}", ' ', ' '); } if ($rday == '6') { $x = array(' ', "{$txt_day6}", ' ', ' ', ' ', "{$txt_day7}", ' ', ' ', ' ', "{$txt_day1}", ' ', ' ', ' ', "{$txt_day2}", ' ', ' ', ' ', "{$txt_day3}", ' ', ' ', ' ', "{$txt_day4}", ' ', ' ', ' ', "{$txt_day5}", ' ', ' '); } if ($rday == '0') { $x = array(' ', "{$txt_day7}", ' ', ' ', ' ', "{$txt_day1}", ' ', ' ', ' ', "{$txt_day2}", ' ', ' ', ' ', "{$txt_day3}", ' ', ' ', ' ', "{$txt_day4}", ' ', ' ', ' ', "{$txt_day5}", ' ', ' ', ' ', "{$txt_day6}", ' ', ' '); } $datax = $x; $NESWN = array(0 => "{$txt_N}", 45 => 'NE', 90 => "{$txt_E}", 135 => 'SE', 180 => "{$txt_S}", 225 => 'SW', 270 => "{$txt_W}", 315 => 'NW', 360 => "{$txt_N}"); // Create the graph. These two calls are always required $graph = new Graph($xsize, $ysize, "auto", 30); $graph->SetScale("textlin", 0, 360); $graph->yaxis->scale->ticks->Set(90, 45); $graph->SetY2Scale("lin", 0, 360); $graph->y2axis->scale->ticks->Set(90); $graph->SetMarginColor("{$margincolour}"); // Add a drop shadow $graph->SetShadow(); // Adjust the margin a bit to make more room for titles $graph->SetMargin($lm, $rm, $tm, $bm); // titles $graph->title->SetFont(FF_ARIAL, FS_BOLD, 10); $graph->title->Set("{$txt_wind_dr_av} {$txt_7d}"); $graph->title->SetColor("{$textcolour}"); //x-axis $graph->xaxis->title->SetFont(FF_ARIAL, FS_BOLD, 8); $graph->xaxis->SetFont(FF_ARIAL, FS_BOLD, 8); $graph->xaxis->SetTitlemargin(25); $graph->xaxis->SetLabelMargin(10);
function GenerateGraph($nodeID) { global $DBfile, $GRAPH, $DisplayDATE, $GetDATE; $i = 0; $db = db_con($DBfile); $query = $db->query("SELECT place,time,supplyV,temp,hum,date(time,'unixepoch') AS Date FROM werte WHERE Date='" . $GetDATE . "' AND nodeID='" . $nodeID . "'"); while ($result = $query->fetch(PDO::FETCH_ASSOC)) { $place = $result['place']; $TIME[$i] = $result['time']; $TEMP[$i] = $result['temp'] / 100; $HUM[$i] = $result['hum'] / 100; $SUPPLYV[$i] = $result['supplyV'] / 1000; $i++; } if ($i == 0) { return; } // Create the graph. These two calls are always required $graph = new Graph(1100, 350); $graph->SetScale("datlin"); $graph->SetShadow(); $graph->SetMargin(50, 50, 20, 100); $graph->title->Set('' . $place . ': ' . $DisplayDATE . ''); $graph->title->SetFont(FF_FONT1, FS_BOLD); //$graph->xaxis->title->Set("Zeit"); //$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->yaxis->title->Set("Temperatur °C"); $graph->yaxis->SetTitlemargin(40); $graph->yaxis->title->SetFont(FF_FONT1, FS_BOLD); $graph->xaxis->SetLabelFormatCallback('TimeCallback'); $graph->xaxis->SetLabelAngle(90); $graph->xaxis->scale->SetTimeAlign(MINADJ_15); $lineplot = new LinePlot($TEMP, $TIME); $lineplot->SetColor("red"); $lineplot->SetLegend("Temperature "); $lineplotb = new LinePlot($HUM, $TIME); $lineplotb->SetColor("blue"); $lineplotb->SetWeight(2); $lineplotb->SetLegend("Humidity "); $graph->SetY2Scale("lin"); $graph->AddY2($lineplotb); $graph->y2axis->title->Set("Luftfeuchte % "); $graph->y2axis->title->SetColor("blue"); $graph->y2axis->SetTitlemargin(40); // Add the plot to the graph $graph->Add($lineplot); // Adjust the legend position $graph->legend->Pos(0.5, 0.98, "center", "bottom"); // Display the graph //$graph->Stroke(); // generate image file for HTML pages // Get the handler to prevent the library from sending the // image to the browser $gdImgHandler = $graph->Stroke(_IMG_HANDLER); $graph->img->SetImgFormat($GRAPH['SetImgFormat']); $fileName = "" . $GRAPH['DIR'] . "/" . $nodeID . "." . $GRAPH['SetImgFormat'] . ""; $graph->img->Stream($fileName); unset($TIME); unset($TEMP); unset($HUM); unset($SUPPLYV); }
return $asp; } // some data $data_freq = array(22, 20, 12, 10, 5, 4, 2); $data_accfreq = accfreq($data_freq); // Create the graph. $graph = new Graph(350, 250); // We need to make this extra call for CSIM scripts // that make use of the cache. If the cache contains this // graph the HTML wrapper will be returned and then the // method will call exit() and hence NO LINES AFTER THIS // CALL WILL BE EXECUTED. // $graph->CheckCSIMCache('auto'); // Setup some basic graph parameters $graph->SetScale("textlin"); $graph->SetY2Scale('lin', 0, 100); $graph->img->SetMargin(50, 70, 30, 40); $graph->yaxis->SetTitleMargin(30); $graph->SetMarginColor('#EEEEEE'); // Setup titles and fonts $graph->title->Set("Frequence plot"); $graph->xaxis->title->Set("X-title"); $graph->yaxis->title->Set("Y-title"); $graph->title->SetFont(FF_FONT1, FS_BOLD); $graph->yaxis->title->SetFont(FF_FONT1, FS_BOLD); $graph->xaxis->title->SetFont(FF_FONT1, FS_BOLD); // Turn the tickmarks $graph->xaxis->SetTickSide(SIDE_DOWN); $graph->yaxis->SetTickSide(SIDE_LEFT); $graph->y2axis->SetTickSide(SIDE_RIGHT); $graph->y2axis->SetColor('black', 'blue');
/** * Runs the phpOpenTracker API call. * * @param array $parameters * @return mixed * @access public */ function run($parameters) { global $locale; $parameters['interval'] = isset($parameters['interval']) ? $parameters['interval'] : false; $parameters['month_names'] = isset($parameters['month_names']) ? $parameters['month_names'] : false; if (!$parameters['month_names']) { $parameters['month_names'] = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); } $timestamp = time(); $steps = array('hour' => 3600, 'day' => 86400, 'month' => 2592000, 'year' => 31536000); $starttitle = ''; $endtitle = ''; switch ($parameters['interval']) { case 'hour': $starthour = $hour = date('H', $parameters['start']); $endhour = date('H', $parameters['end']); $starttitle .= $starthour . ':00 '; $endtitle .= $endhour . ':00 '; case 'day': $startday = $day = date('d', $parameters['start']); $endday = date('d', $parameters['end']); $starttitle .= $startday . '. '; $endtitle .= $endday . '. '; case 'month': $startmonth = $month = date('m', $parameters['start']); $endmonth = date('m', $parameters['end']); $starttitle .= $parameters['month_names'][$startmonth - 1] . ' '; $endtitle .= $parameters['month_names'][$endmonth - 1] . ' '; case 'year': $startyear = $year = date('Y', $parameters['start']); $endyear = date('Y', $parameters['end']); $starttitle .= $startyear; $endtitle .= $endyear; } $title = $starttitle . ' - ' . $endtitle; for ($start = $parameters['start']; $start < $parameters['end']; $start += $steps[$parameters['interval']]) { if ($parameters['interval'] == 'month') { $steps['month'] = $steps['day'] * date('t', $start); } $end = $start + $steps[$parameters['interval']] - 1; if ($start <= $timestamp) { $apiCallParameters = array('client_id' => $parameters['client_id'], 'start' => $start, 'end' => $end, 'constraints' => $parameters['constraints']); $y_pi[] = phpOpenTracker::get(array_merge(array('api_call' => 'page_impressions'), $apiCallParameters)); $y_visits[] = phpOpenTracker::get(array_merge(array('api_call' => 'visits'), $apiCallParameters)); } else { $y_pi[] = 0; $y_visits[] = 0; } switch ($parameters['interval']) { case 'hour': $x_label[] = date('H', mktime($hour, 0, 0, $startmonth, $startday, $startyear)) . ':00'; $hour++; break; case 'day': $x_label[] = date('d', mktime(0, 0, 0, $startmonth, $day, $startyear)); $day++; break; case 'month': $x_label[] = date('m', mktime(0, 0, 0, $month, 1, $startyear)); $month++; break; case 'year': $x_label[] = date('Y', mktime(0, 0, 0, 1, 1, $year)); $year++; break; } } if ($parameters['interval'] == 'hour') { $angle = 50; $xasisFontSize = $parameters['font_size'] - 2; } else { $angle = 0; $xasisFontSize = $parameters['font_size']; } $graph = new Graph($parameters['width'], $parameters['height'], 'auto'); $graph->img->SetMargin(40, 40, 20, 40); $graph->SetScale('textlin'); $graph->SetY2Scale('lin'); $graph->SetShadow(); $pi_plot = new LinePlot($y_pi); $pi_plot->SetColor($parameters['color1']); $pi_plot->SetLegend($locale->get('admin_stat', 'field_monthlyvisitor')); $pi_plot->SetWeight(2); $visits_plot = new LinePlot($y_visits); $visits_plot->SetColor($parameters['color2']); $visits_plot->SetLegend($locale->get('admin_stat', 'field_monthlyimp')); $visits_plot->SetWeight(2); $graph->Add($pi_plot); $graph->AddY2($visits_plot); $graph->xaxis->SetTickLabels($x_label); $graph->xaxis->SetLabelAngle($angle); $graph->xaxis->SetFont($parameters['font'], $parameters['font_style'], $xasisFontSize); $graph->xaxis->title->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size']); $graph->yaxis->SetColor('black'); $graph->yaxis->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size']); $graph->yaxis->title->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size']); $graph->y2axis->SetColor('black'); $graph->y2axis->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size']); $graph->y2axis->title->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size']); $graph->title->Set($title); $graph->title->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size']); $graph->Stroke(); }
$humidity_plot = new LinePlot($humidity, $ts); $humidity_plot->SetColor('dodgerblue'); $humidity_plot->SetWeight(2); $humidity_plot->SetFillColor($line_fill_color); $temperature_plot = new LinePlot($temperature, $ts); $temperature_plot->SetColor('hotpink3'); $temperature_plot->SetWeight(2); $graph = new Graph($width, $height); $graph->SetFrame(false); $graph->SetBackgroundImage('traffic40_60.png', BGIMG_FILLPLOT); $graph->SetBackgroundImageMix(35); $graph->SetMargin(60, 60, 40, 50); $graph->SetMarginColor('white'); $graph->SetScale('datlin', 0, 100); $graph->Add($humidity_plot); $graph->SetY2Scale('lin', 5, 30); $graph->AddY2($temperature_plot); $graph->ygrid->SetColor("azure3"); $graph->ygrid->Show(true, true); $graph->xaxis->SetLabelAngle(90); $graph->xaxis->scale->SetDateFormat('g a'); $graph->xaxis->SetWeight(2); $graph->xaxis->SetFont(FF_ARIAL, FS_NORMAL, $font_size - 3); $graph->yaxis->SetWeight(2); $graph->yaxis->SetColor('dodgerblue'); $graph->yaxis->SetFont(FF_ARIAL, FS_NORMAL, $font_size - 3); $graph->yaxis->title->SetColor('dodgerblue'); $graph->yaxis->title->Set('%RH'); $graph->yaxis->title->SetFont(FF_ARIAL, FS_BOLD, $font_size); $graph->yaxis->title->SetAngle(90); $graph->yaxis->title->SetMargin(10);
if ($timestamp - $shouldbe < 0) { # echo "DUP <br>"; $dups++; } } } } // End of while $xpre = array(0 => '12 AM', '1 AM', '2 AM', '3 AM', '4 AM', '5 AM', '6 AM', '7 AM', '8 AM', '9 AM', '10 AM', '11 AM', 'Noon', '1 PM', '2 PM', '3 PM', '4 PM', '5 PM', '6 PM', '7 PM', '8 PM', '9 PM', '10 PM', '11 PM', 'Midnight'); for ($j = 0; $j < 24; $j++) { $xlabel[$j * 60] = $xpre[$j]; } // Create the graph. These two calls are always required $graph = new Graph(600, 300, "example1"); $graph->SetScale("textlin"); $graph->SetY2Scale("lin", 0, $accumP + 1.0); $graph->img->SetMargin(55, 40, 55, 60); //$graph->xaxis->SetFont(FONT1,FS_BOLD); $graph->xaxis->SetTickLabels($xlabel); //$graph->xaxis->SetTextLabelInterval(60); $graph->xaxis->SetTextTickInterval(60); $graph->xaxis->SetLabelAngle(90); $graph->title->Set($cities[$station]['name'] . " Time Series"); $graph->subtitle->Set($titleDate); $graph->legend->SetLayout(LEGEND_HOR); $graph->legend->Pos(0.01, 0.07000000000000001); //$graph->yaxis->scale->ticks->Set(90,15); $graph->y2axis->scale->ticks->Set(1, 0.25); $graph->yaxis->SetColor("black"); $graph->yscale->SetGrace(10); $graph->y2axis->SetColor("blue");
function generateGraphbartotcalls($type) { for ($i = 0; $i < 4; $i++) { $time = DATE('Y-m-d'); $date = strtotime($time . ' -' . $i . $type); if ($type == "year") { $labels[] = date('Y', $date); $date = date('Y', $date); } elseif ($type == "month") { $labels[] = date('M', $date); $date = date('Y-m', $date); } elseif ($type == "week") { $labels = array(4, 3, 2, 1); $date = date('oW', $date); } else { $labels[] = date('d', $date); $date = date('Y-m-d', $date); } if ($type == "week") { //$sql = "SELECT COUNT(*) AS 'count', `call_type` FROM `call_log` WHERE YEARWEEK(call_created_time,1) LIKE '$date' AND `deleted` = '0' GROUP BY `call_type` ORDER BY `call_type`"; $sql = DB::select(DB::raw("SELECT COUNT(*) AS 'count', `call_type` FROM `call_log` WHERE YEARWEEK(created_at,1) LIKE '{$date}' AND `deleted` = '0' GROUP BY `call_type` ORDER BY `call_type`")); } else { //$sql = "SELECT COUNT(*) AS 'count', `call_type` FROM `call_log` WHERE `call_created_time` LIKE '$date%' AND `deleted` = '0' GROUP BY `call_type` ORDER BY `call_type`"; $sql = DB::select(DB::raw("SELECT COUNT(*) AS 'count', `call_type` FROM `call_log` WHERE `created_at` LIKE '{$date}%' AND `deleted` = '0' GROUP BY `call_type` ORDER BY `call_type`")); } // $this->load->database(); // $query=$this->db->query($sql); foreach ($sql as $row) { $call[$row->call_type][$i] = $row->count; } if (!isset($call['Inquiry'][$i])) { $call['Inquiry'][$i] = "0"; } if (!isset($call['Sales'][$i])) { $call['Sales'][$i] = "0"; } if (!isset($call['Tickets'][$i])) { $call['Tickets'][$i] = "0"; } } //bar3 // $data3y=array(220,230,210,175,185); // $data4y=array(40,45,70,80,50); // $data5y=array(20,20,25,22,30); $data3y = $call['Inquiry']; $data4y = $call['Sales']; $data5y = $call['Tickets']; // Create the graph. These two calls are always required $graph = new \Graph(350, 250, 'auto'); $graph->SetScale("textlin"); $graph->SetY2Scale("lin", 0, 90); $graph->SetY2OrderBack(false); $graph->SetMargin(35, 50, 20, 5); $theme_class = new \UniversalTheme(); $graph->SetTheme($theme_class); // $graph->yaxis->SetTickPositions(array(0,50,100,150,200,250,300,350), array(25,75,125,175,275,325)); $graph->y2axis->SetTickPositions(array(30, 40, 50, 60, 70, 80, 90)); // $months = $gDateLocale->GetShortMonth(); // $months = array_merge(array_slice($months,3,9), array_slice($months,0,3)); // $graph->SetBox(false); $graph->ygrid->SetFill(false); $graph->xaxis->SetTickLabels($labels); $graph->xaxis->title->Set($type); $graph->yaxis->HideLine(false); $graph->yaxis->HideTicks(false, false); $graph->yaxis->title->Set('Calls'); // Setup month as labels on the X-axis // $graph->xaxis->SetTickLabels($months); // Create the bar plots $b3plot = new \BarPlot($data3y); $b4plot = new \BarPlot($data4y); $b5plot = new \BarPlot($data5y); // Create the grouped bar plot $gbbplot = new \AccBarPlot(array($b3plot, $b4plot, $b5plot)); $gbplot = new \GroupBarPlot(array($gbbplot)); // ...and add it to the graPH $graph->Add($gbplot); $gbplot->SetWidth(45); $b3plot->SetColor("#3333CC"); $b3plot->SetFillColor("#3333CC"); $b3plot->SetLegend("Inquiry"); $b4plot->SetColor("#7474FF"); $b4plot->SetFillColor("#7474FF"); $b4plot->SetLegend("Sales"); $b5plot->SetColor("#6EB7FF"); $b5plot->SetFillColor("#6EB7FF"); $b5plot->SetLegend("Tickets"); $graph->legend->SetFrameWeight(1); $graph->legend->SetColumns(5); // $graph->legend->SetColor('#4E4E4E','#00A78A'); $graph->legend->Pos(0.2, 0.9); $band = new \PlotBand(VERTICAL, BAND_RDIAG, 11, "max", 'khaki4'); $band->ShowFrame(true); $band->SetOrder(DEPTH_BACK); $graph->Add($band); // $graph->title->Set("Combineed Line and Bar plots"); // Display the graph // $graph->Stroke(); $gdImgHandler = $graph->Stroke(_IMG_HANDLER); $fileName = "assets/tmp/" . $type . "_bar_tcall.png"; $graph->img->Stream($fileName); }
<?php // content="text/plain; charset=utf-8" require_once "jpgraph/jpgraph.php"; require_once "jpgraph/jpgraph_line.php"; $ydata = array(11, 3, 8, 12, 5, 1, 9, 13, 5, 7); $y2data = array(354, 200, 265, 99, 111, 91, 198, 225, 293, 251); // Create the graph and specify the scale for both Y-axis $graph = new Graph(400, 200); $graph->SetScale('textlin'); $graph->SetY2Scale('lin'); $graph->SetShadow(); // Adjust the margin $graph->img->SetMargin(40, 140, 20, 40); // Create the two linear plot $lineplot = new LinePlot($ydata); $lineplot2 = new LinePlot($y2data); // Add the plot to the graph $graph->Add($lineplot); $graph->AddY2($lineplot2); $lineplot2->SetColor('orange'); $lineplot2->SetWeight(2); // Adjust the axis color $graph->y2axis->SetColor('orange'); $graph->yaxis->SetColor('blue'); $graph->title->Set('Example 6'); $graph->xaxis->title->Set('X-title'); $graph->yaxis->title->Set('Y-title'); $graph->title->SetFont(FF_FONT1, FS_BOLD); $graph->yaxis->title->SetFont(FF_FONT1, FS_BOLD); $graph->xaxis->title->SetFont(FF_FONT1, FS_BOLD);
function graph_cumulative_bydate($p_metrics, $p_graph_width = 300, $p_graph_height = 380) { $t_graph_font = graph_get_font(); error_check(is_array($p_metrics) ? count($p_metrics) : 0, plugin_lang_get('cumulative') . ' ' . lang_get('by_date')); if (plugin_config_get('eczlibrary') == ON) { $graph = new ezcGraphLineChart(); $graph->background->color = '#FFFFFF'; $graph->xAxis = new ezcGraphChartElementNumericAxis(); $graph->data[0] = new ezcGraphArrayDataSet($p_metrics[0]); $graph->data[0]->label = plugin_lang_get('legend_reported'); $graph->data[0]->color = '#FF0000'; $graph->data[1] = new ezcGraphArrayDataSet($p_metrics[1]); $graph->data[1]->label = plugin_lang_get('legend_resolved'); $graph->data[1]->color = '#0000FF'; $graph->data[2] = new ezcGraphArrayDataSet($p_metrics[2]); $graph->data[2]->label = plugin_lang_get('legend_still_open'); $graph->data[2]->color = '#000000'; $graph->additionalAxis[2] = $nAxis = new ezcGraphChartElementNumericAxis(); $nAxis->chartPosition = 1; $nAxis->background = '#005500'; $nAxis->border = '#005500'; $nAxis->position = ezcGraph::BOTTOM; $graph->data[2]->yAxis = $nAxis; $graph->xAxis->labelCallback = 'graph_date_format'; $graph->xAxis->axisLabelRenderer = new ezcGraphAxisRotatedLabelRenderer(); $graph->xAxis->axisLabelRenderer->angle = -45; $graph->legend->position = ezcGraph::BOTTOM; $graph->legend->background = '#FFFFFF80'; $graph->driver = new ezcGraphGdDriver(); //$graph->driver->options->supersampling = 1; $graph->driver->options->jpegQuality = 100; $graph->driver->options->imageFormat = IMG_JPEG; $graph->title = plugin_lang_get('cumulative') . ' ' . lang_get('by_date'); $graph->options->font = $t_graph_font; $graph->renderToOutput($p_graph_width, $p_graph_height); } else { foreach ($p_metrics[0] as $i => $vals) { if ($i > 0) { $plot_date[] = $i; $reported_plot[] = $p_metrics[0][$i]; $resolved_plot[] = $p_metrics[1][$i]; $still_open_plot[] = $p_metrics[2][$i]; } } $graph = new Graph($p_graph_width, $p_graph_height); $graph->img->SetMargin(40, 40, 40, 170); if (ON == plugin_config_get('jpgraph_antialias')) { $graph->img->SetAntiAliasing(); } $graph->SetScale('linlin'); $graph->yaxis->SetColor("red"); $graph->SetY2Scale("lin"); $graph->SetMarginColor('white'); $graph->SetFrame(false); $graph->title->Set(plugin_lang_get('cumulative') . ' ' . lang_get('by_date')); $graph->title->SetFont($t_graph_font, FS_BOLD); $graph->legend->Pos(0.05, 0.9, 'right', 'bottom'); $graph->legend->SetShadow(false); $graph->legend->SetFillColor('white'); $graph->legend->SetLayout(LEGEND_HOR); $graph->legend->SetFont($t_graph_font); $graph->yaxis->scale->ticks->SetDirection(-1); $graph->yaxis->SetFont($t_graph_font); $graph->y2axis->SetFont($t_graph_font); if (FF_FONT2 <= $t_graph_font) { $graph->xaxis->SetLabelAngle(60); } else { $graph->xaxis->SetLabelAngle(90); # can't rotate non truetype fonts } $graph->xaxis->SetLabelFormatCallback('graph_date_format'); $graph->xaxis->SetFont($t_graph_font); $p1 = new LinePlot($reported_plot, $plot_date); $p1->SetColor('blue'); $p1->SetCenter(); $p1->SetLegend(plugin_lang_get('legend_reported')); $graph->AddY2($p1); $p3 = new LinePlot($still_open_plot, $plot_date); $p3->SetColor('red'); $p3->SetCenter(); $p3->SetLegend(plugin_lang_get('legend_still_open')); $graph->Add($p3); $p2 = new LinePlot($resolved_plot, $plot_date); $p2->SetColor('black'); $p2->SetCenter(); $p2->SetLegend(plugin_lang_get('legend_resolved')); $graph->AddY2($p2); if (helper_show_query_count()) { $graph->subtitle->Set(db_count_queries() . ' queries (' . db_time_queries() . 'sec)'); $graph->subtitle->SetFont($t_graph_font, FS_NORMAL, 8); } $graph->Stroke(); } }
} $titleDate = strftime("%b %d, %Y", $myTime); $cityname = $cities[$station]['name']; /* BEGIN GOOD WORK HERE */ $times = array(); $pcpn = array(); $pres = array(); for ($i = 0; $row = @pg_fetch_array($rs, $i); $i++) { $ts = strtotime(substr($row["valid"], 0, 16)); $times[] = $ts; $pcpn[] = $row["pday"] >= 0 ? $row["pday"] : ""; $pres[] = $row["alti"] > 20 ? $row["alti"] * 33.8639 : ""; } $graph = new Graph(640, 480); $graph->SetScale("datelin"); $graph->SetY2Scale("lin", 0, intval(max($pcpn) + 1)); $graph->tabtitle->Set(' ' . $cityname . " on " . $titleDate . ' '); $graph->xaxis->SetTitle("Valid Local Time"); $graph->y2axis->SetTitle("Accumulated Precipitation [inches]"); $graph->yaxis->SetTitle("Pressure [millibars]"); $tcolor = array(230, 230, 0); /* Common for all our plots */ $graph->img->SetMargin(80, 60, 40, 80); //$graph->img->SetAntiAliasing(); $graph->xaxis->SetTextTickInterval(120); $graph->xaxis->SetPos("min"); $graph->xaxis->title->SetFont(FF_FONT1, FS_BOLD, 14); $graph->xaxis->SetFont(FF_FONT1, FS_BOLD, 12); //$graph->xaxis->title->SetBox( array(150,150,150), $tcolor, true); //$graph->xaxis->title->SetColor( $tcolor ); $graph->xaxis->SetTitleMargin(15);
<?php include "../jpgraph.php"; include "../jpgraph_log.php"; include "../jpgraph_line.php"; $ydata = array(11, 3, 8, 12, 5, 1, 9, 13, 5, 7); $y2data = array(354, 200, 265, 99, 111, 91, 198, 225, 293, 251); $datax = array("Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep"); // Create the graph. These two calls are always required $graph = new Graph(350, 200, "auto"); $graph->img->SetMargin(40, 110, 20, 40); $graph->SetScale("textlog"); $graph->SetY2Scale("log"); $graph->SetShadow(); $graph->ygrid->Show(true, true); $graph->xgrid->Show(true, false); // Create the linear plot $lineplot = new LinePlot($ydata); $lineplot2 = new LinePlot($y2data); $graph->yaxis->scale->ticks->SupressFirst(); $graph->y2axis->scale->ticks->SupressFirst(); // Add the plot to the graph $graph->Add($lineplot); $graph->AddY2($lineplot2); $lineplot2->SetColor("orange"); $lineplot2->SetWeight(2); $graph->y2axis->SetColor("orange"); $graph->title->Set("Example 10"); $graph->xaxis->title->Set("X-title"); $graph->yaxis->title->Set("Y-title"); $graph->title->SetFont(FF_FONT1, FS_BOLD);
$ydata1[$i] = $row["c1tmpf"]; $ydata2[$i] = $row["c2tmpf"]; $ydata3[$i] = $row["c3tmpf"]; $ydata4[$i] = $row["c4tmpf"]; $ydata5[$i] = $row["c5tmpf"]; $ydataSR[$i] = $row["srad"]; $ydataA[$i] = $row["tmpf"]; $xlabel[$i] = $row["tvalid"]; } pg_close($connection); include "../../../include/jpgraph/jpgraph.php"; include "../../../include/jpgraph/jpgraph_line.php"; // Create the graph. These two calls are always required $graph = new Graph(660, 450, "example1"); $graph->SetScale("textlin"); $graph->SetY2Scale("lin", 0, 900); $graph->img->SetMargin(40, 50, 55, 90); $graph->xaxis->SetFont(FF_FONT1, FS_BOLD); $graph->xaxis->SetTickLabels($xlabel); $graph->xaxis->SetLabelAngle(90); $graph->xaxis->SetPos("min"); $graph->title->Set("Solar Rad & Soil Temps for " . $nt->table[$station]["name"] . " SCAN Site"); $graph->y2axis->scale->ticks->Set(100, 25); //$graph->y2axis->scale->ticks->SetPrecision(0); $graph->title->SetFont(FF_FONT1, FS_BOLD, 12); $graph->y2axis->SetTitle("Solar Radiation [Watts m**-2]"); $graph->yaxis->title->SetFont(FF_FONT1, FS_BOLD, 12); $graph->xaxis->SetTitle("Local Valid Time"); $graph->yaxis->SetTitle($y2label); $graph->y2axis->title->SetFont(FF_FONT1, FS_BOLD, 12); $graph->y2axis->SetTitleMargin(35);
// Setting the graph labels $graph_labels = $data_labels; // Reduce the number of labels on the graph to prevent them being sqashed. if (count($graph_labels) > 20) { $b = substr(count($graph_labels), 0, 1); for ($a = 0; $a < count($graph_labels); $a++) { if ($a % $b) { $graph_labels[$a] = ""; } } } format_report_volume($data_total_size, $size_info); $graph = new Graph(850, 350, 0, false); $graph->SetShadow(); $graph->SetScale("textlin"); $graph->SetY2Scale("lin"); $graph->img->SetMargin(60, 60, 30, 70); $graph->title->Set("Total Mail Processed by Date"); $graph->y2axis->title->Set("Volume (" . $size_info['longdesc'] . ")"); $graph->y2axis->title->SetMargin(0); $graph->y2axis->SetTitleMargin(40); $graph->yaxis->title->Set("No. of messages"); $graph->yaxis->title->SetMargin(20); $graph->yaxis->SetTitleMargin(30); $graph->xaxis->title->Set("Date"); $graph->xaxis->SetTitleMargin(30); $graph->xaxis->SetTickLabels($graph_labels); $graph->xaxis->SetLabelAngle(45); $graph->legend->SetLayout(LEGEND_HOR); $graph->legend->Pos(0.52, 0.92, 'center'); $bar1 = new BarPlot($data_total_mail);
$temperature_plot = new LinePlot($temperature, $ts); $temperature_plot->SetColor('hotpink3'); $temperature_plot->SetWeight(2); $graph = new Graph($width, $height); $graph->SetFrame(false); if ($zoom_level == 0) { $graph->SetBackgroundImage('background_h_25_75.png', BGIMG_FILLPLOT); } else { $graph->SetBackgroundImage('background_h_40_60.png', BGIMG_FILLPLOT); } $graph->SetBackgroundImageMix(35); $graph->SetMargin(60, 60, 40, 50); $graph->SetMarginColor('white'); $graph->SetScale('datlin', $HUMIDITY_MIN[$zoom_level], $HUMIDITY_MAX[$zoom_level]); $graph->Add($humidity_plot); $graph->SetY2Scale('lin', $TEMPERATURE_MIN[$zoom_level], $TEMPERATURE_MAX[$zoom_level]); $graph->AddY2($temperature_plot); $graph->ygrid->SetColor("azure3"); $graph->ygrid->Show(true, true); $graph->xaxis->SetLabelAngle(90); $graph->xaxis->scale->SetDateFormat('g a'); $graph->xaxis->SetWeight(2); $graph->xaxis->SetFont(FF_ARIAL, FS_NORMAL, $font_size - 3); $graph->yaxis->SetWeight(2); $graph->yaxis->SetColor('dodgerblue'); $graph->yaxis->SetFont(FF_ARIAL, FS_NORMAL, $font_size - 3); $graph->yaxis->title->SetColor('dodgerblue'); $graph->yaxis->title->Set('%RH'); $graph->yaxis->title->SetFont(FF_ARIAL, FS_BOLD, $font_size); $graph->yaxis->title->SetAngle(90); $graph->yaxis->title->SetMargin(10);