Esempio n. 1
0
function grafica($fecha_max, $fecha_min, $datos)
{
    $graph = new GanttGraph();
    $graph->title->Set("");
    // Rango de fechas a presentar
    $graph->SetDateRange($fecha_min, $fecha_max);
    // linea de espaciado vertical entre los elementos
    $graph->SetVMarginFactor(2);
    // configuracion de colores
    $graph->SetMarginColor('lightgreen@0.8');
    //  color del fondo
    $graph->SetBox(true, 'yellow:0.6', 2);
    //  contorno del marco interior
    $graph->SetFrame(true, 'darkgreen', 4);
    // contorno  del marco exterior
    $graph->scale->divider->SetColor('yellow:0.6');
    // linea divisora de datos y grafico
    $graph->scale->dividerh->SetColor('red:0.6');
    //liena que divide el tiempo con las barras de la grafica
    // Ponemos la medida de tiempo que queremos usar, por ejemplo años, meses, dias, hors o minutos
    //por ejemplo, si queremos solamente la division por meses y semanas en lugar de tener
    //GANTT_HWEEK | GANTT_HMONTH | GANTT_HYEAR | GANTT_HDAY
    //dejamos
    //GANTT_HWEEK | GANTT_HMONTH
    // para mas opciones de division de tiempo ver comentarios abajo
    $graph->ShowHeaders(GANTT_HWEEK | GANTT_HMONTH | GANTT_HYEAR | GANTT_HDAY);
    $graph->scale->month->grid->SetColor('gray');
    //lineas verticales que dividen los meses
    $graph->scale->month->grid->Show(true);
    $graph->scale->year->grid->SetColor('gray');
    // linea verticales que dividen los años
    $graph->scale->year->grid->Show(true);
    $graph->scale->actinfo->SetColTitles(array('Acción', 'Duracion', 'Inicio', 'Final', 'Porcentaje'), array(30, 100));
    $graph->scale->actinfo->SetBackgroundColor('blue:0.5@0.5');
    //color de fondo de los titulos de la tabla
    $graph->scale->actinfo->SetFont(FF_ARIAL, FS_NORMAL, 12);
    //tipografia
    // division vertical de los datos a la izquierda, posibles valores 'solid', 'dotted', 'dashed'
    $graph->scale->actinfo->vgrid->SetStyle('solid');
    $graph->scale->actinfo->vgrid->SetColor('red');
    // color de las divisiones puestas en el renglon anterior
    // Configuración de los iconos que queremos usar
    //para poner algun icono no definido podemos usarlo de la siguiente manera
    //$icon = new IconImage("imagen.png",0.7);
    //en el ejemplo estoy usando una omagen desde blogspot
    //el numero que es el segundo parametro de IconImage es el porcentaje de la imagen, en este caso esta al 20%
    $erricon = new IconImage("logo-copia.png", 0.2);
    $startconicon = new IconImage(GICON_FOLDEROPEN, 0.6);
    $endconicon = new IconImage(GICON_TEXTIMPORTANT, 0.5);
    //ahora ponemos los datos de la tabla e iniciamos los datos de las barras
    //    $data = array(
    //        //valores del arreglo:
    //        //indice del arreglo, arreglo de datos para la informacion a la izquierda, fecha de inicio de la barra, fecha final de la barra, tipografia, estilo,tamaño tipografia,% de progreso en la barra
    //        array(0,array("Pre-study","17 days","1 Nov '2011","1 Mar '2012")
    //              , "2011-11-01","2012-01-1",FF_ARIAL,FS_NORMAL,8, 0.5),//el 0.5 indica el 50%, que ocuparemos en la linea 74, dando su posicion en el arreglo
    //        array(1,array("Prototype","10 days","26 Oct '2011","16 Nov '2011"),
    //              "2011-10-26","2011-11-01",FF_ARIAL,FS_NORMAL,8, 0.12),
    //        array(2,array("Report","12 days","1 Mar '2012","13 Mar '2012"),
    //              "2012-03-01","2012-03-13",FF_ARIAL,FS_NORMAL,8, 1)
    //    );
    $data = $datos;
    // Crea las barras y las añade a la grafica gantt
    for ($i = 0; $i < count($data); ++$i) {
        $bar = new GanttBar($data[$i][0], $data[$i][1], $data[$i][2], $data[$i][3], '', 10);
        if (count($data[$i]) > 4) {
            $bar->title->SetFont($data[$i][4], $data[$i][5], $data[$i][6]);
        }
        $bar->SetPattern(BAND_RDIAG, "yellow");
        $bar->SetFillColor("gray");
        $bar->progress->Set($data[$i][7]);
        // ocupamos el % de adelanto en la actividad
        $bar->progress->SetPattern(GANTT_SOLID, "darkgreen");
        //$bar->title->SetCSIMTarget(array('#1'.$i,'#2'.$i,'#3'.$i,'#4'.$i,'#5'.$i),array('11'.$i,'22'.$i,'33'.$i));
        $graph->Add($bar);
        //echo "<br>--> ".$data[$i][7];
    }
    // Creamos la imagen y le damos nombre, la imagen se guarda donde estan estos archivos
    $graph->Stroke('imagenprueba.jpg');
}
Esempio n. 2
0
<?php

