/** * Runs the phpOpenTracker API call. * * @param array $parameters * @return mixed * @access public */ function run($parameters) { global $locale; $parameters['api_call'] = 'localizer'; $parameters['what'] = 'top_localizer'; $parameters['result_format'] = 'separate_result_arrays'; list($names, $values, $percent, $total) = phpOpenTracker::get($parameters); $title = $locale->get('admin_stat', 'field_top') . ' ' . $parameters['limit'] . ' ' . $locale->get('admin_stat', 'field_countries'); for ($i = 0, $numValues = sizeof($values); $i < $numValues; $i++) { $legend[$i] = sprintf('%s (%s, %s%%%%)', $names[$i], $values[$i], $percent[$i]); } $graph = new PieGraph($parameters['width'], $parameters['height'], 'auto'); $graph->SetShadow(); $graph->title->Set($title); $graph->title->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size']); $graph->title->SetColor('black'); $graph->legend->Pos(0.1, 0.2); $plot = new PiePlot3d($values); $plot->SetTheme('sand'); $plot->SetCenter(0.4); $plot->SetAngle(30); $plot->value->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size'] - 2); $plot->SetLegends($legend); $graph->Add($plot); $graph->Stroke(); }
public static function pieChart($data, $legends) { $graph = new PieGraph(900, 550, 'auto'); $graph->SetShadow(); // $graph->title->Set($topic); $graph->title->SetFont(FF_VERDANA, FS_BOLD, 14); $graph->legend->Pos(0.1, 0.2); // Creating a 3D pie graphic $p1 = new PiePlot3d($data); $p1->SetTheme("sand"); $p1->SetLabels($legends); $p1->SetLabelPos(1); $p1->SetLabelType(PIE_VALUE_PER); $p1->value->Show(); $p1->value->SetFont(FF_ARIAL, FS_NORMAL, 20); $p1->value->SetColor('darkgray'); $p1->SetCenter(0.45, 0.5); $p1->SetAngle(45); $p1->ExplodeAll(20); // $p1->value->SetFont(FF_ARIAL, FS_NORMAL, 12); // $p1->SetLegends($legends); $graph->img->SetImgFormat('png'); $graph->Add($p1); // Showing graphic return $graph->Stroke('../graph/3DpieChart.png'); }
function render($imgType) { $this->graph->SetImgFormat($imgType); if ($this->chartType == 'piechart') { $plot = new PiePlot3d($this->value_r); $plot->SetTheme("sand"); $plot->SetCenter(0.35); $plot->SetAngle(50); $plot->SetLegends($this->display_r); $plot->SetLabelType(PIE_VALUE_ADJPER); } else { $this->graph->xaxis->SetTickLabels($this->display_r); $plot = new BarPlot($this->value_r); $plot->SetWidth(0.5); $plot->SetFillColor("orange@0.75"); } $this->graph->Add($plot); $this->graph->Stroke(); }
/** * @@生成三维饼图 * @param string $title * @param array $data * @param int $size * @param int $height * @param int $width * @param array $legend */ static function create3dpie($title, $data = array(), $size = 40, $height = 100, $width = 80, $legend = array(), $slice = 0) { //包含相关的文件 vendor("Jpgraph.jpgraph"); vendor("Jpgraph.jpgraph_pie"); vendor("Jpgraph.jpgraph_pie3d"); // 创建图表 $graph = new PieGraph($width, $height, "auto"); $graph->SetShadow(); // 设置标题 $graph->title->Set(iconv("utf-8", "gb2312", $title)); //$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); $graph->title->SetFont(FF_SIMSUN, FS_BOLD, 18); $graph->title->SetColor("darkblue"); $graph->legend->Pos(0.1, 0.2); $graph->SetFrame(false, '#ffffff', 0); //去掉周围的边框 // Create 3D pie plot $p1 = new PiePlot3d($data); $p1->SetTheme("sand"); $p1->SetCenter(0.4); $p1->SetSize($size); // Adjust projection angle $p1->SetAngle(70); // As a shortcut you can easily explode one numbered slice with if ($slice == 0) { $p1->ExplodeSlice(3); } // Setup the slice values $p1->value->SetFont(FF_ARIAL, FS_BOLD, 10); //$p1->value->SetFont(FF_SIMSUN,FS_BOLD,11); $p1->value->SetColor("navy"); $graph->legend->SetFont(FF_SIMSUN, FS_BOLD, 8); //编码转化 foreach ($legend as $k => $v) { $legend[$k] = iconv('utf-8', 'gb2312', $v); } $p1->SetLegends($legend); $graph->Add($p1); $graph->Stroke(); }
function ejecutarGrafico($value_criteria, $date_start, $date_end) { global $arrLang; $data_graph = leerDatosGrafico($value_criteria, $date_start, $date_end); if (count($data_graph["values"]) > 0) { // Create the Pie Graph. $graph = new PieGraph(630, 220, "auto"); $graph->SetMarginColor('#fafafa'); $graph->SetFrame(true, '#999999'); $graph->legend->SetFillColor("#fafafa"); $graph->legend->SetColor("#444444", "#999999"); $graph->legend->SetShadow('gray@0.6', 4); // Set A title for the plot $graph->title->Set(utf8_decode($data_graph["title"])); $graph->title->SetColor("#444444"); $graph->legend->Pos(0.1, 0.2); // Create 3D pie plot $p1 = new PiePlot3d($data_graph["values"]); $p1->SetCenter(0.4); $p1->SetSize(100); // Adjust projection angle $p1->SetAngle(60); // Adjsut angle for first slice $p1->SetStartAngle(45); // Display the slice values $p1->value->SetColor("black"); // Add colored edges to the 3D pie // NOTE: You can't have exploded slices with edges! $p1->SetEdge("black"); $p1->SetLegends($data_graph["legend"]); $graph->Add($p1); $graph->Stroke(); } else { $graph = new CanvasGraph(630, 220, "auto"); $title = new Text(utf8_decode($data_graph["title"])); $title->ParagraphAlign('center'); $title->SetFont(FF_FONT2, FS_BOLD); $title->SetMargin(3); $title->SetAlign('center'); $title->Center(0, 630, 110); $graph->AddText($title); $t1 = new Text(utf8_decode($arrLang["No records found"])); $t1->SetBox("white", "black", true); $t1->ParagraphAlign("center"); $t1->SetColor("black"); $graph->AddText($t1); $graph->img->SetColor('navy'); $graph->img->SetTextAlign('center', 'bottom'); $graph->img->Rectangle(0, 0, 629, 219); $graph->Stroke(); /* //no hay datos - por ahora muestro una imagen en blanco con mensaje no records found header('Content-type: image/png'); $titulo=utf8_decode($data_graph["title"]); $im = imagecreate(630, 220); $background_color = imagecolorallocate($im, 255, 255, 255); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 10, 5, 5, $titulo. " - No records found", $text_color); imagepng($im); imagedestroy($im);*/ } }
/** * Método que sirve de reemplazo al mecanismo de paloSantoGraph y paloSantoGraphLib * para generar gráficos a partir de una clase que devuelve datos. * * @param string $module Módulo que contiene la clase fuente de datos * @param string $class Clase a instanciar para obtener fuente de datos * @param string $function Método a llamar en la clase para obtener datos * @param array $arrParameters Lista de parámetros para la invocación * @param string $functionCB */ function displayGraph($G_MODULE, $G_CLASS, $G_FUNCTION, $G_PARAMETERS, $G_FUNCTIONCB = "") { //------- PARAMETROS DEL GRAPH ------- $G_TYPE = null; //tipo de grafica $G_TITLE = null; //titulo $G_COLOR = null; //colores $G_LABEL = array(); //etiquetas $G_SIZE = array(); //tamaño $G_MARGIN = array(); //margen $G_LEYEND_NUM_COLUMN = 1; $G_LEYEND_POS = array(0.05, 0.5); //posicion de las leyendas $_MSJ_ERROR = null; //$_MSJ_ERROR = "Sin mensaje ERROR"; global $_MSJ_NOTHING; //$_MSJ_NOTHING = "Sin mensaje NOTHING"; $G_YDATAS = array(); $G_ARR_COLOR = array(); $G_ARR_FILL_COLOR = array(); $G_ARR_LEYEND = array(); $G_ARR_STEP = array(); $G_SHADOW = false; $G_LABEL_Y = null; //ESTATICOS $G_SCALE = "textlin"; $G_WEIGHT = 1; if ($G_MODULE != '') { require_once "modules/{$G_MODULE}/libs/{$G_CLASS}.class.php"; //lib del modulo require_once "modules/{$G_MODULE}/configs/default.conf.php"; //archivo configuracion del modulo global $arrConfModule; $dsn = isset($arrConfModule["dsn_conn_database"]) ? $arrConfModule["dsn_conn_database"] : ""; } else { require_once "libs/{$G_CLASS}.class.php"; //lib del modulo require_once "configs/default.conf.php"; //archivo configuracion del modulo global $arrConf; $dsn = isset($arrConf["dsn_conn_database"]) ? $arrConf["dsn_conn_database"] : ""; } $oPaloClass = new $G_CLASS($dsn); $arrParam = $G_PARAMETERS; $result = call_user_func_array(array(&$oPaloClass, $G_FUNCTION), $arrParam); global $globalCB; $globalCB = NULL; if ($G_FUNCTIONCB != '') { $globalCB = array($oPaloClass, $G_FUNCTIONCB); } //------------------- CONTRUCCION DEL ARREGLO PARA X & Y ------------------- global $xData; $xData = array(); $yData = array(); if (sizeof($result) != 0) { $isX_array = false; //usado en LINEPLOT, PLOT3D, BARPLOT, LINEPLOT_MULTIAXIS foreach ($result as $att => $arrXY) { //------------------ ATTRIBUTES ------------------ if ($att == 'ATTRIBUTES') { foreach ($arrXY as $key => $values) { //VARIABLES NECESARIAS if ($key == 'LABEL_X') { $G_LABEL[0] = $values; } else { if ($key == 'LABEL_Y') { $G_LABEL[1] = $values; } else { if ($key == 'TITLE') { $G_TITLE = $values; } else { if ($key == 'TYPE') { $G_TYPE = $values; } else { if ($key == 'SIZE') { $G_SIZE = explode(',', $values); } else { if ($key == 'MARGIN') { $G_MARGIN = explode(',', $values); } else { if ($key == 'COLOR') { $G_COLOR = $values; } else { if ($key == 'POS_LEYEND') { $G_LEYEND_POS = explode(',', $values); } else { if ($key == 'NUM_COL_LEYEND') { $G_LEYEND_NUM_COLUMN = $values; } else { if ($key == 'SHADOW') { $G_SHADOW = $values; } } } } } } } } } } } } else { if ($att == 'MESSAGES') { foreach ($arrXY as $key => $values) { if ($key == 'ERROR') { $_MSJ_ERROR = $values; } else { if ($key == 'NOTHING_SHOW') { $_MSJ_NOTHING = $values; } } } } else { if ($att == 'DATA') { foreach ($arrXY as $DAT_N => $MODES) { foreach ($MODES as $key => $values) { /************************************************************/ if ($G_TYPE == 'lineplot' || $G_TYPE == 'barplot' || $G_TYPE == 'lineplot_multiaxis') { if ($key == 'VALUES') { $yData = array(); foreach ($values as $x => $y) { if ($isX_array == false) { $xData[] = $x; } $yData[] = $y; } $isX_array = is_array($xData) ? true : false; $G_YDATAS[] = $yData; } else { if ($key == 'STYLE') { foreach ($values as $x => $y) { if ($x == 'COLOR') { $G_ARR_COLOR[] = $y; } else { if ($x == 'LEYEND') { $G_ARR_LEYEND[] = $y; } else { if ($x == 'STYLE_STEP') { $G_ARR_STEP[] = $y; } else { if ($x == 'FILL_COLOR') { $G_ARR_FILL_COLOR[] = $y; } } } } } } } } else { if ($G_TYPE == 'plot3d' || $G_TYPE == 'plot3d2') { if ($key == 'VALUES') { foreach ($values as $x => $y) { $yData[] = $y; } $G_YDATAS[0] = $yData; } else { if ($key == 'STYLE') { foreach ($values as $x => $y) { if ($x == 'COLOR') { $G_ARR_COLOR[] = $y; } else { if ($x == 'LEYEND') { $xData[] = $y; } } } } } } else { if ($G_TYPE == 'bar' || $G_TYPE == 'gauge') { if ($key == 'VALUES') { foreach ($values as $x => $y) { $G_YDATAS[] = $y; } } } } } } } } } } } } //*****************************************// // ***** ***** ***** ***** * * // // * * * * * * * * * // // * *** ***** ***** ***** ***** // // * * * * * * * * * // // ***** * * * * * * * // //*****************************************// // L I N E P L O T if (sizeof($G_YDATAS) >= 1) { // true no funciona porque cada cadena u otro valor que se retorne es valor "valido o verdadero" // y equivale a true, entonces para diferenciarlo verdaderamente se compara con 'true' $str = checkAttributes($G_TITLE, $G_TYPE, $G_LABEL_Y, $_MSJ_ERROR, $_MSJ_NOTHING); if ($str != 'true') { showError($str, $G_SIZE); return; } if ($G_TYPE == 'lineplot') { $graph = new Graph($G_SIZE[0], $G_SIZE[1], "auto"); if ($G_SHADOW) { $graph->SetShadow(); } $graph->SetScale($G_SCALE); $graph->SetMarginColor($G_COLOR); $graph->title->Set($G_TITLE); $graph->SetFrame(true, '#999999'); $graph->img->SetMargin($G_MARGIN[0], $G_MARGIN[1], $G_MARGIN[2], $G_MARGIN[3]); $graph->img->SetAntiAliasing(); $graph->xaxis->SetLabelFormatCallback("CallBack"); $graph->xaxis->SetLabelAngle(90); $graph->xaxis->title->Set($G_LABEL[0]); $graph->yaxis->title->Set($G_LABEL[1]); $graph->xgrid->Show(); $graph->legend->SetFillColor("#fafafa"); $graph->legend->Pos($G_LEYEND_POS[0], $G_LEYEND_POS[1], "right", "center"); $graph->legend->SetColumns($G_LEYEND_NUM_COLUMN); $graph->legend->SetColor("#444444", "#999999"); $arr_lineplot = array(); foreach ($G_YDATAS as $num => $yDatas) { $lineplot = new LinePlot($yDatas); if ($G_ARR_STEP[$num] == true) { $lineplot->SetStepStyle(); } if ($G_ARR_FILL_COLOR[$num] == true) { $lineplot->SetFillColor($G_ARR_COLOR[$num]); } $lineplot->SetColor($G_ARR_COLOR[$num]); $lineplot->SetWeight($G_WEIGHT); $lineplot->SetLegend($G_ARR_LEYEND[$num]); $arr_lineplot[] = $lineplot; } foreach ($arr_lineplot as $num => $yDatas) { $graph->Add($yDatas); } if (sizeof($xData) > 100) { $graph->xaxis->SetTextTickInterval((int) (sizeof($xData) / 10)); } $graph->Stroke(); } else { if ($G_TYPE == 'plot3d') { $graph = new PieGraph($G_SIZE[0], $G_SIZE[1], "auto"); if ($G_SHADOW) { $graph->SetShadow(); } $dataMarginColor = isset($result["ATTRIBUTES"]["MARGIN_COLOR"]) ? $result["ATTRIBUTES"]["MARGIN_COLOR"] : "#999999"; $dataSizePie = isset($result["ATTRIBUTES"]["SIZE_PIE"]) ? $result["ATTRIBUTES"]["SIZE_PIE"] : "80"; $graph->SetMarginColor($G_COLOR); $graph->SetFrame(true, $dataMarginColor); $graph->legend->Pos($G_LEYEND_POS[0], $G_LEYEND_POS[1], "right", "center"); $graph->legend->SetFillColor("#fafafa"); $graph->legend->SetColor("#444444", "#999999"); $graph->legend->SetShadow('gray@0.6', 4); $graph->legend->SetColumns($G_LEYEND_NUM_COLUMN); $graph->title->Set($G_TITLE); $pieplot3d = new PiePlot3d($G_YDATAS[0]); $pieplot3d->SetSliceColors($G_ARR_COLOR); $pieplot3d->SetCenter(0.4); $pieplot3d->SetSize($dataSizePie); $pieplot3d->SetAngle(45); $pieplot3d->SetStartAngle(45); $pieplot3d->value->SetColor('black'); //color a los porcentages $pieplot3d->SetEdge('black'); //da color al contorno y separacion del pastel $pieplot3d->SetLegends($xData); $graph->Add($pieplot3d); $graph->Stroke(); } else { if ($G_TYPE == 'plot3d2') { if (!function_exists('displayGraph_draw_pie3d')) { function displayGraph_draw_pie3d($canvasx, $ydata, $arrcolor) { $canvasy = $canvasx; $escala = $canvasx / 320.0; $iAnchoPastel = 256 * $escala; $iAltoPastel = 155 * $escala; $iPosCentroX = 141 * $escala; $iPosCentroY = 91 * $escala; $thumb = imagecreatetruecolor($canvasx * 284 / 320, $canvasy * 250 / 320); $transparent = imagecolorallocatealpha($thumb, 200, 200, 200, 127); imagefill($thumb, 0, 0, $transparent); // Asignar colores de imagen $imgcolor = array(); foreach ($arrcolor as $i => $sHtmlColor) { $r = $g = $b = 0; sscanf($sHtmlColor, "#%02x%02x%02x", $r, $g, $b); $imgcolor[$i] = imagecolorallocate($thumb, $r, $g, $b); } $colorTexto = imagecolorallocate($thumb, 0, 0, 0); // Mostrar el gráfico de pastel if (!function_exists('displayGraph_pie')) { function displayGraph_pie($thumb, $x, $y, $w, $h, $ydata, $G_ARR_COLOR, $colorTexto) { $iTotal = array_sum($ydata); $iFraccion = 0; $etiquetas = array(); for ($i = 0; $i < count($ydata); $i++) { if ($ydata[$i] >= $iTotal) { imagefilledellipse($thumb, $x, $y, $w, $h, $G_ARR_COLOR[$i]); } else { $degInicio = 360 - 45 - (int) (360.0 * ($iFraccion + $ydata[$i]) / $iTotal); $degFinal = 360 - 45 - (int) (360.0 * $iFraccion / $iTotal); imagefilledarc($thumb, $x, $y, $w, $h, $degInicio, $degFinal, $G_ARR_COLOR[$i], IMG_ARC_PIE); } $iFraccion += $ydata[$i]; $degMitad = ($degInicio + $degFinal) / 2; $iPosTextoX = $x + 0.5 * ($w / 2.0) * cos(deg2rad($degMitad)); $iPosTextoY = $y + 0.5 * ($h / 2.0) * sin(deg2rad($degMitad)); $etiquetas[] = array($iPosTextoX, $iPosTextoY, sprintf('%.1f %%', 100.0 * $ydata[$i] / $iTotal)); } /* if (!is_null($colorTexto)) { for ($i = 0; $i < count($ydata); $i++) imagestring($thumb, 5, $etiquetas[$i][0], $etiquetas[$i][1], $etiquetas[$i][2], $colorTexto); } */ } } for ($i = (int) (60 * $escala); $i > 0; $i--) { displayGraph_pie($thumb, $iPosCentroX, $iPosCentroY + $i, $iAnchoPastel, $iAltoPastel, $ydata, $imgcolor, NULL); } displayGraph_pie($thumb, $iPosCentroX, $iPosCentroY, $iAnchoPastel, $iAltoPastel, $ydata, $imgcolor, $colorTexto); imagealphablending($thumb, true); imagesavealpha($thumb, true); $source2 = imagecreatefrompng("images/pie_alpha.png"); imagealphablending($source2, true); imagecopyresampled($thumb, $source2, 0, 0, 0, 0, 290 * $escala, 294 * $escala, 290, 294); header("Content-Type: image/png"); imagepng($thumb); } } displayGraph_draw_pie3d($G_SIZE[0], $G_YDATAS[0], $G_ARR_COLOR); } else { if ($G_TYPE == 'barplot') { $graph = new Graph($G_SIZE[0], $G_SIZE[1], "auto"); if ($G_SHADOW) { $graph->SetShadow(); } $graph->SetScale($G_SCALE); $graph->SetMarginColor($G_COLOR); $graph->img->SetMargin($G_MARGIN[0], $G_MARGIN[1], $G_MARGIN[2], $G_MARGIN[3]); $graph->title->Set($G_TITLE); $graph->xaxis->title->Set($G_LABEL[0]); $graph->xaxis->SetLabelFormatCallback("CallBack"); $graph->xaxis->SetLabelAngle(90); //$graph->xaxis->SetTickLabels($xData); $graph->yaxis->title->Set($G_LABEL[1]); $graph->legend->SetFillColor("#fafafa"); $graph->legend->Pos($G_LEYEND_POS[0], $G_LEYEND_POS[1], "right", "center"); $graph->legend->SetColumns($G_LEYEND_NUM_COLUMN); $arr_barplot = array(); foreach ($G_YDATAS as $num => $yDatas) { $barplot = new BarPlot($yDatas); $barplot->SetFillColor($G_ARR_COLOR[$num]); $barplot->SetLegend($G_ARR_LEYEND[$num]); $arr_barplot[] = $barplot; } $gbarplot = new GroupBarPlot($arr_barplot); $gbarplot->SetWidth(0.6); $graph->Add($gbarplot); $graph->Stroke(); } else { if ($G_TYPE == 'lineplot_multiaxis') { $graph = new Graph($G_SIZE[0], $G_SIZE[1], "auto"); if ($G_SHADOW) { $graph->SetShadow(); } $inc = sizeof($G_YDATAS); $graph->SetScale($G_SCALE); $graph->SetFrame(true, '#999999'); $graph->title->Set($G_TITLE); $graph->img->SetAntiAliasing(); $graph->xaxis->SetLabelFormatCallback("CallBack"); $graph->img->SetMargin($G_MARGIN[0], $G_MARGIN[1], $G_MARGIN[2], $G_MARGIN[3]); $graph->SetMarginColor($G_COLOR); $graph->legend->SetFillColor("#fafafa"); $graph->legend->Pos($G_LEYEND_POS[0], $G_LEYEND_POS[1], "right", "center"); $graph->xaxis->SetLabelAngle(90); $graph->legend->SetColor("#444444", "#999999"); $graph->legend->SetShadow('gray@0.6', 4); $graph->legend->SetColumns($G_LEYEND_NUM_COLUMN); foreach ($G_YDATAS as $num => $yData) { $lineplot = new LinePlot($yData); $lineplot->SetWeight($G_WEIGHT); $lineplot->SetLegend($G_ARR_LEYEND[$num]); if ($G_ARR_STEP[$num] == true) { $lineplot->SetStepStyle(); } if ($G_ARR_FILL_COLOR[$num] == true) { $lineplot->SetFillColor($G_ARR_COLOR[$num]); } if ($num == 0) { $lineplot->SetColor($G_ARR_COLOR[$num]); $graph->yaxis->SetColor($G_ARR_COLOR[$num]); $graph->Add($lineplot); } else { $lineplot->SetColor($G_ARR_COLOR[$num]); $graph->SetYScale($num - 1, 'lin'); $graph->ynaxis[$num - 1]->SetColor($G_ARR_COLOR[$num]); $graph->ynaxis[$num - 1]->SetPosAbsDelta($G_MARGIN[1] + 49 * ($num - 1)); //mueve el eje Y $graph->AddY($num - 1, $lineplot); } } if (sizeof($xData) > 100) { //$graph->xaxis->SetTextLabelInterval( (int)(sizeof($xData)/8) ); $graph->xaxis->SetTextTickInterval((int) (sizeof($xData) / 10)); //$graph->xaxis->SetTextTickInterval( 9*(int)(log(sizeof($xData))-1) ); } $graph->Stroke(); } else { if ($G_TYPE == 'bar') { $g = new CanvasGraph(91, 21, 'auto'); $g->SetMargin(0, 0, 0, 0); $g->InitFrame(); $xmax = 20; $ymax = 20; $scale = new CanvasScale($g); $scale->Set(0, $G_SIZE[0], 0, $G_SIZE[1]); //DUBUJA LA BARRA $alto = $G_SIZE[1]; $ancho = $G_SIZE[0]; $coor_x = 0; $coor_y = 0; $porcentage = $G_YDATAS[0]; $valor = 90 * (1 - $porcentage); $g->img->Line($coor_x, $coor_y, $coor_x + $ancho, $coor_y); $g->img->Line($coor_x, $coor_y, $coor_x, $coor_y + $alto); $g->img->Line($coor_x + $ancho, $coor_y, $coor_x + $ancho, $coor_y + $alto); $g->img->Line($coor_x, $coor_y + $alto, $coor_x + $ancho, $coor_y + $alto); for ($i = 0; $i < $alto; $i++) { $g->img->SetColor(array(95 - 3 * $i, 138 - 3 * $i, 203 - 3 * $i)); //para hacerlo 3D, degradacion $g->img->Line($coor_x, $coor_y + $i + 1, $coor_x + $ancho - $valor - 1, $coor_y + $i + 1); } $g->Stroke(); } else { if ($G_TYPE == 'gauge') { if (!function_exists('displayGraph_draw_gauge')) { function displayGraph_draw_gauge($canvasx, $percent) { $escala = $canvasx / 320.0; $thumb = imagecreatetruecolor($canvasx * 284 / 320, $canvasx * 284 / 320); if ($percent > 100) { $percent = 100.0; } if ($percent < 0) { $percent = 0.0; } $angle = -135.0 + 270 * $percent / 100.0; // COLORES $blanco = imagecolorallocate($thumb, 255, 255, 255); $dred = imagecolorallocate($thumb, 180, 0, 0); $lred = imagecolorallocate($thumb, 100, 0, 0); $transparent = imagecolorallocatealpha($thumb, 200, 200, 200, 127); imagefill($thumb, 0, 0, $transparent); imagealphablending($thumb, true); imagesavealpha($thumb, true); $source = imagecreatefrompng("images/gauge_base.png"); imagealphablending($source, true); imagecopyresampled($thumb, $source, 0, 0, 0, 0, 285 * $escala, 285 * $escala, 285, 285); $radius = 100 * $escala; $radius_min = 12 * $escala; $centrox = 142 * $escala; $centroy = 141 * $escala; $x1 = $centrox + sin(deg2rad($angle)) * $radius; // x coord farest $x2 = $centrox + sin(deg2rad($angle - 90)) * $radius_min; $x3 = $centrox + sin(deg2rad($angle + 90)) * $radius_min; $y1 = $centroy - cos(deg2rad($angle)) * $radius; $y2 = $centroy - cos(deg2rad($angle - 90)) * $radius_min; $y3 = $centroy - cos(deg2rad($angle + 90)) * $radius_min; $arrTriangle1 = array($centrox, $centroy, $x1, $y1, $x2, $y2); $arrTriangle2 = array($centrox, $centroy, $x1, $y1, $x3, $y3); imagefilledpolygon($thumb, $arrTriangle1, 3, $lred); imagefilledpolygon($thumb, $arrTriangle2, 3, $dred); $source2 = imagecreatefrompng("images/gauge_center.png"); imagealphablending($source2, true); imagecopyresampled($thumb, $source2, 121 * $escala, 120 * $escala, 0, 0, 44 * $escala, 44 * $escala, 44, 44); header("Content-Type: image/png"); imagepng($thumb); } } displayGraph_draw_gauge($G_SIZE[0], $G_YDATAS[0] * 100.0); } else { if ($G_TYPE == 'bar2') { $alto = 20; $ancho = 90; $coor_x = 100; $coor_y = 10; $porcentage = 0.67; $valor = 90 * (1 - $porcentage); $g = new CanvasGraph($G_LEN_X, 40, 'auto'); $g->SetMargin(1, 1, 31, 9); $g->SetMarginColor('#fafafa'); $g->SetColor(array(250, 250, 250)); $g->InitFrame(); $xmax = 20; $ymax = 20; $scale = new CanvasScale($g); $scale->Set(0, $G_LEN_X, 0, $G_LEN_Y); //DUBUJA LA BARRA $g->img->Line($coor_x, $coor_y, $coor_x + $ancho, $coor_y); $g->img->Line($coor_x, $coor_y, $coor_x, $coor_y + $alto); $g->img->Line($coor_x + $ancho, $coor_y, $coor_x + $ancho, $coor_y + $alto); $g->img->Line($coor_x, $coor_y + $alto, $coor_x + $ancho, $coor_y + $alto); for ($i = 0; $i < $alto; $i++) { $g->img->SetColor(array(95 - 4 * $i, 138 - 4 * $i, 203 - 4 * $i)); //para hacerlo 3D, degradacion $g->img->Line($coor_x, $coor_y + $i, $coor_x + $ancho - $valor - 1, $coor_y + $i); } //AGREGA LABEL 1 $txt = "Uso de CPU"; $t = new Text($txt, 10, 12); $t->font_style = FS_BOLD; $t->Stroke($g->img); //AGREGA LABEL 2 $txt = "67.64% used of 2,200.00 MHz"; $t = new Text($txt, 200, 12); $t->font_style = FS_BOLD; $t->Stroke($g->img); $g->Stroke(); } } } } } } } } } else { showError('nothing', $G_SIZE, $G_TITLE); } }
// Some data $data = array(20, 27, 45, 75, 90); // Create the Pie Graph. $graph = new PieGraph(350, 200); $graph->SetShadow(); // Set A title for the plot $graph->title->Set("Example 2 3D Pie plot"); $graph->title->SetFont(FF_VERDANA, FS_BOLD, 18); $graph->title->SetColor("darkblue"); $graph->legend->Pos(0.1, 0.2); // Create 3D pie plot $p1 = new PiePlot3d($data); $p1->SetTheme("sand"); $p1->SetCenter(0.4); $p1->SetSize(0.4); $p1->SetHeight(5); // Adjust projection angle $p1->SetAngle(45); // You can explode several slices by specifying the explode // distance for some slices in an array $p1->Explode(array(0, 40, 0, 30)); // As a shortcut you can easily explode one numbered slice with // $p1->ExplodeSlice(3); $p1->value->SetFont(FF_ARIAL, FS_NORMAL, 10); $p1->SetLegends(array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct")); $graph->Add($p1); $graph->Stroke(); ?>
<?php include "../jpgraph.php"; include "../jpgraph_pie.php"; include "../jpgraph_pie3d.php"; // Some data $data = array(20, 27, 45, 75, 90); // Create the Pie Graph. $graph = new PieGraph(350, 200, "auto"); $graph->SetShadow(); // Set A title for the plot $graph->title->Set("Example 1 3D Pie plot"); $graph->title->SetFont(FF_VERDANA, FS_BOLD, 18); $graph->title->SetColor("darkblue"); $graph->legend->Pos(0.1, 0.2); // Create pie plot $p1 = new PiePlot3d($data); $p1->SetTheme("sand"); $p1->SetCenter(0.4); $p1->SetAngle(30); $p1->value->SetFont(FF_ARIAL, FS_NORMAL, 12); $p1->SetLegends(array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct")); $graph->Add($p1); $graph->Stroke(); ?>
function graph_pie($p_metrics, $p_title = '', $p_graph_width = 500, $p_graph_height = 350, $p_center = 0.4, $p_poshorizontal = 0.1, $p_posvertical = 0.09) { $t_graph_font = graph_get_font(); error_check(is_array($p_metrics) ? array_sum($p_metrics) : 0, $p_title); if (plugin_config_get('eczlibrary') == ON) { $graph = new ezcGraphPieChart(); $graph->title = $p_title; $graph->background->color = '#FFFFFF'; $graph->options->font = $t_graph_font; $graph->options->font->maxFontSize = 12; $graph->legend = false; $graph->data[0] = new ezcGraphArrayDataSet($p_metrics); $graph->data[0]->color = '#FFFF00'; $graph->renderer = new ezcGraphRenderer3d(); $graph->renderer->options->dataBorder = false; $graph->renderer->options->pieChartShadowSize = 10; $graph->renderer->options->pieChartGleam = 0.5; $graph->renderer->options->pieChartHeight = 16; $graph->renderer->options->legendSymbolGleam = 0.5; $graph->driver = new ezcGraphGdDriver(); //$graph->driver->options->supersampling = 1; $graph->driver->options->jpegQuality = 100; $graph->driver->options->imageFormat = IMG_JPEG; $graph->renderer->options->syncAxisFonts = false; $graph->renderToOutput($p_graph_width, $p_graph_height); } else { $graph = new PieGraph($p_graph_width, $p_graph_height); $graph->img->SetMargin(40, 40, 40, 100); $graph->title->Set($p_title); $graph->title->SetFont($t_graph_font, FS_BOLD); $graph->SetMarginColor('white'); $graph->SetFrame(false); $graph->legend->Pos($p_poshorizontal, $p_posvertical); $graph->legend->SetFont($t_graph_font); $p1 = new PiePlot3d(array_values($p_metrics)); // should be reversed? $p1->SetTheme('earth'); # $p1->SetTheme("sand"); $p1->SetCenter($p_center); $p1->SetAngle(60); $p1->SetLegends(array_keys($p_metrics)); # Label format $p1->value->SetFormat('%2.0f'); $p1->value->Show(); $p1->value->SetFont($t_graph_font); $graph->Add($p1); 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(); } }
function PIE_graph($module, $method, $type, $start, $extra_fields) { global $C_translate, $C_auth; include_once PATH_CORE . 'validate.inc.php'; $dt = new CORE_validate(); include PATH_GRAPH . "jpgraph.php"; #################################################################### ### Check if 'search' is authorized for this account #################################################################### # check the validation for this function if ($C_auth->auth_method_by_name($module, 'search')) { # validate this file exists, and include it. if (file_exists(PATH_MODULES . '/' . $module . '/' . $module . '.inc.php')) { include_once PATH_MODULES . '/' . $module . '/' . $module . '.inc.php'; } else { ### Not exist! $error = $C_translate->translate('module_non_existant', '', ''); } } else { ### Not auth $error = $C_translate->translate('module_non_auth', '', ''); } if (isset($error)) { include PATH_GRAPH . "jpgraph_canvas.php"; // Create the graph. $graph = new CanvasGraph(460, 55, "auto"); $t1 = new Text($error); $t1->Pos(0.2, 0.5); $t1->SetOrientation("h"); $t1->SetBox("white", "black", 'gray'); $t1->SetFont(FF_FONT1, FS_NORMAL); $t1->SetColor("black"); $graph->AddText($t1); $graph->Stroke(); exit; } # initialize the module, if it has not already been initialized $eval = '$' . $module . ' = new ' . $module . '; '; $eval .= '$this_Obj = $' . $module . ';'; eval($eval); # run the function $array = call_user_func(array($module, $method), $start_str, $end_str, $constraint_array, $default_array, $extra_fields); include PATH_GRAPH . "jpgraph_pie.php"; include PATH_GRAPH . "jpgraph_pie3d.php"; $data = $array['data']; $legends = $array['legends']; // Create the Pie Graph. $graph = new PieGraph(500, 250, "auto"); $graph->SetScale("textlin"); $graph->SetMarginColor('#F9F9F9'); $graph->SetFrame(true, '#FFFFFF', 0); $graph->SetColor('#F9F9F9'); // Create pie plot $p1 = new PiePlot3d($data); $p1->SetTheme("water"); $p1->SetCenter(0.4); $p1->SetAngle(30); $p1->value->SetFont(FF_FONT1, FS_NORMAL, 8); $p1->SetLegends($legends); // Explode the larges slice: $largest = 0; for ($i = 0; $i < count($data); $i++) { if ($data[$i] > $largest) { $largest = $data[$i]; $explode = $i; } } if ($explode) { $p1->ExplodeSlice($explode); } $graph->Add($p1); $graph->Stroke(); }
function graph_pie($p_metrics, $p_title = '', $p_graph_width = 500, $p_graph_height = 350, $p_center = 0.4, $p_poshorizontal = 0.1, $p_posvertical = 0.09) { $t_graph_font = graph_get_font(); error_check(is_array($p_metrics) ? array_sum($p_metrics) : 0, $p_title); $graph = new PieGraph($p_graph_width, $p_graph_height); $graph->img->SetMargin(40, 40, 40, 100); $graph->title->Set($p_title); $graph->title->SetFont($t_graph_font, FS_BOLD); $graph->SetMarginColor('white'); $graph->SetFrame(false); $graph->legend->Pos($p_poshorizontal, $p_posvertical); $graph->legend->SetFont($t_graph_font); $p1 = new PiePlot3d(array_values($p_metrics)); // should be reversed? $p1->SetTheme('earth'); #$p1->SetTheme("sand"); $p1->SetCenter($p_center); $p1->SetAngle(60); $p1->SetLegends(array_keys($p_metrics)); # Label format $p1->value->SetFormat('%2.0f'); $p1->value->Show(); $p1->value->SetFont($t_graph_font); $graph->Add($p1); if (helper_show_queries()) { $graph->subtitle->Set(db_count_queries() . ' queries (' . db_count_unique_queries() . ' unique) (' . db_time_queries() . 'sec)'); $graph->subtitle->SetFont($t_graph_font, FS_NORMAL, 8); } $graph->Stroke(); }
/** * Runs the phpOpenTracker API call. * * @param array $parameters * @return mixed * @access public */ function run($parameters) { global $lang, $c; $parameters['api_call'] = 'top'; $parameters['result_format'] = 'separate_result_arrays'; $apicall = array('api_call' => 'top', 'result_format' => 'separate_result_arrays', 'what' => $parameters["what"], 'start' => $parameters["start"], 'end' => $parameters["end"], 'client_id' => 1, 'limit' => $parameters["limit"]); list($names, $values, $percent, $total) = phpOpenTracker::get($apicall); $percent_others = 100.0; $values_others = 0; for ($j = 0; $j < $parameters['limit']; $j++) { $percent_others = $percent_others - $percent[$j]; $values_others = $values_others + $values[$j]; if (is_numeric($names[$j])) { $names[$j] = resolvePage($names[$j]); } } array_push($percent, $percent_others); array_push($names, $lang->get("others", "Others")); array_push($values, $values_others * $percent_others / 100); $title = 'Top ' . $parameters['limit'] . ' '; switch ($parameters['what']) { case 'document': $title .= 'Pages'; break; case 'entry_document': $title .= 'Entry Pages'; break; case 'exit_document': $title .= 'Exit Pages'; break; case 'exit_target': $title .= 'Exit Targets'; break; case 'host': $title .= 'Hosts'; break; case 'operating_system': $title .= 'Operating Systems'; break; case 'referer': $title .= 'Referers'; break; case 'user_agent': $title .= 'Browsers'; break; } $title .= " (Total: {$total})"; for ($i = 0, $numValues = sizeof($values); $i < $numValues; $i++) { $legend[$i] = sprintf('%s (%s, %s%%%%)', $names[$i], $values[$i], $percent[$i]); } $graph = new PieGraph($parameters['width'], $parameters['height'], 'auto'); $graph->title->Set($title); if ($c["usettf"]) { $graph->title->SetFont(FF_ARIAL, FS_NORMAL, 8); } $graph->title->SetColor('black'); $graph->legend->Pos(0.5, 0.6, "center", "top"); $graph->legend->SetFillColor("white"); $graph->legend->SetShadow(0); //$graph->legend->SetFrame(0); if ($c["usettf"]) { $graph->legend->SetFont(FF_ARIAL, FS_NORMAL, 8); } $graph->SetFrame(0); $plot = new PiePlot3d($percent); $plot->SetTheme('nx'); $plot->SetCenter(0.5, 0.3); $plot->SetAngle(45); if ($c["usettf"]) { $plot->value->SetFont(FF_ARIAL, FS_NORMAL, 8); } $plot->SetLegends($legend); $graph->Add($plot); $graph->img->SetAntiAliasing("white"); $graph->Stroke(); }
// Start Graphing ----------------------------> // Create the graph. $graph = new PieGraph(325, 260); //$graph->SetShadow(); // Set A title for the plot $graph->title->Set(gettext("Grafik Persentase Sektor")); $graph->title->SetFont(FF_FONT1, FS_BOLD, 10); $graph->title->SetColor("darkblue"); $graph->legend->Pos(0.02, 0.15); // Create the bar plot $p1 = new PiePlot3d($totals); $p1->SetTheme("sand"); $p1->SetCenter(0.24); $p1->SetSize(50); // Adjust projection angle $p1->SetAngle(90); // Adjsut angle for first slice $p1->SetStartAngle(315); // As a shortcut you can easily explode one numbered slice with //$p1->ExplodeSlice(1); // Use absolute values (type==1) $p1->SetLabelType(PIE_VALUE_ABS); // Display the slice values //$p1->value->SetFormat('%d'); $p1->value->Show(); // Set font for legend $p1->value->SetFont(FF_FONT1, FS_NORMAL, 12); $p1->SetLegends($BPK); // Add the plots to the graph $graph->Add($p1); // Display the graph
<?php include "../jpgraph.php"; include "../jpgraph_pie.php"; include "../jpgraph_pie3d.php"; // Some data $data = array(200, 27, 45, 75, 90); // Create the Pie Graph. $graph = new PieGraph(400, 300, "auto"); $graph->SetFrame(true, 'darkblue', 0); //$theme_class= new VividTheme; //$graph->SetTheme($theme_class); // Set A title for the plot //$graph->title->Set("Example 1 3D Pie plot"); //$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); //$graph->title->SetColor("darkblue"); //$graph->legend->Pos(0.1,0.2); // Create pie plot $p1 = new PiePlot3d($data); $p1->SetTheme("pastel"); $p1->SetCenter(0.5); $p1->SetAngle(60); $p1->SetSliceColors(array('red', 'blue', 'green', 'navy', 'orange')); //$p1->value->SetFont(FF_ARIAL,FS_NORMAL,12); //$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct")); $graph->Add($p1); $graph->Stroke(); ?>
/** * Runs the phpOpenTracker API call. * * @param array $parameters * @return mixed * @access public */ function run($parameters) { $parameters['api_call'] = 'top'; $parameters['result_format'] = 'separate_result_arrays'; list($names, $values, $percent, $total) = phpOpenTracker::get($parameters); $title = 'Top ' . $parameters['limit'] . ' '; switch ($parameters['what']) { case 'document': $title .= 'Pages'; break; case 'entry_document': $title .= 'Entry Pages'; break; case 'exit_document': $title .= 'Exit Pages'; break; case 'exit_target': $title .= 'Exit Targets'; break; case 'host': $title .= 'Hosts'; break; case 'operating_system': $title .= 'Operating Systems'; break; case 'referer': $title .= 'Referers'; break; case 'user_agent': $title .= 'User Agents'; break; } $title .= " (Total: {$total})"; for ($i = 0, $numValues = sizeof($values); $i < $numValues; $i++) { $legend[$i] = sprintf('%s (%s, %s%%%%)', $names[$i], $values[$i], $percent[$i]); } $graph = new PieGraph($parameters['width'], $parameters['height'], 'auto'); $graph->SetShadow(); $graph->title->Set($title); $graph->title->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size']); $graph->title->SetColor('black'); $graph->legend->Pos(0.1, 0.2); $plot = new PiePlot3d($values); $plot->SetTheme('sand'); $plot->SetCenter(0.4); $plot->SetAngle(30); $plot->value->SetFont($parameters['font'], $parameters['font_style'], $parameters['font_size'] - 2); $plot->SetLegends($legend); $graph->Add($plot); $graph->Stroke(); }
private function piePlot($question, $datax, $datay, $width, $height) { include_once BASE . "jpgraph.php"; include_once BASE . "jpgraph_pie.php"; include_once BASE . "jpgraph_pie3d.php"; // Create the Pie Graph. $graph = new PieGraph($width, $height, "auto"); $graph->SetShadow(); // Set A title for the plot $tFontSize = 11; $graph->title->Set($question); $graph->title->SetFont(FF_VERDANA, FS_BOLD, $tFontSize); $graph->title->SetColor("darkblue"); $graph->SetAntiAliasing(true); $graph->legend->SetPos(0.02, 0.95, 'right', 'bottom'); $graph->legend->SetMarkAbsSize(5); $graph->legend->SetFont(FF_ARIAL, FS_NORMAL, 9); $tWidth = $graph->title->GetWidth($graph->img); //if ($graph->title->GetWidth($graph->img)>$width) $graph->title->SetFont(FF_VERDANA, FS_BOLD, $tFontSize-2); if ($tWidth > $width) { $index = strrpos(substr($question, 0, ($len = strlen($question)) / 2 + 5), ' '); //echo $index; if ($index === false) { $index = $len / 2 - 3; } $question[$index] = "\n"; $graph->title->SetFont(FF_VERDANA, FS_BOLD, $tFontSize -= 2); $graph->title->Set($question); } // Create pie plot $pie = new PiePlot3d($datay); $pie->SetTheme("sand"); $pie->SetCenter(0.5, 0.4); $pie->SetSize(($t = $height * 0.005 / $this->amountOfVariants) > 0.5 ? 0.5 : $t); $pie->SetAngle(30); $pie->ExplodeAll(5); $pie->value->SetFont(FF_ARIAL, FS_NORMAL, 10); $pie->SetLegends($datax); $graph->Add($pie); return $graph->Stroke("images/raporty/{$this->id_pytanie}P.png"); }
function grafic_trunk2(&$pDB_ast_cdr, &$pDB_ast, $module_name, $trunk, $dti, $dtf) { // require_once "modules/{$module_name}/libs/paloSantoExtention.class.php"; $objPalo_AST_CDR = new paloSantoExtention($pDB_ast_cdr); /* Si la troncal pedida es un grupo, se expande el grupo para averiguar las troncales individuales. */ $regs = NULL; if (preg_match('!^DAHDI/(g|r)(\\d+)$!i', $trunk, $regs)) { $iGrupoTrunk = (int) $regs[2]; $gruposTrunk = getTrunkGroupsDAHDI(); if (is_array($gruposTrunk) && isset($gruposTrunk[$iGrupoTrunk])) { $trunk = $gruposTrunk[$iGrupoTrunk]; } } //total minutos de llamadas in y out $arrayTemp = $objPalo_AST_CDR->loadTrunks($trunk, "numcall", $dti, $dtf); $arrResult = $arrayTemp[0]; //$arrResult[0] => "IN" //$arrResult[1] => "OUT" $tot = $arrResult[0] + $arrResult[1]; $usoDisco = $tot != 0 ? 100 * ($arrResult[0] / $tot) : 0; if ($tot != 0) { $freeDisco = 100 - $usoDisco; // Some data $data = array($usoDisco, $freeDisco); // Create the Pie Graph. $graph = new PieGraph(400, 170, "auto"); //$graph->SetShadow(); $graph->SetMarginColor('#fafafa'); $graph->SetFrame(true, '#999999'); $graph->legend->SetFillColor("#fafafa"); //$graph->legend->Pos(0.012, 0.5, "right","center"); $graph->legend->SetColor("#444444", "#999999"); $graph->legend->SetShadow('gray@0.6', 4); //$graph->title->SetColor("#444444"); // Set A title for the plot $graph->title->Set(utf8_decode(_tr("Number of Calls"))); //$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); $graph->title->SetColor("#444444"); $graph->legend->Pos(0.04, 0.2); // Create 3D pie plot $p1 = new PiePlot3d($data); //$p1->SetTheme("water"); $p1->SetSliceColors(array("#3333cc", "#9999cc", "#CC3333", "#72394a", "#aa3424")); $p1->SetCenter(0.3); $p1->SetSize(80); // Adjust projection angle $p1->SetAngle(45); // Adjsut angle for first slice $p1->SetStartAngle(45); // Display the slice values //$p1->value->SetFont(FF_ARIAL,FS_BOLD,11); //$p1->value->SetColor("navy"); $p1->value->SetColor("black"); // Add colored edges to the 3D pies // NOTE: You can't have exploded slices with edges! $p1->SetEdge("black"); $p1->SetLegends(array(utf8_decode(_tr("Incoming Calls") . ": ") . $arrResult[0], utf8_decode(_tr("Outcoming Calls") . ": ") . $arrResult[1])); $graph->Add($p1); $graph->Stroke(); } else { $graph = new CanvasGraph(400, 140, "auto"); $title = new Text(utf8_decode(_tr("Number of Calls"))); $title->ParagraphAlign('center'); $title->SetFont(FF_FONT2, FS_BOLD); $title->SetMargin(3); $title->SetAlign('center'); $title->Center(0, 400, 70); $graph->AddText($title); $t1 = new Text(utf8_decode(_tr("There are no data to present"))); $t1->SetBox("white", "black", true); $t1->ParagraphAlign("center"); $t1->SetColor("black"); $graph->AddText($t1); $graph->img->SetColor('navy'); $graph->img->SetTextAlign('center', 'bottom'); $graph->img->Rectangle(0, 0, 399, 139); $graph->Stroke(); } }
public function generarReportePastel() { $this->load->model('nivel_model'); $alumPorNivel = $this->nivel_model->alumnosPorNivel(); require_once APPPATH . "libraries/jpgraph/jpgraph.php"; require_once APPPATH . "libraries/jpgraph/jpgraph_pie.php"; require_once APPPATH . "libraries/jpgraph/jpgraph_pie3d.php"; // Pasando el nombre de los niveles a un arreglo llamado dato $i = 0; foreach ($alumPorNivel->result() as $a) { $dato[$i] = $a->nombre; $cuenta[] = $a->total; $exp[$i] = 5; $i++; } // Creando el Grafico de Pastel $graph = new PieGraph(550, 400); $graph->SetShadow(); // Estableciendo el titulo $graph->title->Set("Porcentaje de Alumnos por Nivel"); $graph->title->SetFont(FF_VERDANA, FS_BOLD, 18); $graph->title->SetColor("darkblue"); $graph->legend->Pos(0.3, 0.06); // Crear 3D pie plot $p1 = new PiePlot3d($cuenta); $p1->SetTheme("sand"); $p1->SetCenter(0.5); $p1->SetSize(0.5); $p1->SetHeight(20); #Ancho del pastel // Angulo de inclinación $p1->SetAngle(45); // Distancia entre las partes del pastel $p1->Explode($exp); $p1->value->SetFont(FF_ARIAL, FS_NORMAL, 10); $p1->SetLegends($dato); $graph->Add($p1); $gdImgHandler = $graph->Stroke(_IMG_HANDLER); // Guardando imagen como archivo por default es .png $fileName = "assets/img/reportes/reporte.jpg"; $graph->img->Stream($fileName); redirect(base_url('Alumnos/verReportePastel')); }