Gráficas en php con jpgraph

Para crear gráficas en php no he encontrado mejor herramienta que jpgraph. Es gratuito si no se usa comercialmente y su uso es muy sencillo.

Tiene muchos tipos de gráficas para representar datos y se instala fácilmente en cualquier servidor: Copiando la carpeta src en el servidor web, renombrándola a jpgraph y luego simplemente enlanzando dentro de nuestro script php las librerías.

Así por ejemplo podemos crear un gráfico simple con unos datos sobre la renta per cápita de distintos países:

Para generar este gráfico hay que seguir estos pasos:

Incluir las librerias (la ruta dependerá de donde las hayamos copiado):


include ("../../jpgraph/jpgraph.php");
include ("../../jpgraph/jpgraph_bar.php");

Creamos dos arrays con los datos que se van a representar (eje x e y):


$datax = array("Alemania", "España", "Francia", "Italia", "Reino Unido");
$datay = array(43267, 22368, 37644, 32949, 39762);

Creamos el objeto del gráfico de un tamaño de 500px * 200px y establecemos que el eje x es texto y el eje y es numérico:


$graph = new Graph(500,200,"auto");
$graph->SetScale("textlin");

Establecemos los márgenes del gráfico y le añadimos una sombra por detrás:


$graph->img->SetMargin(50,100,20,40);
$graph->SetShadow();

Creamos un objeto de gráfica de barras, decimos que su color sea naranja, que se muestre la leyenda y que añada esa gráfica al objeto general.


$barra = new BarPlot($datay);
$barra->SetFillColor("orange");
$barra->SetLegend("Euros");
$graph->Add($barra);

Le añadimos un título al gráfico y otro a uno de los ejes, poniendo ambos en negrita:


$graph->title->Set("Renta per cápita");
$graph->xaxis->title->Set("Países");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

Añadimos el texto del eje x y finalmente lo mostramos:


$graph->xaxis->SetTickLabels($datax);
$graph->Stroke();

15 comentarios en “Gráficas en php con jpgraph

  1. uriel yepez

    tengo dudas sobre el jpgraph, necesito hacer unas graficas ya baje los archivos ya los descomprimi y hay varios archivos incluyendo ejemplos y manual completo, pero no se si halla algun problema, tengo miedo de que se me caiga el servidor o que genere errores en otros lados, mi pregunta es la siguiente: el jpgraph es completamente seguro, esto en cuanto a la informacion y claro el web, en caso de que lo sea solo tengo que colocar la carpeta donde tengo mis php.

    gracias

    Responder
  2. admin Autor

    En principio no hay ningún problema, ya que se trata de una librería php que a su vez hace uso de otra librería gráfica llamada GD que está instalada en la mayoría de los servidores web con php y es muy estable.

    Y si solo se trata de colocarlo en la carpeta donde tienes tus php.

    Responder
  3. Pingback: SISTEMAS O.R.P » Blog Archive » Gráficas en flash

  4. daniel

    hola

    quisiera saber como pouedo guardar la imagen, ya la genero, pero me gustaria guardarla temporalemte para poder guardar el gráfico en un archivo pdf.

    me explico, le muestro la consualta al usuario, pero l doy la opción de que pueda guardarlo en una archivo pdf, como puedo hacerlo, utilizo la libreria FPDF pero ella me pide que ya exista la imagen en el disco duro, por eso no la puedo pasar al archico pdf.

    gracias att Daniel

    Responder
  5. null

    que no se trata de crear gráficas con datos que le metamos se trata de crear gráficas con resultados de consulta, vaya mierda de tutorial

    Responder
  6. Pingback: Gráficas en php con jpgraph

  7. Josue Coreas

    Hola quisiera saber como puedo hacer para que a la misma vez que aparezca el grafico pueda salir alguna tabla hecha siempre en el mismo archivo php

    Responder
  8. Carlos

    Que tal buenas tardes, quiero saber si es posible si las etiquetas de $datosx pueden estar en forma vertical, por decir, en tu ejemplo: la eitqueta «Alemania» si es posible ponerla así:
    A
    l
    e
    m
    a
    n
    i
    a

    De antemano agradezco la atención

    Responder
  9. Pingback: Gráficas en php con jpgraph

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.