// content="text/plain; charset=utf-8"
// Gantt example
require_once 'jpgraph/jpgraph.php';
require_once 'jpgraph/jpgraph_gantt.php';
// Basic Gantt graph
$graph = new GanttGraph();
$graph->title->Set("Gantt chart with title columns and icons");
$graph->title->SetFont(FF_ARIAL, FS_BOLD, 12);
$graph->title->SetMargin(10);
// Explicitely set the date range
// (Autoscaling will of course also work)
$graph->SetDateRange('2001-10-06', '2002-4-10');
// 1.5 line spacing to make more room
$graph->SetVMarginFactor(1.5);
// Setup some nonstandard colors
$graph->SetMarginColor('darkgreen@0.95');
$graph->SetBox(true, 'yellow:0.6', 2);
$graph->SetFrame(true, 'darkgreen', 4);
$graph->scale->divider->SetColor('yellow:0.6');
$graph->scale->dividerh->SetColor('yellow:0.6');
// Display month and year scale with the gridlines
$graph->ShowHeaders(GANTT_HMONTH | GANTT_HYEAR);
$graph->scale->month->grid->SetColor('gray');
$graph->scale->month->grid->Show(true);
$graph->scale->year->grid->SetColor('gray');
$graph->scale->year->grid->Show(true);
// For the titles we also add a minimum width of 100 pixels for the Task name column
$graph->scale->actinfo->SetColTitles(array('Note', 'Task', 'Duration', 'Start', 'Finish'), array(30, 100));
$graph->scale->actinfo->SetBackgroundColor('green:0.5@0.5');
Esempio n. 3
0
// match the weekend settings ...
$graph->scale->hour->SetFontColor($styles->val('image.session.header.color', 'black', true));
$graph->scale->hour->SetBackgroundColor($styles->val('image.session.header.bgcolor', 'lightyellow:1.5', true));
$graph->scale->hour->SetFont(constant($styles->val('image.session.font', 'FF_FONT0', true)));
$graph->scale->hour->SetIntervall($styles->val('image.session.interval', 2, true));
$graph->scale->hour->SetStyle(constant($styles->val('image.session.header.hourstyle', 'HOURSTYLE_H24', true)));
/**
$graph->scale->actinfo->SetBackgroundColor('lightyellow:1.5');
$graph->scale->actinfo->SetFont(FF_FONT0);
$graph->scale->actinfo->SetColTitles(array(""));
/**/
$show = (bool) $styles->val('image.session.hgrid.show', true, true);
$graph->hgrid->Show($show);
if ($show) {
    $graph->hgrid->SetRowFillColor($styles->val('image.session.hgrid.color1', 'whitesmoke@0.9', true), $styles->val('image.session.hgrid.color2', 'darkblue@0.9', true));
}
for ($i = 0; $i < count($data); ++$i) {
    $bar = new GanttBar($data[$i][0], $data[$i][1], $data[$i][2], $data[$i][3]);
    $bar->SetPattern(constant($styles->val('image.session.bar.pattern', 'BAND_RDIAG', true)), $styles->val('image.session.bar.patternfill', 'lightblue', true));
    $bar->SetFillColor($styles->val('image.session.bar.fill', 'BAND_SOLID', true));
    $shadow = $styles->val('image.session.bar.shadow', '', true);
    if ($shadow) {
        $bar->SetShadow(true, $shadow);
    }
    $graph->Add($bar);
}
$graph->SetVMarginFactor($styles->val('image.session.bar.vmargin', 0.4, true));
if ($styles->val('image.session.showfooter', 'image.common.footer.show')) {
    stdImgFooter($graph);
}
$graph->Stroke();