List of usage examples for org.jfree.chart ChartUtilities writeChartAsPNG
public static void writeChartAsPNG(OutputStream out, JFreeChart chart, int width, int height) throws IOException
From source file:net.commerce.zocalo.freechart.ChartTest.java
public void testSimpleBarChart() throws IOException { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); String seriesKey = "prices"; dataset.addValue(.2, seriesKey, "apples"); dataset.addValue(.15, seriesKey, "bananas"); dataset.addValue(.18, seriesKey, "cherries"); dataset.addValue(.32, seriesKey, "watermelon"); dataset.addValue(.06, seriesKey, "peaches"); dataset.addValue(.09, seriesKey, "persimmons"); int hSize = 300; int vSize = 150; JFreeChart chart = ChartGenerator.buildBarChart(dataset, PlotOrientation.HORIZONTAL, hSize, vSize); File jpgFile = newEmptyFile(".", "BarChart.jpg"); File pngFile = newEmptyFile(".", "BarChart.png"); assertFalse(jpgFile.exists());/* w w w .ja va 2s .c om*/ assertFalse(pngFile.exists()); OutputStream jpgStream = new FileOutputStream(jpgFile); OutputStream pngStream = new FileOutputStream(pngFile); ChartUtilities.writeChartAsJPEG(jpgStream, chart, hSize, vSize); ChartUtilities.writeChartAsPNG(pngStream, chart, hSize, vSize); assertTrue(jpgFile.exists()); assertTrue(pngFile.exists()); jpgFile.delete(); pngFile.delete(); }
From source file:name.wramner.jmstools.analyzer.DataProvider.java
/** * Get a base64-encoded image for inclusion in an img tag with a chart with number of produced and consumed messages * per minute.// w ww. j av a 2 s . c om * * @return chart as base64 string. */ public String getBase64MessagesPerMinuteImage() { TimeSeries timeSeriesConsumed = new TimeSeries("Consumed"); TimeSeries timeSeriesProduced = new TimeSeries("Produced"); TimeSeries timeSeriesTotal = new TimeSeries("Total"); for (PeriodMetrics m : getMessagesPerMinute()) { Minute minute = new Minute(m.getPeriodStart()); timeSeriesConsumed.add(minute, m.getConsumed()); timeSeriesProduced.add(minute, m.getProduced()); timeSeriesTotal.add(minute, m.getConsumed() + m.getProduced()); } TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection(timeSeriesConsumed); timeSeriesCollection.addSeries(timeSeriesProduced); timeSeriesCollection.addSeries(timeSeriesTotal); ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { JFreeChart chart = ChartFactory.createTimeSeriesChart("Messages per minute", "Time", "Messages", timeSeriesCollection); chart.getPlot().setBackgroundPaint(Color.WHITE); ChartUtilities.writeChartAsPNG(bos, chart, 1024, 500); } catch (IOException e) { throw new UncheckedIOException(e); } return "data:image/png;base64," + Base64.getEncoder().encodeToString(bos.toByteArray()); }
From source file:com.vectorprint.report.jfree.ChartBuilder.java
public void save(OutputStream img, FILETYPE type, int width, int height) throws IOException { switch (type) { case JPEG://from w w w. java 2 s. c om ChartUtilities.writeChartAsJPEG(img, chart, width, height); break; case PNG: ChartUtilities.writeChartAsPNG(img, chart, width, height); break; } }
From source file:gov.nih.nci.rembrandt.web.taglib.KaplanMeierPlotTag.java
public int doStartTag() { ServletRequest request = pageContext.getRequest(); HttpSession session = pageContext.getSession(); Object o = request.getAttribute(beanName); JspWriter out = pageContext.getOut(); ServletResponse response = pageContext.getResponse(); String dataName;//from w w w . j a v a 2s . c o m try { dataName = BeanUtils.getSimpleProperty(o, datasetName); KaplanMeierStoredData cacheData = (KaplanMeierStoredData) presentationTierCache .getSessionGraphingData(session.getId(), dataName); JFreeChart chart = CaIntegratorChartFactory .getKaplanMeierGraph(cacheData.getPlotPointSeriesCollection()); RembrandtImageFileHandler imageHandler = new RembrandtImageFileHandler(session.getId(), "png", 700, 500); //The final complete path to be used by the webapplication String finalPath = imageHandler.getSessionTempFolder(); /** * Create the actual chart, writing it to the session temp folder */ ChartUtilities.writeChartAsPNG(new FileOutputStream(finalPath), chart, 700, 500); /* * This is here to put the thread into a loop while it waits for the * image to be available. It has an unsophisticated timer but at * least it is something to avoid an endless loop. * */ boolean imageReady = false; int timeout = 1000; FileInputStream inputStream = null; while (!imageReady) { timeout--; try { inputStream = new FileInputStream(finalPath); inputStream.available(); imageReady = true; inputStream.close(); } catch (IOException ioe) { imageReady = false; if (inputStream != null) { inputStream.close(); } } if (timeout <= 1) { break; } } out.print(imageHandler.getImageTag()); out.print(createLegend(cacheData)); } catch (IllegalAccessException e1) { logger.error(e1); } catch (InvocationTargetException e1) { logger.error(e1); } catch (NoSuchMethodException e1) { logger.error(e1); } catch (IOException e) { logger.error(e); } catch (Exception e) { logger.error(e); } catch (Throwable t) { logger.error(t); } return EVAL_BODY_INCLUDE; }
From source file:net.brewspberry.front.JFreeGraphServlet.java
/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response)/*from ww w.j av a2 s . com*/ */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set standard HTTP/1.1 no-cache headers. response.setHeader("Cache-Control", "private, no-store, no-cache, must-revalidate"); // Set standard HTTP/1.0 no-cache header. response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); // If the request has either width or height attributes, the chart will // be attribute-sized if (request.getParameter("width") != null) { try { width = Integer.parseInt((String) request.getParameter("width")); } catch (Exception e) { width = DEFAULT_WIDTH; } } else { width = DEFAULT_WIDTH; } if (request.getParameter("height") != null) { try { height = Integer.parseInt((String) request.getParameter("height")); } catch (Exception e) { height = DEFAULT_HEIGHT; } } // else default sizes are applied else { height = DEFAULT_HEIGHT; } JFreeChart chart = null; if (request.getParameter("type") != null) { String type = request.getParameter("type"); List<TemperatureMeasurement> tempList = null; switch (type) { case "etp": Long etapeID = null; if (request.getParameter("eid") != null) { String eid = request.getParameter("eid"); etapeID = Long.parseLong(eid); Etape etape = etapeService.getElementById(etapeID); tempList = tmesService.getTemperatureMeasurementByEtape(etape); logger.fine("Got " + tempList.size() + " temp measurements for step " + etapeID); List<String> probesList = new ArrayList<String>(); probesList = getDistinctProbes(tempList); logger.fine("Got " + probesList.size() + " temp measurements for step " + etapeID); response.setContentType("image/png"); try { chart = generateChartFromTimeSeries( createDataset(parseTemperatureMeasurements(tempList, probesList), false, true), "DS18B20", "Time", "Temperature", true); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } break; case "bra": Long brewID = null; tempList = null; if (request.getParameter("bid") != null) { String bid = request.getParameter("bid"); brewID = Long.parseLong(bid); tempList = brassinService.getElementById(brewID).getBra_temperature_measurement(); logger.fine("Got " + tempList.size() + " temp measurements for brew " + brewID); List<String> probesList = new ArrayList<String>(); probesList = getDistinctProbes(tempList); logger.fine("Got " + probesList.size() + " temp measurements for brew " + brewID); response.setContentType("image/png"); try { chart = generateChartFromTimeSeries( createDataset(parseTemperatureMeasurements(tempList, probesList), false, true), "DS18B20", "Time", "Temperature", true); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } break; } } else { try { chart = generateChartFromTimeSeries( createDataset(parseCSVFile(new File(BCHRECTEMP_FIC)), true, false), "DS18B20", "Time", "Temperature", true); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } response.setContentType("image/png"); OutputStream outputStream = response.getOutputStream(); try { logger.fine("Graph dimensions : " + width + "x" + height); ChartUtilities.writeChartAsPNG(outputStream, chart, width, height); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.activequant.util.charting.Chart.java
/** * Persistencifies this chart to a png file. * //from w w w . j a va 2 s.c o m * created on 07.05.2006 * * @param filename * @param w * @param h * @throws Exception */ public void renderToPng(String filename, int w, int h) throws Exception { FileOutputStream f = new FileOutputStream(filename); ChartUtilities.writeChartAsPNG(f, chart, w, h); }
From source file:com.redhat.rhn.frontend.action.systems.monitoring.ProbeGraphAction.java
private void writeChartToResponse(JFreeChart chartIn, HttpServletResponse resp) throws IOException { resp.setContentType(MIME_TYPE);/* w w w .j a va 2 s . co m*/ try { ChartUtilities.writeChartAsPNG(resp.getOutputStream(), chartIn, DEFAULT_CHART_WIDTH, DEFAULT_CHART_HEIGHT); } catch (IOException e) { log.error("Error writing chart to OutputStream.", e); throw e; } }
From source file:org.lsug.quota.web.internal.portlet.ServerQuotaWebPortlet.java
@Override public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, PortletException { String type = ParamUtil.getString(resourceRequest, "type", "currentSize"); StringBundler sb = new StringBundler(5); JFreeChart jFreeChart = null;//from w w w. j a va2s .c o m if (type.equals("currentSize")) { long classNameId = PortalUtil.getClassNameId(Company.class.getName()); String orderByCol = "quotaUsed"; String orderByType = "desc"; OrderByComparator<Quota> orderByComparator = QuotaUtil.getQuotaOrderByComparator(orderByCol, orderByType); DefaultPieDataset pieDataset = new DefaultPieDataset(); try { List<Quota> listCompanyQuota = _quotaLocalService.getQuotaByClassNameId(classNameId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, orderByComparator); for (Quota quota : listCompanyQuota) { if (quota.isEnabled()) { pieDataset.setValue(_companyLocalService.getCompany(quota.getClassPK()).getWebId(), quota.getQuotaUsed()); } } } catch (Exception e) { LOGGER.error(e); throw new PortletException(e); } ResourceBundle resourceBundle = ResourceBundleUtil.getBundle("content.Language", resourceRequest.getLocale(), getClass()); sb.append(LanguageUtil.get(resourceBundle, "server-current-used-size-diagram-title")); jFreeChart = getCurrentSizeJFreeChart(sb.toString(), pieDataset); } OutputStream outputStream = null; resourceResponse.setContentType(ContentTypes.IMAGE_PNG); try { outputStream = resourceResponse.getPortletOutputStream(); ChartUtilities.writeChartAsPNG(outputStream, jFreeChart, 400, 200); } finally { if (outputStream != null) { outputStream.close(); } } }
From source file:ubic.gemma.analysis.preprocess.batcheffects.ComBat.java
/** * @param os//w w w .jav a 2s. c o m * @param empirical * @param theory */ private void writePlot(OutputStream os, XYSeries empirical, XYSeries theory) { // ChartFactory.setChartTheme( StandardChartTheme.createLegacyTheme() ); XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); xySeriesCollection.addSeries(empirical); xySeriesCollection.addSeries(theory); JFreeChart chart = ChartFactory.createXYLineChart("", "Magnitude", "Density", xySeriesCollection, PlotOrientation.VERTICAL, false, false, false); chart.getXYPlot().setRangeGridlinesVisible(false); chart.getXYPlot().setDomainGridlinesVisible(false); XYItemRenderer renderer = chart.getXYPlot().getRenderer(); renderer.setBasePaint(Color.white); try { int size = 500; ChartUtilities.writeChartAsPNG(os, chart, 500, size); os.close(); } catch (IOException e) { throw new RuntimeException(e); } }
From source file:presentation.webgui.vitroappservlet.StyleCreator.java
private void previewStyleLegend(HttpServletResponse response) throws IOException { // png creation using jfreechart. /*response.setContentType("text/html"); PrintWriter outPrintWriter = response.getWriter(); outPrintWriter.print("<b>Error</b>: no valid mode was specified! ("+this.mode+")"); outPrintWriter.flush();// w w w . jav a2s . c o m outPrintWriter.close(); */ Model3dStylesList myStylesIndex = Model3dStylesList.getModel3dStylesList(); // fill in the SpecialCases vector with valid Model3dStyleSpecialCase objects Vector<Model3dStyleSpecialCase> givSpecialCasesVec = retrieveSpecialCasesVector(); // fill in the SpecialCases vector with valid Model3dStyleSpecialCase objects Vector<Model3dStyleNumericCase> givNumericCasesVec = retrieveNumericCasesVector(); Model3dStylesEntry tmpDummyEntry = new Model3dStylesEntry(null, this.givenGenCapability, this.givenDefaultColor, this.givenDefaultIconfile, this.givenDefaultPrefabfile, givSpecialCasesVec, givNumericCasesVec); response.setContentType("image/png"); OutputStream out = response.getOutputStream(); try { JFreeChart chart = createDatasetAndChart(tmpDummyEntry); int chartHeight = 40; if (chart.getCategoryPlot().getDataset().getColumnKeys().size() > 1) { chartHeight = chart.getCategoryPlot().getDataset().getColumnKeys().size() * 22; } ChartUtilities.writeChartAsPNG(out, chart, 300, chartHeight); } catch (Exception e) { System.err.println(e.toString()); response.setContentType("text/html"); PrintWriter outPrintWriter = response.getWriter(); outPrintWriter.print("<b>Error</b>:" + e.toString()); outPrintWriter.flush(); outPrintWriter.close(); } finally { out.close(); } return; }