Foros del Web » Programando para Internet » PHP »

JpGraph modificar color de las barras de la grafica

Estas en el tema de JpGraph modificar color de las barras de la grafica en el foro de PHP en Foros del Web. Buenos días a todos los foreros!!! Aqui de nuevo consultando!! Estoy haciendo un sistema web en el cual me han pedido graficar unos resultados de ...
  #1 (permalink)  
Antiguo 13/04/2011, 09:31
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 16 años, 2 meses
Puntos: 10
JpGraph modificar color de las barras de la grafica

Buenos días a todos los foreros!!!

Aqui de nuevo consultando!!

Estoy haciendo un sistema web en el cual me han pedido graficar unos resultados de acuerdo a una consulta en mysql a traves de php. Esta parte ya quedo. Ahora lo que necesito, bueno mas bien me piden que el diseño de la grafica (las barras) sean con degrado y de diferentes colores cada barra, pero no he podido hacerlo!!!

La libreria que estoy utilizando es la JpGraph. A qui les muestro la parte del codigo donde genero mi grafica:

Código PHP:
<?php 
// content="text/plain; charset=utf-8"
// Example for use of JpGraph,
require_once ('jpgraph/jpgraph.php');
require_once (
'jpgraph/jpgraph_bar.php');

//Para poner el simbolo del % (porciento) a los valores con dos decimales

function cbFmtPercentage($aVal) {
    return 
sprintf("%.2f%%",$aVal); // Convert to string
}

$datay = array(21,31,41);
$datax = array('opc1','opc2','opc3');

$colores2 = array('navy:1.65','orchid:1.65','palegreen:1.65');
//$colores1 = array('navy:0.9','orchid:0.9','palegreen:0.9');
//$tipos = array('GRAD_LEFT_REFLECTION','GRAD_LEFT_REFLECTION','GRAD_LEFT_REFLECTION');
/*$colores = array('[email protected]','[email protected]','[email protected]');


*/

// Setup the graph.
$graph = new Graph(400,240);
$graph->img->SetMargin(60,20,35,75);
$graph->SetScale("textlin");
$graph->SetMarginColor("lightblue:1.1");
$graph->SetShadow();

// Set up the title for the graph
$graph->title->Set($departamento);
$graph->title->SetMargin(5);
$graph->title->SetFont(FF_VERDANA,FS_BOLD,10);
$graph->title->SetColor("darkred");

// Setup font for axis
$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);

// Show 0 label on Y-axis (default is not to show)
$graph->yscale->ticks->SupressZeroLabel(false);

// Setup X-axis labels
$graph->xaxis->SetTickLabels($datax);
$graph->xaxis->SetLabelAngle(12);//El numero de tamaño de letra del eje X

// Create the bar pot
$bplot = new BarPlot($datay);
$bplot->SetWidth(0.3);//Modifica el ancho de las barras del grafico

/*----------------------------------COLORES DE LAS BARRAS-----------------------------------------------------------------*/
// Setup color for gradient fill style
//$bplot->SetFillGradient('navy:0.9','navy:1.85',GRAD_HOR);//AQUI PONGO LAS BARRAS CON DEGRADADO PERO DE UN SOLO COLOR
$bplot->SetFillColor($colores2);//AQUI PONGO LAS BARRAS DE DIFERENTES COLORES PERO SIN DEGRADADO
/*---------------------------------------------------------------------------------------------------*/
$bplot->value->SetFormatCallback("cbFmtPercentage");//Poner los valores de X con el simbolo del % (porciento)
$bplot->value->Show();
// Set color for the frame of each bar
$bplot->SetColor("white");//Pone el color al margen de las barras de las graficas
$graph->Add($bplot);

// Finally send the graph to the browser
$graph->Stroke();

?>
Mucho agradeceria me pudieran indicar como poder hacer esta modificacion!!!

De antemano mil gracias!!!!
__________________
Solo se... que no se nada!!! 0_o
  #2 (permalink)  
Antiguo 21/01/2015, 15:09
 
Fecha de Ingreso: noviembre-2012
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
Respuesta: JpGraph modificar color de las barras de la grafica

<?php
date_default_timezone_set('America/Bogota');
require_once ('jpgraph/src/jpgraph.php');
require_once ('jpgraph/src/jpgraph_bar.php');

$graph = new Graph(450,350);

$graph->SetScale('textlin',0,100);
$graph->yaxis->scale->ticks->Set(10);// Establecer los intervalos de y

//Ajuste el margen un poco para hacer más espacio para los títulos
$graph->img->SetMargin(40,30,20,40); //(IZQ,DER,ARR,ABJ)

//Configurar el fondo de la grafica defecto Rayas y cebras
$graph->ygrid->Show(true);
$graph->ygrid->SetFill(false);
// Para el fondo para ser degradado, se necesita setfill primero.
//$graph->SetBackgroundGradient('#990000', '#FFFFFF', GRAD_HOR, BGRAD_PLOT);
//$graph->SetBackgroundGradient('white','lightblue',GRAD_HO R,BGRAD_PLOT);

$graph->xaxis->SetTickLabels(array('P1','P2','P3','P4','P5','P6' ,'P7'));
$datay=array(10,50,20,75,10,15,95); // el valor de cada barrra

// Create a bar pot
$bplot = new BarPlot($datay);
$graph->Add($bplot);
//muestra los valores en la grafica
$bplot->value->Show();
$bplot->value->SetFormat("%01d%%");
$bplot->value->SetColor("#575757");
$color='';
// configuracion de las barras
for($i=0;$i<count($datay);$i++)
{
if($datay[$i]>=0 and $datay[$i]<=30)
{
$datay_color[$i]=array("#d9534f","white",GRAD_LEFT_REFLECTION);
}
else if($datay[$i]>30 and $datay[$i]<=60)
{
$datay_color[$i]=array("#ec971f","white",GRAD_LEFT_REFLECTION);
}
else if($datay[$i]>60 and $datay[$i]<=85)
{
$datay_color[$i]=array("#286090","white",GRAD_LEFT_REFLECTION);
}
else if($datay[$i]>85 and $datay[$i]<=100)
{
$datay_color[$i]=array("#449d44","white",GRAD_LEFT_REFLECTION);

}

}

$bplot->SetFillGradient($datay_color);

$bplot->SetColor("white");
//$bplot->SetFillGradient("#989898","white",GRAD_LEFT_REFLE CTION);
$bplot->SetWidth(30);
$graph->title->Set("Bar Gradient(Left reflection)");

// Setup the titles
$graph->title->SetColor('#000000');
$graph->title->Set("Gráfica de avances");
$graph->xaxis->title->SetColor('#000000');
$graph->xaxis->title->Set("# Participantes");
$graph->yaxis->title->SetColor('#000000');
$graph->yaxis->title->Set("Porcentaje");

// la linea siguiente muestro en mi HTML la grafica como una imagen normal
$graph->Stroke();

?>

Etiquetas: barras, color, jpgraph, modificar, graficos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:48.