Foros del Web » Programación para mayores de 30 ;) » Java »

Problemas con ChartUtilities.writeChartAsJPEG de JFreeChart

Estas en el tema de Problemas con ChartUtilities.writeChartAsJPEG de JFreeChart en el foro de Java en Foros del Web. Hola a toda la comunidad de Foros del Web. Mi pregunta es la siguiente: Como hago para pintar en una pagina JSP una grafica con ...
  #1 (permalink)  
Antiguo 27/06/2008, 09:39
 
Fecha de Ingreso: junio-2008
Ubicación: Cali, Colombia
Mensajes: 74
Antigüedad: 15 años, 10 meses
Puntos: 3
Pregunta Problemas con ChartUtilities.writeChartAsJPEG de JFreeChart

Hola a toda la comunidad de Foros del Web.

Mi pregunta es la siguiente:

Como hago para pintar en una pagina JSP una grafica con JFreeChart.
Pregunto eso porque yo lo hago de la siguiente forma:

Código:
XYSeries series = new XYSeries("Crecimiento XYGrafico");
        series.add(1, 10);
        series.add(2, 20);
        series.add(3, 10);
        series.add(4, 30);
        series.add(5, 40);
        //Add the series to your data set
        XYSeriesCollection dataset = new XYSeriesCollection();
        dataset.addSeries(series);
        //Generate the graph
        //JFreeChart chart = ChartFactory.createXYLineChart(”Crecimiento Ubuntu”, // Title
        JFreeChart chart = ChartFactory.createXYAreaChart("XY Chart", // Title
        "Tiempo", // x-axis Label
        "Usuarios", // y-axis Label
        dataset, // Dataset
        PlotOrientation.VERTICAL, // Plot Orientation
        true, // Show Legend
        true, // Use tooltips
        false // Configure chart to generate URLs?
        );
        try {
            //ChartUtilities.saveChartAsJPEG(new File("/home/jonathan/XYchart.jpg"), chart, 500, 300);
            ChartUtilities.writeChartAsJPEG(response.getOutputStream(), chart, 800, 500);
        } 
        catch (IOException e) {
            System.err.println("Error creando grafico.");
        }
Aclaro que estoy usando como IDE NetBeans 6.0.1, con servidor GlassFish y Framework JSF.

Ahora si, al momento de generar la grafica en la consola me aparce el siguiente error:

Código:
java.nio.charset.MalformedInputException: Input length = 1
javax.faces.FacesException: java.nio.charset.MalformedInputException: Input length = 1
Estoy trabajando en Ubuntu y con Firefox como browser.

De antemano gracias por su colaboracion
  #2 (permalink)  
Antiguo 28/06/2008, 09:29
Avatar de hwongu  
Fecha de Ingreso: junio-2008
Ubicación: Trujillo
Mensajes: 93
Antigüedad: 15 años, 10 meses
Puntos: 5
De acuerdo Respuesta: Problemas con ChartUtilities.writeChartAsJPEG de JFreeChart

Te recomiendo que este codigo lo pongas dentro de un jsp, la ultima setencia q borre se usa para guardar una imagen en formato jpg en un archivo de tu computadora. Lo que hace este codigo es mostar la imagen dentro de tu pagina sin almacernarla en tu computadora

Código PHP:
       XYSeries series = new XYSeries("Crecimiento XYGrafico");
        
series.add(110);
        
series.add(220);
        
series.add(310);
        
series.add(430);
        
series.add(540);
        
//Add the series to your data set
        
XYSeriesCollection dataset = new XYSeriesCollection();
        
dataset.addSeries(series);
        
//Generate the graph
        //JFreeChart chart = ChartFactory.createXYLineChart(”Crecimiento Ubuntu”, // Title
        
JFreeChart chart ChartFactory.createXYAreaChart("XY Chart"// Title
        
"Tiempo"// x-axis Label
        
"Usuarios"// y-axis Label
        
dataset// Dataset
        
PlotOrientation.VERTICAL// Plot Orientation
        
true// Show Legend
        
true// Use tooltips
        
false // Configure chart to generate URLs?
        
);
        
BufferedImage imgPantalla chart.createBufferedImage(700,300);

        
// Prepara el JSP para responder la petición del usuario
        
ServletOutputStream objSalida response.getOutputStream();
        
// Crea un objeto para codificar en JPEG
       
JPEGImageEncoder objCodifica JPEGCodec.createJPEGEncoder(objSalida);
       
// Codifica la imagen en JPEG
      
objCodifica.encode(imgPantalla);
      
objSalida.close(); 

y dentro de tu pagina jsp que quieres mostrar tu imagen solo pones

<img href="<request.getContextPath()+"/paginaTuImagen.jsp">

Espero que te sea de gran ayuda
  #3 (permalink)  
Antiguo 01/07/2008, 08:19
 
Fecha de Ingreso: junio-2008
Ubicación: Cali, Colombia
Mensajes: 74
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Problemas con ChartUtilities.writeChartAsJPEG de JFreeChart

Hola, muchas gracias por reponder a mi pregunta.

Cambie el codigo como vos dijiste y agregue esa linea en la JSP, pero sigue saliendo el mismo error.
  #4 (permalink)  
Antiguo 26/07/2010, 05:10
 
Fecha de Ingreso: febrero-2010
Mensajes: 128
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Problemas con ChartUtilities.writeChartAsJPEG de JFreeChart

Mensaje Repetido

Última edición por Denis127; 26/07/2010 a las 05:39 Razón: REPETIDO
  #5 (permalink)  
Antiguo 26/07/2010, 05:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 128
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Problemas con ChartUtilities.writeChartAsJPEG de JFreeChart

Me parece que tuvieron que encontrarle solución...

pero por si alguien se encuentra con este post al realizar una busqueda, para que esto funcione, es necesario que el tipo MIME de la página sea de tipo imagen.

En el jsp no hay que escribir ninguna etiqueta html, sólamente crear el objeto y redireccionarlo a la request.

Peo tengo una pregunta, a alguien le ha pasado que el gráfico le saliera blanco al mostrarlo en un awt/swing, pero al codificarlo a una imagen JPEG el fondo se conviertiera en rojo?

No tengo muy claro cual es el problema, He probado con distintas librerias para codificar imagenes en JPEG, y el resultado es el mismo. Por lo que estoy pensando que el problema es de JFreeChart.

Muchas Gracias al que me pueda ayudar de antemano.
  #6 (permalink)  
Antiguo 26/07/2010, 09:03
 
Fecha de Ingreso: febrero-2010
Mensajes: 128
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Problemas con ChartUtilities.writeChartAsJPEG de JFreeChart

Tras hacer pruebas y sin saber como ni dónde, he conseguido corregir el problema de que se vea rojo cambiando el tipo de codificación de imagen al formato PNG, en vez del JPEG.
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 02:45.