List of usage examples for org.jfree.chart JFreeChart createBufferedImage
public BufferedImage createBufferedImage(int width, int height)
From source file:biblioteca.database2.controladores.ControladorEstadisticas.java
public ArrayList<Element> estadisticasUsuariosRegistradosMultiplesTablas(boolean dow, boolean dom, boolean mes, String Year, String[] franja, String desde[], String[] hasta, boolean genero, boolean vinculo, boolean tipo, boolean estado, boolean area, int salida) throws BadElementException, MalformedURLException, IOException { BufferedImage bufferedImage;//from w w w.j av a 2 s.c o m Image image; ResultSet rs; ArrayList<Element> Salida = new ArrayList<Element>(100); ArrayList<Element> images = new ArrayList<Element>(100); DaoEstadisticas controlador = new DaoEstadisticas(); JFreeChart chart; ArrayList<ArrayList<String>> resultadosTabla; ArrayList<String> Array2DtoArrayPlane; PdfPTable tabla = null; int total = 0; if (dow) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorDoW(); float promedio = promedio(tmp, 2); Salida.add(new Paragraph("Resultados para los das de la semana")); Salida.add(new Paragraph("\r\n")); Salida.add( biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3)); Salida.add(new Paragraph("Promedio " + promedio)); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los dias de la Semana")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp), "Usuarios Registrados para los das de la semana"); bufferedImage = chart.createBufferedImage(400, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los dias de la Semana")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp), "Usuarios Registrados para los das de la semana", "Das de la Semana", "Cantidad de usuarios"); bufferedImage = chart.createBufferedImage(700, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(400, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); } if (dom) { rs = controlador.consultarUsuariosRegistradosPorDoM(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Resultados para los das del mes")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add( new Paragraph("* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los dias del mes")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Usuarios Registrados para los das del mes"); bufferedImage = chart.createBufferedImage(500, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 300); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Usuarios Registrados para los das del Mes", "Das del mes", "Cantidad de usuarios"); bufferedImage = chart.createBufferedImage(1000, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 250); image.setAlignment(Image.MIDDLE); Salida.add( new Paragraph("* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los dias del mes")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (mes) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorMes(); Salida.add(new Paragraph("Resultados para los meses")); Salida.add(new Paragraph("\r\n")); float promedio = promedio(tmp, 2); Salida.add( biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3)); Salida.add(new Paragraph("Promedio " + promedio)); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los meses")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp), "Usuarios Registrados para los meses"); bufferedImage = chart.createBufferedImage(500, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(350, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los meses")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp), "Usuarios Registrados para los Meses", "Meses", "Cantidad de usuarios"); bufferedImage = chart.createBufferedImage(1000, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 300); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); } if (Year != null) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorYear(Year); Salida.add(new Paragraph("Resultados para el ao seleccionado")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Ao:" + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (franja != null) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorFranja(franja[0], franja[1]); Salida.add(new Paragraph("Resultados para la franja seleccionada")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Franja:" + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (desde != null && hasta != null) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorIntervalo( desde[0] + "-" + desde[1] + "-" + desde[2], hasta[0] + "-" + hasta[1] + "-" + hasta[2]); Salida.add(new Paragraph("Resultados para el intervalo de tiempo seleccionado")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Intervalo de Tiempo: " + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (genero) { rs = controlador.consultarUsuariosRegistradosPorGenero(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); for (int i = 0; i < resultadosTabla.size(); i++) { if (resultadosTabla.get(i).get(0).equals("F") || resultadosTabla.get(i).get(0).equals("f")) resultadosTabla.get(i).set(0, "Femenino"); if (resultadosTabla.get(i).get(0).equals("M") || resultadosTabla.get(i).get(0).equals("m")) resultadosTabla.get(i).set(0, "Masculino"); if (resultadosTabla.get(i).get(0).equals("N") || resultadosTabla.get(i).get(0).equals("n")) { resultadosTabla.remove(i); } } Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Genero")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Registrados por Genero")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Genero"); bufferedImage = chart.createBufferedImage(450, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Genero", "Genero", "Cantidad de Usuarios"); bufferedImage = chart.createBufferedImage(400, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(200, 200); image.setAlignment(Image.MIDDLE); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Genero")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (vinculo) { rs = controlador.consultarUsuariosRegistradosPorVinculo(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Vinculo")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Registrados por Vinculo")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Vinculo"); bufferedImage = chart.createBufferedImage(500, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Vinculo", "Vinculo", "Cantidad de Usuarios"); bufferedImage = chart.createBufferedImage(500, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(200, 200); image.setAlignment(Image.MIDDLE); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Vinculo")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (tipo) { rs = controlador.consultarUsuariosRegistradosPorTipoUsuario(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); for (int i = 0; i < resultadosTabla.size(); i++) { if (resultadosTabla.get(i).get(0).equals("3")) resultadosTabla.get(i).set(0, "Normal"); else if (resultadosTabla.get(i).get(0).equals("2")) resultadosTabla.get(i).set(0, "Catalogador"); else if (resultadosTabla.get(i).get(0).equals("1")) resultadosTabla.get(i).set(0, "Administrador"); else if (resultadosTabla.get(i).get(0).equals("0")) resultadosTabla.remove(i); } Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Tipo de Usuario")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Tipo de Usuario")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Tipo de Usuario"); bufferedImage = chart.createBufferedImage(450, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Tipo de Usuario", "Tipo de Usuario", "Cantidad de Usuarios"); bufferedImage = chart.createBufferedImage(600, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Genero")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (estado) { rs = controlador.consultarUsuariosRegistradosPorEstado(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); for (int i = 0; i < resultadosTabla.size(); i++) { if (resultadosTabla.get(i).get(0).equals("t") || resultadosTabla.get(i).get(0).equals("T")) resultadosTabla.get(i).set(0, "Activo"); if (resultadosTabla.get(i).get(0).equals("f") || resultadosTabla.get(i).get(0).equals("F")) resultadosTabla.get(i).set(0, "Inactivo"); } Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Estado de Cuenta")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios por Estado de Cuenta")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios por Estado de Cuenta"); bufferedImage = chart.createBufferedImage(450, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Estado de Cuenta", "Estado de Cuenta", "Cantidad de Usuarios"); bufferedImage = chart.createBufferedImage(600, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Estado de Cuenta")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (area) { total = 0; rs = controlador.consultarUsuariosRegistradosPorArea(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Areas con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Areas con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Areas con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(600, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 300); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Areas con ms Documentos Catalogados", "Area_ID", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); } if (!images.isEmpty()) { Salida.add(new Paragraph("Anexos:")); Salida.add(new Paragraph("\r\n")); } for (int i = 0; i < images.size(); i++) { Salida.add(images.get(i)); } return Salida; }
From source file:biblioteca.database2.controladores.ControladorEstadisticas.java
public ArrayList<Element> ConsultarDocumentosCatalogados(boolean dow, boolean dom, boolean month, String year, String[] franja, String[] desde, String[] Hasta, boolean area, boolean autor, boolean doc_tipo, boolean pc, boolean usuario, int salida) throws BadElementException, MalformedURLException, IOException { ArrayList<Element> Salida = new ArrayList<Element>(100); ArrayList<Element> Images = new ArrayList<Element>(100); DaoEstadisticas controlador = new DaoEstadisticas(); ResultSet rs;//from www . j av a2s . c om JFreeChart chart; BufferedImage bufferedImage; Image image; ArrayList<ArrayList<String>> resultadosTabla; ArrayList<String> Array2DtoArrayPlane; PdfPTable tabla = null; int total = 0; if (dow) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorDoW(); float promedio = promedio(tmp, 2); Salida.add(new Paragraph("Resultados de Documentos Catalogados para los das de la semana")); Salida.add(new Paragraph("\r\n")); Salida.add( biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3)); Salida.add(new Paragraph("Promedio " + promedio)); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los dias de la Semana")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp), "Documentos Catalogados para los Das de la Semana"); bufferedImage = chart.createBufferedImage(400, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los Das de la Semana")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp), "Documentos Catalogados para los Das de la Semana", "Das de la Semana", "Cantidad de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(700, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(400, 200); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (dom) { rs = controlador.consultarDocumentosCatalogadosPorDoM(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Resultados de Documentos Catalogados para los das del mes")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add( new Paragraph("* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los dias del mes")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Documentos Catalogados para los das del mes"); bufferedImage = chart.createBufferedImage(500, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Documentos Catalogados para los das del Mes", "Das del mes", "Documentos Catalogados"); bufferedImage = chart.createBufferedImage(1000, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 250); image.setAlignment(Image.MIDDLE); Salida.add( new Paragraph("* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los dias del mes")); Salida.add(new Paragraph("\r\n")); Images.add(image); Images.add(new Paragraph("\r\n")); } if (month) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorMes(); Salida.add(new Paragraph("Resultados de Documentos Catalogados para los meses")); Salida.add(new Paragraph("\r\n")); float promedio = promedio(tmp, 2); Salida.add( biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3)); Salida.add(new Paragraph("Promedio " + promedio)); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los meses")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp), "Documentos Catalogados para los meses"); bufferedImage = chart.createBufferedImage(500, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(350, 200); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los meses")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp), "Documentos Catalogados para los Meses", "Meses", "Documentos Catalogados"); bufferedImage = chart.createBufferedImage(1000, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (year != null) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorYear(year); Salida.add(new Paragraph("Resultados para el ao seleccionado")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Ao: " + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (franja != null) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorFranja(franja[0], franja[1]); Salida.add(new Paragraph("Resultados para la franja seleccionada")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Franja:" + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (desde != null && Hasta != null) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorIntervalo( desde[0] + "-" + desde[1] + "-" + desde[2], Hasta[0] + "-" + Hasta[1] + "-" + Hasta[2]); Salida.add(new Paragraph("Resultados para el intervalo de tiempo seleccionado")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Intervalo de Tiempo: " + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (area) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorArea(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Areas con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Areas con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Areas con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(600, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Areas con ms Documentos Catalogados", "Area_ID", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (autor) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorAutor(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 1, 3); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Autores con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Autores con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Autores con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(600, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Autores con ms Documentos Catalogados", "Nombre Autor", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(1000, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(400, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (doc_tipo) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorTipoMaterial(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Tipos de Material con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Tipos de Material con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Tipos de Material con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(600, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); bufferedImage = chart.createBufferedImage(300, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Tipos de Material con ms Documentos Catalogados", "Tipo de Material", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (pc) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorPalabraClave(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Palabras Clave con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Palabras Clave con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Palabras Clave con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(500, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Palabras Clave con ms Documentos Catalogados", "Palabras Clave", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); Images.add(image); Images.add(new Paragraph("\r\n")); } if (usuario) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorUsuarios(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Usuarios que mas Catalogan Documentos")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Usuarios que mas Catalogan")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Usuarios que mas Catalogan"); bufferedImage = chart.createBufferedImage(500, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Usuarios que mas Catalogan", "Username", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (!Images.isEmpty()) { Salida.add(new Paragraph("Anexos:")); Salida.add(new Paragraph("\r\n")); } for (int i = 0; i < Images.size(); i++) { Salida.add(Images.get(i)); } return Salida; }
From source file:org.pentaho.di.ui.spoon.trans.StepPerformanceSnapShotDialog.java
private void updateCanvas() { Rectangle bounds = canvas.getBounds(); if (bounds.width <= 0 || bounds.height <= 0) { return;/*w w w .java2s. c om*/ } // The list of snapshots : convert to JFreeChart dataset // DefaultCategoryDataset dataset = new DefaultCategoryDataset(); String[] selectedSteps = stepsList.getSelection(); if (selectedSteps == null || selectedSteps.length == 0) { selectedSteps = new String[] { steps[0], }; // first step stepsList.select(0); } int[] dataIndices = dataList.getSelectionIndices(); if (dataIndices == null || dataIndices.length == 0) { dataIndices = new int[] { DATA_CHOICE_WRITTEN, }; dataList.select(0); } boolean multiStep = stepsList.getSelectionCount() > 1; boolean multiData = dataList.getSelectionCount() > 1; boolean calcMoving = !multiStep && !multiData; // A single metric shown for a single step List<Double> movingList = new ArrayList<Double>(); int movingSize = 10; double movingTotal = 0; int totalTimeInSeconds = 0; for (int t = 0; t < selectedSteps.length; t++) { String stepNameCopy = selectedSteps[t]; List<StepPerformanceSnapShot> snapShotList = stepPerformanceSnapShots.get(stepNameCopy); if (snapShotList != null && snapShotList.size() > 1) { totalTimeInSeconds = (int) Math .round(((double) (snapShotList.get(snapShotList.size() - 1).getDate().getTime() - snapShotList.get(0).getDate().getTime())) / 1000); for (int i = 0; i < snapShotList.size(); i++) { StepPerformanceSnapShot snapShot = snapShotList.get(i); if (snapShot.getTimeDifference() != 0) { double factor = (double) 1000 / (double) snapShot.getTimeDifference(); for (int d = 0; d < dataIndices.length; d++) { String dataType; if (multiStep) { dataType = stepNameCopy; } else { dataType = dataChoices[dataIndices[d]]; } String xLabel = Integer.toString(Math.round(i * timeDifference / 1000)); Double metric = null; switch (dataIndices[d]) { case DATA_CHOICE_INPUT: metric = snapShot.getLinesInput() * factor; break; case DATA_CHOICE_OUTPUT: metric = snapShot.getLinesOutput() * factor; break; case DATA_CHOICE_READ: metric = snapShot.getLinesRead() * factor; break; case DATA_CHOICE_WRITTEN: metric = snapShot.getLinesWritten() * factor; break; case DATA_CHOICE_UPDATED: metric = snapShot.getLinesUpdated() * factor; break; case DATA_CHOICE_REJECTED: metric = snapShot.getLinesRejected() * factor; break; case DATA_CHOICE_INPUT_BUFFER_SIZE: metric = (double) snapShot.getInputBufferSize(); break; case DATA_CHOICE_OUTPUT_BUFFER_SIZE: metric = (double) snapShot.getOutputBufferSize(); break; default: break; } if (metric != null) { dataset.addValue(metric, dataType, xLabel); if (calcMoving) { movingTotal += metric; movingList.add(metric); if (movingList.size() > movingSize) { movingTotal -= movingList.get(0); movingList.remove(0); } double movingAverage = movingTotal / movingList.size(); dataset.addValue(movingAverage, dataType + "(Avg)", xLabel); // System.out.println("moving average = "+movingAverage+", movingTotal="+movingTotal+", m"); } } } } } } } String chartTitle = title; if (multiStep) { chartTitle += " (" + dataChoices[dataIndices[0]] + ")"; } else { chartTitle += " (" + selectedSteps[0] + ")"; } final JFreeChart chart = ChartFactory.createLineChart(chartTitle, // chart title BaseMessages.getString(PKG, "StepPerformanceSnapShotDialog.TimeInSeconds.Label", Integer.toString(totalTimeInSeconds), Long.toString(timeDifference)), // domain axis label BaseMessages.getString(PKG, "StepPerformanceSnapShotDialog.RowsPerSecond.Label"), // range axis label dataset, // data PlotOrientation.VERTICAL, // orientation true, // include legend true, // tooltips false); // urls chart.setBackgroundPaint(Color.white); CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.setBackgroundPaint(Color.white); plot.setForegroundAlpha(0.5f); plot.setRangeGridlinesVisible(true); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setTickLabelsVisible(false); // Customize the renderer... // LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer(); renderer.setBaseShapesVisible(true); renderer.setDrawOutlines(true); renderer.setUseFillPaint(true); renderer.setBaseFillPaint(Color.white); renderer.setSeriesStroke(0, new BasicStroke(1.5f)); renderer.setSeriesOutlineStroke(0, new BasicStroke(1.5f)); renderer.setSeriesStroke(1, new BasicStroke(2.5f)); renderer.setSeriesOutlineStroke(1, new BasicStroke(2.5f)); renderer.setSeriesShape(0, new Ellipse2D.Double(-3.0, -3.0, 6.0, 6.0)); BufferedImage bufferedImage = chart.createBufferedImage(bounds.width, bounds.height); ImageData imageData = ImageUtil.convertToSWT(bufferedImage); // dispose previous image... // if (image != null) { image.dispose(); } image = new Image(display, imageData); // Draw the image on the canvas... // canvas.redraw(); }
From source file:org.fhcrc.cpl.viewer.amt.commandline.AmtDatabaseDiagnosticCommandLineModule.java
/** * a great big switch statement/*from ww w .j ava2 s .c om*/ */ public void execute() throws CommandLineModuleExecutionException { try { ApplicationContext.infoMessage(amtDB.toString()); JFreeChart chart = null; switch (mode) { case MODE_COMPARE_OBS_H_CALC_H: chart = compareObservedHAgainstCalculatedH(); break; case MODE_COMPARE_CALC_H_TIME: chart = compareCalculatedHAgainstTime(); break; case MODE_PLOT_T_H_MAPS: chart = showTimeHydMaps(); break; case MODE_HIST_HYDRO_STD_DEV: chart = histogramHydroStdDev(); break; case MODE_PLOT_RUN_HYDRO_DIFFS: chart = showMeanHydroDiffByRun(); break; case MODE_SAVE_ALL_CHARTS: Map<String, JFreeChart> filenameChartMap = new HashMap<String, JFreeChart>(); filenameChartMap.put("obsH_calcH.png", compareObservedHAgainstCalculatedH()); filenameChartMap.put("calcH_time.png", compareCalculatedHAgainstTime()); filenameChartMap.put("hist_peptide_hydro_stddev.png", histogramHydroStdDev()); filenameChartMap.put("mean_diff_by_run.png", showMeanHydroDiffByRun()); filenameChartMap.put("mass_obs_hydro.png", plotMassVersusObsHydroByRun()); filenameChartMap.put("run_h_vs_median.png", plotRunHvsMedian()); filenameChartMap.put("mass_h_all_entries.png", plotMassAndH()); for (String filename : filenameChartMap.keySet()) { chart = filenameChartMap.get(filename); File outChartFile = new File(outDir.getAbsolutePath() + File.separatorChar + filename); ImageIO.write(chart.createBufferedImage(500, 400), "png", outChartFile); ApplicationContext.infoMessage("Wrote image file " + filename); } ApplicationContext.infoMessage("Done."); break; case MODE_PLOT_MASS_VS_OBS_HYDRO: chart = plotMassVersusObsHydroByRun(); break; case MODE_BASIC_INFO: basicInfo(); break; case MODE_HIST_MASSES: chart = histogramMasses(); break; case MODE_PLOT_RUN_H_VS_MEDIAN: chart = plotRunHvsMedian(); break; case MODE_PEPTIDE_DETAILS: peptideDetails(); break; case MODE_PLOT_MASS_H: chart = plotMassAndH(); break; case MODE_HIST_ID_PROBS: chart = histogramIDProbs(); break; } if (chart != null && showCharts) { ChartDialog cd = new ChartDialog(chart); cd.setVisible(true); } } catch (Exception e) { throw new CommandLineModuleExecutionException(e); } }
From source file:com.googlecode.psiprobe.controllers.RenderChartController.java
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { final int SERIES_NUM = 9; // the max number of series ////www. ja va 2s .c o m // get Series Color from the request // int[] seriesColor = new int[SERIES_NUM]; seriesColor[0] = Utils.toIntHex(request.getParameter("s1c"), 0x9bd2fb); seriesColor[1] = Utils.toIntHex(request.getParameter("s2c"), 0xFF0606); for (int i = 2; i < SERIES_NUM; i++) { seriesColor[i] = Utils.toIntHex(request.getParameter("s" + (i + 1) + "c"), -1); } // // get Series Outline Color from the request // int[] seriesOutlineColor = new int[SERIES_NUM]; seriesOutlineColor[0] = Utils.toIntHex(request.getParameter("s1o"), 0x0665aa); seriesOutlineColor[1] = Utils.toIntHex(request.getParameter("s2o"), 0x9d0000); for (int i = 2; i < SERIES_NUM; i++) { seriesOutlineColor[i] = Utils.toIntHex(request.getParameter("s" + (i + 1) + "o"), -1); } // // background color // int backgroundColor = Utils.toIntHex(request.getParameter("bc"), 0xFFFFFF); // // grid color // int gridColor = Utils.toIntHex(request.getParameter("gc"), 0); // // X axis title // String xLabel = ServletRequestUtils.getStringParameter(request, "xl", ""); // // Y axis title // String yLabel = ServletRequestUtils.getStringParameter(request, "yl", ""); // // image width // int width = ServletRequestUtils.getIntParameter(request, "xz", 800); // // image height // int height = ServletRequestUtils.getIntParameter(request, "yz", 400); // // show legend? // boolean showLegend = ServletRequestUtils.getBooleanParameter(request, "l", true); // // Series provider // String provider = ServletRequestUtils.getStringParameter(request, "p", null); // // Chart type // String chartType = ServletRequestUtils.getStringParameter(request, "ct", "area"); DefaultTableXYDataset ds = new DefaultTableXYDataset(); if (provider != null) { Object o = getApplicationContext().getBean(provider); if (o instanceof SeriesProvider) { ((SeriesProvider) o).populate(ds, statsCollection, request); } else { logger.error("SeriesProvider \"" + provider + "\" does not implement " + SeriesProvider.class); } } // // Build series data from the give statistic // JFreeChart chart = null; if ("area".equals(chartType)) { chart = ChartFactory.createXYAreaChart("", xLabel, yLabel, ds, PlotOrientation.VERTICAL, showLegend, false, false); ((XYAreaRenderer) chart.getXYPlot().getRenderer()).setOutline(true); } else if ("stacked".equals(chartType)) { chart = ChartFactory.createStackedXYAreaChart("", xLabel, yLabel, ds, PlotOrientation.VERTICAL, showLegend, false, false); } else if ("line".equals(chartType)) { chart = ChartFactory.createXYLineChart("", xLabel, yLabel, ds, PlotOrientation.VERTICAL, showLegend, false, false); final XYLine3DRenderer renderer = new XYLine3DRenderer(); renderer.setDrawOutlines(true); renderer.setLinesVisible(true); renderer.setShapesVisible(true); renderer.setStroke(new BasicStroke(2)); renderer.setXOffset(1); renderer.setYOffset(1); chart.getXYPlot().setRenderer(renderer); } if (chart != null) { chart.setAntiAlias(true); chart.setBackgroundPaint(new Color(backgroundColor)); for (int i = 0; i < SERIES_NUM; i++) { if (seriesColor[i] >= 0) { chart.getXYPlot().getRenderer().setSeriesPaint(i, new Color(seriesColor[i])); } if (seriesOutlineColor[i] >= 0) { chart.getXYPlot().getRenderer().setSeriesOutlinePaint(i, new Color(seriesOutlineColor[i])); } } chart.getXYPlot().setDomainGridlinePaint(new Color(gridColor)); chart.getXYPlot().setRangeGridlinePaint(new Color(gridColor)); chart.getXYPlot().setDomainAxis(0, new DateAxis()); chart.getXYPlot().setDomainAxis(1, new DateAxis()); chart.getXYPlot().setInsets(new RectangleInsets(-15, 0, 0, 10)); response.setHeader("Content-type", "image/png"); response.getOutputStream().write(ChartUtilities.encodeAsPNG(chart.createBufferedImage(width, height))); } return null; }
From source file:com.gargoylesoftware.htmlunit.general.ElementPropertiesTest.java
private static void saveChart() throws IOException { final JFreeChart chart = ChartFactory.createBarChart( "HtmlUnit implemented properties and methods for " + BROWSER_VERSION_.getNickname(), "Objects", "Count", DATASET_, PlotOrientation.HORIZONTAL, true, true, false); final CategoryPlot plot = (CategoryPlot) chart.getPlot(); final NumberAxis axis = (NumberAxis) plot.getRangeAxis(); axis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); final LayeredBarRenderer renderer = new LayeredBarRenderer(); plot.setRenderer(renderer);/*from w w w . j ava 2s.co m*/ plot.setRowRenderingOrder(SortOrder.DESCENDING); renderer.setSeriesPaint(0, new GradientPaint(0, 0, Color.green, 0, 0, new Color(0, 64, 0))); renderer.setSeriesPaint(1, new GradientPaint(0, 0, Color.blue, 0, 0, new Color(0, 0, 64))); renderer.setSeriesPaint(2, new GradientPaint(0, 0, Color.red, 0, 0, new Color(64, 0, 0))); ImageIO.write(chart.createBufferedImage(1200, 2400), "png", new File(getTargetDirectory() + "/properties-" + BROWSER_VERSION_.getNickname() + ".png")); }
From source file:org.geopublishing.atlasStyler.classification.RasterClassification.java
@Override public BufferedImage createHistogramImage(boolean showMean, boolean showSd, int histogramBins, String label_xachsis) throws InterruptedException, IOException { HistogramDataset hds = new HistogramDataset(); DoubleArrayList valuesAL;//from w w w . j a v a 2s. com valuesAL = getStatistics().elements(); double[] elements = Arrays.copyOf(valuesAL.elements(), getStatistics().size()); hds.addSeries(1, elements, histogramBins); /** Statically label the Y Axis **/ String label_yachsis = ASUtil.R("QuantitiesClassificationGUI.Histogram.YAxisLabel"); JFreeChart chart = org.jfree.chart.ChartFactory.createHistogram(null, label_xachsis, label_yachsis, hds, PlotOrientation.VERTICAL, false, true, true); /*********************************************************************** * Paint the classes into the JFreeChart */ int countLimits = 0; for (Double cLimit : getClassLimits()) { ValueMarker marker = new ValueMarker(cLimit); XYPlot plot = chart.getXYPlot(); marker.setPaint(Color.orange); marker.setLabel(String.valueOf(countLimits)); marker.setLabelAnchor(RectangleAnchor.TOP_LEFT); marker.setLabelTextAnchor(TextAnchor.TOP_RIGHT); plot.addDomainMarker(marker); countLimits++; } /*********************************************************************** * Optionally painting SD and MEAN into the histogram */ try { if (showSd) { ValueMarker marker; marker = new ValueMarker(getSD(), Color.green.brighter(), new BasicStroke(1.5f)); XYPlot plot = chart.getXYPlot(); marker.setLabel(ASUtil.R("QuantitiesClassificationGUI.Histogram.SD.ShortLabel")); marker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT); marker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); plot.addDomainMarker(marker); } if (showMean) { ValueMarker marker; marker = new ValueMarker(getMean(), Color.green.darker(), new BasicStroke(1.5f)); XYPlot plot = chart.getXYPlot(); marker.setLabel(ASUtil.R("QuantitiesClassificationGUI.Histogram.Mean.ShortLabel")); marker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT); marker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); plot.addDomainMarker(marker); } } catch (Exception e) { LOGGER.error("Painting SD and MEAN into the histogram", e); } /*********************************************************************** * Render the Chart */ BufferedImage image = chart.createBufferedImage(400, 200); return image; }
From source file:psiprobe.controllers.RenderChartController.java
@Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { final int seriesMaxCount = 9; // the max number of series // get Series Color from the request int[] seriesColor = new int[seriesMaxCount]; seriesColor[0] = Utils.toIntHex(request.getParameter("s1c"), 0x9bd2fb); seriesColor[1] = Utils.toIntHex(request.getParameter("s2c"), 0xFF0606); for (int i = 2; i < seriesMaxCount; i++) { seriesColor[i] = Utils.toIntHex(request.getParameter("s" + (i + 1) + "c"), -1); }//from w w w.j a va 2 s. c o m // get Series Outline Color from the request int[] seriesOutlineColor = new int[seriesMaxCount]; seriesOutlineColor[0] = Utils.toIntHex(request.getParameter("s1o"), 0x0665aa); seriesOutlineColor[1] = Utils.toIntHex(request.getParameter("s2o"), 0x9d0000); for (int i = 2; i < seriesMaxCount; i++) { seriesOutlineColor[i] = Utils.toIntHex(request.getParameter("s" + (i + 1) + "o"), -1); } // background color int backgroundColor = Utils.toIntHex(request.getParameter("bc"), 0xFFFFFF); // grid color int gridColor = Utils.toIntHex(request.getParameter("gc"), 0); // X axis title String labelX = ServletRequestUtils.getStringParameter(request, "xl", ""); // Y axis title String labelY = ServletRequestUtils.getStringParameter(request, "yl", ""); // image width int width = ServletRequestUtils.getIntParameter(request, "xz", 800); // image height int height = ServletRequestUtils.getIntParameter(request, "yz", 400); // show legend? boolean showLegend = ServletRequestUtils.getBooleanParameter(request, "l", true); // Series provider String provider = ServletRequestUtils.getStringParameter(request, "p", null); // Chart type String chartType = ServletRequestUtils.getStringParameter(request, "ct", "area"); DefaultTableXYDataset ds = new DefaultTableXYDataset(); if (provider != null) { Object series = getApplicationContext().getBean(provider); if (series instanceof SeriesProvider) { ((SeriesProvider) series).populate(ds, statsCollection, request); } else { logger.error("SeriesProvider '{}' does not implement '{}'", provider, SeriesProvider.class); } } // Build series data from the give statistic JFreeChart chart = null; if ("area".equals(chartType)) { chart = ChartFactory.createXYAreaChart("", labelX, labelY, ds, PlotOrientation.VERTICAL, showLegend, false, false); ((XYAreaRenderer) chart.getXYPlot().getRenderer()).setOutline(true); } else if ("stacked".equals(chartType)) { chart = ChartFactory.createStackedXYAreaChart("", labelX, labelY, ds, PlotOrientation.VERTICAL, showLegend, false, false); } else if ("line".equals(chartType)) { chart = ChartFactory.createXYLineChart("", labelX, labelY, ds, PlotOrientation.VERTICAL, showLegend, false, false); final XYLine3DRenderer renderer = new XYLine3DRenderer(); renderer.setDrawOutlines(true); for (int i = 0; i < seriesMaxCount; i++) { renderer.setSeriesLinesVisible(i, true); renderer.setSeriesShapesVisible(i, true); renderer.setSeriesStroke(i, new BasicStroke(2)); } renderer.setXOffset(1); renderer.setYOffset(1); chart.getXYPlot().setRenderer(renderer); } if (chart != null) { chart.setAntiAlias(true); chart.setBackgroundPaint(new Color(backgroundColor)); for (int i = 0; i < seriesMaxCount; i++) { if (seriesColor[i] >= 0) { chart.getXYPlot().getRenderer().setSeriesPaint(i, new Color(seriesColor[i])); } if (seriesOutlineColor[i] >= 0) { chart.getXYPlot().getRenderer().setSeriesOutlinePaint(i, new Color(seriesOutlineColor[i])); } } chart.getXYPlot().setDomainGridlinePaint(new Color(gridColor)); chart.getXYPlot().setRangeGridlinePaint(new Color(gridColor)); chart.getXYPlot().setDomainAxis(0, new DateAxis()); chart.getXYPlot().setDomainAxis(1, new DateAxis()); chart.getXYPlot().setInsets(new RectangleInsets(-15, 0, 0, 10)); response.setHeader("Content-type", "image/png"); response.getOutputStream().write(ChartUtilities.encodeAsPNG(chart.createBufferedImage(width, height))); } return null; }
From source file:org.sakaiproject.sitestats.impl.ServerWideReportManagerImpl.java
private byte[] generateBoxAndWhiskerChart(BoxAndWhiskerCategoryDataset dataset, int width, int height) { JFreeChart chart = ChartFactory.createBoxAndWhiskerChart(null, null, null, dataset, false); // set background chart.setBackgroundPaint(parseColor(statsManager.getChartBackgroundColor())); // set chart border chart.setPadding(new RectangleInsets(10, 5, 5, 5)); chart.setBorderVisible(true);//from w w w .j av a 2s . c o m chart.setBorderPaint(parseColor("#cccccc")); // set anti alias chart.setAntiAlias(true); CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.setDomainGridlinePaint(Color.white); plot.setDomainGridlinesVisible(true); plot.setRangeGridlinePaint(Color.white); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); CategoryAxis domainAxis = (CategoryAxis) plot.getDomainAxis(); domainAxis.setLowerMargin(0.0); domainAxis.setUpperMargin(0.0); BufferedImage img = chart.createBufferedImage(width, height); final ByteArrayOutputStream out = new ByteArrayOutputStream(); try { ImageIO.write(img, "png", out); } catch (IOException e) { log.warn("Error occurred while generating SiteStats chart image data", e); } return out.toByteArray(); }
From source file:csds60analyzer.csds60analyzerGUI.java
public BufferedImage creaImagen() { BufferedImage imagen = null;/*from w ww.j a va 2s . c om*/ try { SAXBuilder builder = new SAXBuilder(false); Document doc = null; TimeSeriesCollection datos = new TimeSeriesCollection(); if (fichero != null) { doc = builder.build(fichero); Element raiz = doc.getRootElement(); List<Element> dias = raiz.getChildren("dia"); Iterator<Element> diasIT = dias.iterator(); TimeSeries desayunoAntes = new TimeSeries("Desayuno antes"); TimeSeries desayunoDespues = new TimeSeries("Desayuno despus"); TimeSeries almuerzoAntes = new TimeSeries("Almuerzo antes"); TimeSeries almuerzoDespues = new TimeSeries("Almuerzo despus"); TimeSeries cenaAntes = new TimeSeries("Cena antes"); TimeSeries cenaDespues = new TimeSeries("Cena despus"); pdesayuno = 0; pdesant = 0; pdesdes = 0; palmuerzo = 0; palmant = 0; palmdes = 0; pcena = 0; pcenant = 0; pcendes = 0; contdesant = 0; contdesdes = 0; contalmant = 0; contalmdes = 0; contcenant = 0; contcendes = 0; while (diasIT.hasNext()) { Element diaActual = diasIT.next(); Integer fechaActual = Integer.parseInt(diaActual.getChildText("fecha").substring(0, 10)); Calendar fad = GregorianCalendar.getInstance(); fad.setTimeInMillis(fechaActual.longValue() * 1000); int dia = fad.get(Calendar.DAY_OF_MONTH); int mes = fad.get(Calendar.MONTH) + 1; int ano = fad.get(Calendar.YEAR); if (diaActual.getChildren().toString().contains("desayunoantes")) { int desayunoAntesActual = Integer.parseInt(diaActual.getChildText("desayunoantes")); desayunoAntes.add(new Day(dia, mes, ano), desayunoAntesActual); pdesant = pdesant + desayunoAntesActual; contdesant++; } if (diaActual.getChildren().toString().contains("desayunodespues")) { int desayunoDespuesActual = Integer.parseInt(diaActual.getChildText("desayunodespues")); desayunoDespues.add(new Day(dia, mes, ano), desayunoDespuesActual); pdesdes = pdesdes + desayunoDespuesActual; contdesdes++; } if (diaActual.getChildren().toString().contains("almuerzoantes")) { int almuerzoAntesActual = Integer.parseInt(diaActual.getChildText("almuerzoantes")); almuerzoAntes.add(new Day(dia, mes, ano), almuerzoAntesActual); palmant = palmant + almuerzoAntesActual; contalmant++; } if (diaActual.getChildren().toString().contains("almuerzodespues")) { int almuerzoDespuesActual = Integer.parseInt(diaActual.getChildText("almuerzodespues")); almuerzoDespues.add(new Day(dia, mes, ano), almuerzoDespuesActual); palmdes = palmdes + almuerzoDespuesActual; contalmdes++; } if (diaActual.getChildren().toString().contains("cenaantes")) { int cenaAntesActual = Integer.parseInt(diaActual.getChildText("cenaantes")); cenaAntes.add(new Day(dia, mes, ano), cenaAntesActual); pcenant = pcenant + cenaAntesActual; contcenant++; } if (diaActual.getChildren().toString().contains("cenadespues")) { int cenaDespuesActual = Integer.parseInt(diaActual.getChildText("cenadespues")); cenaDespues.add(new Day(dia, mes, ano), cenaDespuesActual); pcendes = pcendes + cenaDespuesActual; contcendes++; } } //controlar la division por cero if ((contdesant + contdesdes) > 0) pdesayuno = (pdesant + pdesdes) / (contdesant + contdesdes); if (contdesant > 0) pdesant = pdesant / contdesant; if (contdesdes > 0) pdesdes = pdesdes / contdesdes; if ((contalmant + contalmdes) > 0) palmuerzo = (palmant + palmdes) / (contalmant + contalmdes); if (contalmant > 0) palmant = palmant / contalmant; if (contalmdes > 0) palmdes = palmdes / contalmdes; if ((contcenant + contcendes) > 0) pcena = (pcenant + pcendes) / (contcenant + contcendes); if (contcenant > 0) pcenant = pcenant / contcenant; if (contcendes > 0) pcendes = pcendes / contcendes; datos.addSeries(desayunoAntes); datos.addSeries(desayunoDespues); datos.addSeries(almuerzoAntes); datos.addSeries(almuerzoDespues); datos.addSeries(cenaAntes); datos.addSeries(cenaDespues); } JFreeChart graficaJfree = ChartFactory.createTimeSeriesChart("Anlisis", " ", "Glucosa (mg)", datos, true, true, false); XYPlot plot = (XYPlot) graficaJfree.getPlot(); plot.setBackgroundPaint(Color.getHSBColor(0f, 0f, .88f)); plot.setDomainGridlinePaint(Color.getHSBColor(0f, 0f, .35f)); plot.setDomainTickBandPaint(Color.getHSBColor(0f, 0f, .93f)); plot.setOutlinePaint(Color.getHSBColor(0f, 0f, 0.35f)); plot.setRangeGridlinePaint(Color.getHSBColor(0f, 0f, 0.35f)); XYLineAndShapeRenderer plot2 = (XYLineAndShapeRenderer) plot.getRenderer(); if (!CBdesayunoantes.getState()) plot2.setSeriesLinesVisible(0, false); plot2.setSeriesPaint(0, Color.getHSBColor(.3f, 1f, .5f)); //plot2.setSeriesStroke(0,new BasicStroke(2.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND,1.0f)); if (!CBdesayunodespues.getState()) plot2.setSeriesLinesVisible(1, false); plot2.setSeriesPaint(1, Color.getHSBColor(.2f, 1f, .9f)); if (!CBalmuerzoantes.getState()) plot2.setSeriesLinesVisible(2, false); plot2.setSeriesPaint(2, Color.getHSBColor(.0f, 1f, .6f)); if (!CBalmuerzodespues.getState()) plot2.setSeriesLinesVisible(3, false); plot2.setSeriesPaint(3, Color.getHSBColor(.0f, 1f, .9f)); if (!CBcenaantes.getState()) plot2.setSeriesLinesVisible(4, false); plot2.setSeriesPaint(4, Color.getHSBColor(.6f, 1f, .4f)); if (!CBcenadespues.getState()) plot2.setSeriesLinesVisible(5, false); plot2.setSeriesPaint(5, Color.getHSBColor(.6f, 1f, 1f)); imagen = graficaJfree.createBufferedImage(800, 600); } catch (Exception e) { e.printStackTrace(); } return imagen; }