RSS

Gráficas con Java parte 2

05 Jun

Esta vez vamos a crear una gráfica simple pasando un valor a un servlet directamente en la url.

Primero es necesario descargar la biblioteca para gráficos con java llamada JFreeChart

http://sourceforge.net/projects/jfreechart/files/

Se deben descargar la biblioteca y la documentación.

Crear un directorio “lib” donde deben extraer la biblioteca y el directorio donde se encuentra la documentación.

Agregando la biblioteca en NetBeans …………………………….

Puedes ver como incluir la biblioteca en netbeans aquí

Crear un proyecto web e incluir un servlet ……………………..

Puedes ver como crear un servlet aquí


Creando una gráfica con JFreeChart …………………

Esta vez vamos a pasar directamente los datos de la gráfica por lo que será muy sencillo, creamos
el siguiente método para inicializar los valores y generar la gráfica:

public JFreeChart creaGrafica(String titulo){
        XYSeries series = new XYSeries("Valor que se está graficando");
        series.add(50, 500);
        series.add(20, 700);
        series.add(90, 701);
        series.add(40, 800);
        series.add(50, 1002);
        series.add(68, 1003);
        series.add(79, 2500);
        XYDataset datos= new XYSeriesCollection(series);        JFreeChart chart = ChartFactory.createXYLineChart(titulo,
        "Eje X", "Eje Y", datos,
        PlotOrientation.VERTICAL,
        true,true,true);
        return chart;
    }

Vamos a permitir que el usuario defina también el tamaño de la gráfica, para eso se crea un método para
convertir los parámetros en enteros, de la siguiente forma:

int getParametro(HttpServletRequest request,String nombre, int porDefecto)    {
            String parametro = request.getParameter(nombre);
            if (parametro == null || parametro.equals("")){
                return porDefecto;
            }
            return Integer.parseInt(parametro);
    }

Por último, generamos la gráfica con los datos que da el usuario, de la siguiente manera:

protected void processRequest(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
        res.setContentType("image/jpeg");
        ServletOutputStream salida = res.getOutputStream();
        try{
           
            int ancho = getParametro(req,"ancho",600);
            int alto = getParametro(req,"alto",800);
            String titulo = req.getParameter("titulo");
            JFreeChart grafica = creaGrafica(titulo);
            ChartUtilities.writeChartAsJPEG(salida,grafica,ancho,alto);
        }
        catch(Exception e){
            e.printStackTrace();
        }
        finally{
            salida.close();
        }
    }

Una vez que se realice el deploy de la aplicación, estas son posibles formas de ver la aplicación:

http://localhost:8080/Laboratorio7/GraficaServlet
http://localhost:8080/Laboratorio7/GraficaServlet?titulo=Mi titulo
http://localhost:8080/Laboratorio7/GraficaServlet?titulo=titulo&ancho=500&alto=500


Alternativa para generar gráficas con Google Chart Tools ………….

Puedes revisar algunas de las características de ésta herramienta que permite generar gráficas de manera muy fácil utilizando el API de Google, para saber más visita la siguiente página…

http://code.google.com/apis/chart/image/docs/making_charts.html

.

 
Deja un comentario

Publicado por en 5 junio, 2012 en Código, Java

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: