<?php include "../jpgraph.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); // Create the graph and specify the scale for both Y-axis $graph = new Graph(300, 240, "auto"); $graph->SetScale("textlin"); $graph->SetShadow(); // Adjust the margin $graph->img->SetMargin(40, 40, 20, 70); // Create the two linear plot $lineplot = new LinePlot($ydata); $lineplot->SetStepStyle(); // Adjust the axis color $graph->yaxis->SetColor("blue"); $graph->title->Set("Example 6.2"); $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); // Set the colors for the plots $lineplot->SetColor("blue"); $lineplot->SetWeight(2); // Set the legends for the plots $lineplot->SetLegend("Plot 1"); // Add the plot to the graph $graph->Add($lineplot); // Adjust the legend position
<?php // content="text/plain; charset=utf-8" require_once 'jpgraph/jpgraph.php'; require_once 'jpgraph/jpgraph_line.php'; $datay = array(20, 10, 35, 5, 17, 35, 22); // Setup the graph $graph = new Graph(400, 200); $graph->SetMargin(40, 40, 20, 30); $graph->SetScale("intlin"); $graph->SetBox(); $graph->SetMarginColor('darkgreen@0.8'); // Setup a background gradient image $graph->SetBackgroundGradient('darkred', 'yellow', GRAD_HOR, BGRAD_PLOT); $graph->title->Set('Gradient filled line plot ex2'); $graph->yscale->SetAutoMin(0); // Create the line $p1 = new LinePlot($datay); $p1->SetFillGradient('white', 'darkgreen'); $p1->SetStepStyle(); $graph->Add($p1); // Output line $graph->Stroke(); ?>
$graph->xaxis->SetLabelAngle(90); if ($_GET['unit']) { $graph->yaxis->title->Set($_GET['unit']); } if (!$date_format) { $date_format = 'H:i'; } $graph->xaxis->scale->SetDateFormat($date_format); //$graph->SetTickDensity(TICKD_DENSE); $line = new LinePlot($ydata, $xdata); //$line->SetLegend('Year 2005'); if ($all_positive) { $line->SetFillColor('lightblue@0.5'); } if ($binary_data) { $line->SetStepStyle(); } $graph->Add($line); $graph->SetShadow(); $graph->Stroke(); /* $Test = new pChart($w,$h); if ($_GET['gcolor']=='red') { $Test->setColorPalette(0,220,50,50); } elseif ($_GET['gcolor']=='brown') { $Test->setColorPalette(0,220,140,100); } elseif ($_GET['gcolor']=='blue') { $Test->setColorPalette(0,100,140,220); } elseif ($_GET['gcolor']=='green') { $Test->setColorPalette(0,100,220,140);
/** * 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); } }
$graph3->SetMarginColor(BKG_COLOR); $graph3->SetFrame(true, 'white', 0); $graph3->SetBox(); $graph3->title->Set('Temperature'); $graph3->title->SetColor('black'); $graph3->title->SetFont(FF_ARIAL, FS_BOLD, 14); $graph3->title->SetMargin(5); $graph3->xaxis->HideLabels(); $graph3->xgrid->Show(); $graph3->yaxis->SetLabelAngle(90); $graph3->yaxis->SetColor('black'); $graph3->yaxis->SetFont(FF_ARIAL, FS_NORMAL, 9); $graph3->yaxis->SetLabelMargin(0); $graph3->yaxis->scale->SetAutoMin(-10); $line3 = new LinePlot($data_windtemp, $xdata); $line3->SetStepStyle(); $line3->SetColor('black'); $graph3->Add($line3); //----------------------- // Create a multigraph //---------------------- $mgraph = new MGraph(); $mgraph->SetMargin(2, 2, 2, 2); $mgraph->SetFrame(true, 'darkgray', 2); $mgraph->SetFillColor(BKG_COLOR); $mgraph->Add($graph, 0, 50); $mgraph->Add($graph2, 250, 50); $mgraph->Add($graph3, 460, 50); $mgraph->title->Set('Climate diagram 12 March 2009'); $mgraph->title->SetFont(FF_ARIAL, FS_BOLD, 20); $mgraph->title->SetMargin(8);
} else { $lineplot = new LinePlot($ydata, $xdata); } // echo '<pre>'; // $i = 0; // foreach ($xdata as $date){ // echo $i . ' | ' . $date . ' | ' . date('j-m-Y',$date) . ' | ' . $ydata[$i] . "\n"; // $i++; // } // // // echo '</pre>'; $lineplot->SetColor('blue'); $lineplot->SetFillColor("blue@0.8"); if ($starttime > strtotime('-13 months', $endtime)) { $lineplot->SetStepStyle(true); } $orangeline = new PlotLine(HORIZONTAL, $aantalbedden * 0.8, 'orange', 1); $redline = new PlotLine(HORIZONTAL, $aantalbedden * 0.9, 'red', 1); $maxline = new PlotLine(HORIZONTAL, $aantalbedden, 'black', 1); // Add the plot to the graph $graph->Add($lineplot); $graph->AddLine($orangeline); $graph->AddLine($redline); $graph->AddLine($maxline); if ($starttime < strtotime('-6 months', $endtime)) { // Trend $prec = floor(count($ydata) / 10); //echo $prec . '<br />'; $avg = array(); for ($i = 0; $i < count($ydata); $i++) {
/** * adds new plot to the graph * * @param $obj * @param $data */ public function addData($interpreter) { if (is_null($interpreter->getTupleCount())) { $interpreter->setTupleCount($this->width); } $data = $interpreter->processData(function ($tuple) { $tuple[0] /= 1000; return $tuple; }); if (count($data) > 0) { $xData = $yData = array(); // TODO adjust x-Axis foreach ($data as $reading) { $xData[] = $reading[0]; $yData[] = $reading[1]; } // Create the scatter plot $plot = new \LinePlot($yData, $xData); $plot->setLegend($interpreter->getEntity()->getProperty('title') . ': [' . $interpreter->getEntity()->getDefinition()->getUnit() . ']'); $plot->SetColor($this->colors[$this->count]); $plot->SetStepStyle($interpreter instanceof Interpreter\MeterInterpreter); $axis = $this->getAxisIndex($interpreter->getEntity()); if ($axis >= 0) { $this->graph->AddY($axis, $plot); } else { $this->graph->Add($plot); } $this->count++; } }
$graph2 = new Graph(WIND_WIDTH - 30, WIND_HEIGHT); $graph2->SetScale('datlin'); $graph2->Set90AndMargin(5, 20, 60, 30); $graph2->SetMarginColor(BKG_COLOR); $graph2->SetFrame(true, 'white', 0); $graph2->SetBox(); $graph2->title->Set('Windspeed'); $graph2->title->SetColor('red'); $graph2->title->SetFont(FF_ARIAL, FS_BOLD, 14); $graph2->title->SetMargin(5); $graph2->xaxis->HideLabels(); $graph2->xgrid->Show(); $graph2->yaxis->SetLabelAngle(90); $graph2->yaxis->SetColor('red'); $graph2->yaxis->SetFont(FF_ARIAL, FS_NORMAL, 9); $graph2->yaxis->SetLabelMargin(0); $graph2->yaxis->scale->SetAutoMin(0); $line2 = new LinePlot($data_windspeed, $xdata); $line2->SetStepStyle(); $line2->SetColor('red'); $graph2->Add($line2); //----------------------- // Create a multigraph //---------------------- $mgraph = new MGraph(); $mgraph->SetMargin(2, 2, 2, 2); $mgraph->SetFrame(true, 'darkgray', 2); $mgraph->SetFillColor(BKG_COLOR); $mgraph->Add($graph); $mgraph->Add($graph2, 280, 0); $mgraph->Stroke();
$graph->yaxis->SetColor("blue"); $graph->y2axis->scale->SetGrace(10, 0); $graph->y2axis->SetColor("darkgreen"); $lineCaches = new LinePlot($yDataCaches, $xDate); $lineCaches->SetLegend(tr("graph_statistics_02")); $lineCaches->SetColor("blue"); $lineCaches->SetStyle("solid"); $lineCaches->SetWeight(3); $lineCaches->SetStepStyle(); $graph->Add($lineCaches); $lineFound = new LinePlot($yDataLogs, $xDate); $lineFound->SetLegend(tr("graph_statistics_03")); $lineFound->SetColor("darkgreen"); $lineFound->SetStyle("solid"); $lineFound->SetWeight(2); $lineFound->SetStepStyle(); $graph->AddY2($lineFound); // // Infotexte einfuegen // $txtStat1 = new Text(tr('graph_statistics_04') . strftime('%d-%m-%Y', time())); $txtStat1->SetPos(55, 55); $txtStat1->SetFont(FF_ARIAL, FS_NORMAL, 10); $lineHeight = $txtStat1->GetFontHeight($graph->img); $hiddenCaches = XDb::xSimpleQueryValue("SELECT COUNT(*) FROM `caches` WHERE (`status`=1 OR `status`=2 OR `status`=3)", 0); $txtStat2 = new Text(tr('graph_statistics_05') . str_replace(',', '.', number_format($hiddenCaches))); $txtStat2->SetPos(55, 55 + $lineHeight * 1.5); $txtStat2->SetFont(FF_ARIAL, FS_NORMAL, 8); $txtStat2->SetColor('blue'); $activeCaches = XDb::xSimpleQueryValue("SELECT COUNT(*) FROM `caches` WHERE `status`=1", 0); $txtStat3 = new Text(tr('graph_statistics_06') . str_replace(',', '.', number_format($activeCaches)));
function grafic_queue(&$pDB_ast_cdr, &$pDB_ast, $queue, $dti, $dtf) { global $arrConf; $ancho = "700"; $margenDerecho = "100"; //============================================================================ $objPalo_AST_CDR = new paloSantoExtention($pDB_ast_cdr); /* * VALORES POR GET */ $arrData = array(); $numResults = 0; $arrValue = array(); $arrTimestamp = array(); //============================================================================ include_once "libs/paloSantoQueue.class.php"; $paloQueue = new paloQueue($pDB_ast); $arrResult = strlen($queue) != 0 ? $paloQueue->getQueue($queue) : $paloQueue->getQueue(); //$arrResult //Array ( [0] => Array ( [0] => 2000 [1] => 2000 Recepcion ) // [1] => Array ( [0] => 5000 [1] => 5000 Soporte ) // [2] => Array ( [0] => 7000 [1] => 7000 Ventas ) ) /* * SE CREA UN 2 ARREGLOS DE TAMAÑO 3*X+1 * $arrData PARA LOS DATOS DEL EJE Y * $arrayX PARA EL ARREGLO DE DATOS PARA EL EJE X */ $arrayX = array(); $num = sizeof($arrResult); $i = 0; for ($i = 1; $i <= $num; $i++) { $s = $arrResult[$i - 1]; $s_0 = array(0 => "", 1 => ""); if ($i == 1) { $arrData[0] = $s_0; $arrayX[0] = ""; } $arrData[3 * ($i - 1) + 1] = $s; $arrayX[3 * ($i - 1) + 1] = ""; $arrData[3 * ($i - 1) + 2] = $s; $arrayX[3 * ($i - 1) + 2] = $s[0]; $arrData[3 * ($i - 1) + 3] = $s_0; $arrayX[3 * ($i - 1) + 3] = ""; if ($i == $num) { $arrData[3 * ($i - 1) + 4] = $s_0; $arrayX[3 * ($i - 1) + 4] = ""; } } //====================================================== $graph = new Graph($ancho, 250); $graph->SetMargin(50, $margenDerecho, 30, 40); $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"); // Especifico la escala $graph->SetScale("intlin"); $graph->title->Set(utf8_decode(_tr("Number Calls vs Queues"))); $graph->xaxis->SetLabelFormatCallback('NameQueue'); $graph->xaxis->SetLabelAngle(90); $graph->xaxis->SetColor("#666666", "#444444"); if (is_array($arrData) && count($arrData) > 0) { foreach ($arrData as $k => $arrMuestra) { $arrTimestamp[$k] = $k; /* X */ //$arr = $objPalo_AST_CDR->countQueue( $arrMuestra['id'], $dti, $dtf); $arr = $objPalo_AST_CDR->countQueue($arrMuestra[0], $dti, $dtf); $arrValue[$k] = $arr[0]; /* Y */ } if (count($arrTimestamp) > 0) { $numResults++; $line = new LinePlot($arrValue, $arrTimestamp); $line->SetStepStyle(); $line->SetColor("#00cc00"); $line->setFillColor("#00cc00"); $line->SetLegend("# " . _tr("Calls")); $graph->Add($line); $graph->yaxis->SetColor("#00cc00"); } } //====================================================================================== if ($numResults > 0) { $graph->Stroke(); } else { $graph = new CanvasGraph(500, 140, "auto"); $title = new Text(utf8_decode(_tr("No records found"))); $title->ParagraphAlign('center'); $title->SetFont(FF_FONT2, FS_BOLD); $title->SetMargin(3); $title->SetAlign('center'); $title->Center(0, 500, 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, 499, 139); $graph->Stroke(); } }
function make_historybyteam($teamcode = "") { global $dbh, $rev, $outdir, $m_teams; $results = @mysql_query("SELECT sdate, SUM(translated) AS translated, SUM(total) AS total " . " FROM essential WHERE rev='{$rev}' AND team='{$teamcode}' " . " GROUP BY sdate ORDER BY sdate LIMIT 0,60", $dbh); if (!$results) { send_err("SQL error: historybyrev rev={$rev}; teamcode={$teamcode}"); exit; } $points_x = array(); $points_y = array(); $my_y = -1; while ($row = @mysql_fetch_array($results)) { $points_x[] = pretty_date($row['sdate']); if ($my_y == -1) { $my_y = $row['translated']; } else { if ($my_y == -1) { $my_y = 0; } $points_y[] = $row['translated'] - $my_y; $my_y = $row['translated']; } } if (count($points_y) < 1) { return; } $teamname = $m_teams[$teamcode]; list($graph1, $graph2) = init_graphs(); $lineplot = new LinePlot($points_y); $lineplot->SetColor('blueviolet'); $lineplot->SetStepStyle(); $graph1->xaxis->SetTickLabels($points_x); $graph1->Add($lineplot); $graph1->title->Set("Essential files history for {$teamname} team"); $graph1->Stroke("{$outdir}/{$rev}/{$teamcode}/essential.png"); $graph2->xaxis->SetTickLabels($points_x); $graph2->Add($lineplot); $graph2->title->Set("Essential files history for {$teamname} team"); $graph2->Stroke("{$outdir}/{$rev}/{$teamcode}/essential-big.png"); destroy_graphs(array($graph1, $graph2)); }