Código fuente Ya.

Puede ejecutar la o las páginas para probar el concepto inmediatamente.

 

Concepto:Gráfico de barra vertical 3d con la librería GD (PHP)

El concepto trata sobre:php,mysql
Autor:

Retornar

Nombre del archivo:menu.html

Comentarios
El objetivo es la implementación de un gráfico estadístico de barra vertical. Los datos se extraen de una
tabla MySQL.
Nombre del archivo:creartabla.php

Comentarios
Borrado de la tabla usuarios si existe, creación y carga de datos de prueba.
Nombre del archivo:paginagrafico.html

Comentarios
Muestra la imagen que generará el archivo grafico.php (en realidad esta página realmente es una imagen png)
Nombre del archivo:grafico.php

Comentarios
El grafico a representar es la cantidad de usuarios que tienen una edad entre 0 y 18 años, 
entre 18 y 40, y la cantidad con edades mayores a 40.

La clase que contiene el algoritmo para el gráfico de barra se encuentra en el archivo rutinas.php.
Creamos un ojbeto de la clase Barra, pasando como parámetros el ancho y alto del gráfico:
$barra=new Barra(500,300);
Fijamos la profundidad de las barras en píxeles:
$barra->fijarprofundidad(20);
Añadimos los valores para cada barra y la etiqueta a mostrar:
$barra->sumar($cont1,"<18");
$barra->sumar($cont2,"18-40");
$barra->sumar($cont3,">40");
Graficamos las barras:
$barra->graficar();
Nombre del archivo:rutinas.php

Comentarios
El constructor inicializa el tamaño de la imagen a crear:
    public function __construct($ancho,$alto)
    {
    	$this->ancho=$ancho;
        $this->alto=$alto;
	$this->imagen=imageCreate($this->ancho,$this->alto);
y también inicializa el color de las barras y el fondo por defecto:
        $this->vectorcolorfondo[0]=0;
        $this->vectorcolorfondo[1]=0;
        $this->vectorcolorfondo[2]=255;
        $this->colorfondo=ImageColorAllocate($this->imagen,$this->vectorcolorfondo[0],
	                                     $this->vectorcolorfondo[1],$this->vectorcolorfondo[2]);
        ImageFill($this->imagen,0,0,$this->colorfondo);
        $this->vectorcolorbarra[0]=255;
        $this->vectorcolorbarra[1]=255;
        $this->vectorcolorbarra[2]=0;

El método sumar añade los datos de una nueva barra (valor y etiqueta a mostrar):
    public function sumar($valor,$titulo)
    {
    	$indice=count($this->datos);
    	$this->datos[$indice]['valor']=$valor;
        $this->datos[$indice]['titulo']=$titulo;
    }

Tiene dos métodos para cambiar el color de las barras y el fondo:
    public function fijarcolorfondo($rojo,$verde,$azul)
    public function fijarcolorbarra($rojo,$verde,$azul)

El método fundamental es el graficar:
   public function graficar()
donde obtenemos el ancho de la barra (según la cantidad de barras y el ancho de la imagen):
   $anchobarra=($this->ancho-110)/count($this->datos);
Luego dentro de un for graficamos cada barra, calculando la altura:
foreach($this->datos as $reg)
{
   $altura=($reg['valor']/$may)*($this->alto-80);
   imagefilledrectangle($this->imagen,$x1,$y1-$altura,$x1+$anchobarra,$y1,$this->colorbarra);
Dibujamos también las sombras llamando a los métodos privados respectivos:
       $this->graficarsombraizquierda($x1+$anchobarra,$y1-$altura,$y1);
       $this->graficarsombrasuperior($x1,$y1-$altura,$anchobarra);

Retornar



Código Fuente Ya - 2015