Example usage for org.jfree.chart JFreeChart createBufferedImage

List of usage examples for org.jfree.chart JFreeChart createBufferedImage

Introduction

In this page you can find the example usage for org.jfree.chart JFreeChart createBufferedImage.

Prototype

public BufferedImage createBufferedImage(int width, int height) 

Source Link

Document

Creates and returns a buffered image into which the chart has been drawn.

Usage

From source file:org.geoserver.monitor.web.ActivityChartBasePanel.java

BufferedDynamicImageResource queryAndRenderChart(Monitor monitor, Date[] range) {
    Query q = new Query();
    q.properties("startTime").between(range[0], range[1]);

    DataGatherer gatherer = new DataGatherer();
    monitor.query(q, gatherer);/*from w  w  w  . j  a  v  a  2s.c om*/

    HashMap<RegularTimePeriod, Integer> data = gatherer.getData();

    Class timeUnitClass = getTimePeriod(range[0]).getClass();
    TimeSeries series = new TimeSeries("foo", timeUnitClass);
    for (Map.Entry<RegularTimePeriod, Integer> d : data.entrySet()) {
        series.add(new TimeSeriesDataItem(d.getKey(), d.getValue()));
    }

    TimeSeriesCollection dataset = new TimeSeriesCollection(series);

    final JFreeChart chart = createTimeSeriesChart(getChartTitle(range),
            "Time (" + timeUnitClass.getSimpleName() + ")", "Requests", dataset);

    BufferedDynamicImageResource resource = new BufferedDynamicImageResource();
    resource.setImage(chart.createBufferedImage(700, 500));
    return resource;
}

From source file:com.awesheet.models.charts.BarChart.java

@Override
public boolean generateImageData() {
    // Create the dataset.
    DefaultCategoryDataset dataset = createDataset();

    if (dataset == null) {
        return false;
    }/*from w w w  .j  av a  2 s.co m*/

    // Create the chart.
    JFreeChart barChart = ChartFactory.createBarChart(title, nameX, nameY, dataset, PlotOrientation.VERTICAL,
            true, true, false);

    final CategoryPlot plot = barChart.getCategoryPlot();
    ((BarRenderer) plot.getRenderer()).setBarPainter(new StandardBarPainter());

    // Generate the image.
    try {
        imageData = ChartUtilities.encodeAsPNG(barChart.createBufferedImage(720, 480));
    } catch (IOException e) {
        return false;
    }

    return true;
}

From source file:Result3.java

public void createGraphs() {
    XYSeries a_data = new XYSeries("A");
    XYSeries c_data = new XYSeries("C");
    XYSeries g_data = new XYSeries("G");
    XYSeries t_data = new XYSeries("T");
    for (int i = 0; i < a.length; i++) {
        a_data.add(i, a[i]);/* w ww  .  j a v a  2  s  .  c o  m*/
        c_data.add(i, c[i]);
        g_data.add(i, g[i]);
        t_data.add(i, t[i]);
    }

    XYSeriesCollection my_data_series = new XYSeriesCollection();
    my_data_series.addSeries(a_data);
    my_data_series.addSeries(c_data);
    my_data_series.addSeries(g_data);
    my_data_series.addSeries(t_data);

    JFreeChart XYLineChart = ChartFactory.createXYLineChart("Frequency Table", "Position", "No. of Occurences",
            my_data_series, PlotOrientation.VERTICAL, true, true, false);
    bImage1 = (BufferedImage) XYLineChart.createBufferedImage(690, 337);
    ImageIcon imageIcon1 = new ImageIcon(bImage1);
    jLabel1.setIcon(imageIcon1);

}

From source file:com.awesheet.models.charts.LineChart.java

@Override
public boolean generateImageData() {
    // Create the dataset.
    DefaultCategoryDataset dataset = createDataset();

    if (dataset == null) {
        return false;
    }// w w w.j a  v a2 s  . com

    // Create the chart.
    JFreeChart lineChart = ChartFactory.createLineChart(title, nameX, nameY, dataset, PlotOrientation.VERTICAL,
            true, true, false);

    //final CategoryPlot plot = lineChart.getCategoryPlot();
    //((BarRenderer) plot.getRenderer()).setBarPainter(new StandardBarPainter());

    // Generate the image.
    try {
        imageData = ChartUtilities.encodeAsPNG(lineChart.createBufferedImage(720, 480));
    } catch (IOException e) {
        return false;
    }

    return true;
}

From source file:gui.grafica.estadisticas.GUIPanelGrafica.java

public BufferedImage creaImagen() {
    XYSeries series = new XYSeries("Evolucion");
    for (int i = 0; i < listaEjeY.size(); i++) {
        Date date = listaEjeX.get(i);
        date.getTime();/*from   ww  w.j a  v  a  2  s  .co m*/
        series.add(date.getTime(), listaEjeY.get(i));
    }
    //        series.add(4, 23);
    //        series.add(2, 34);
    //        series.add(3, 51);
    //        series.add(4, 67);
    //        series.add(5, 89);
    //        series.add(6, 121);
    //        series.add(7, 137);
    XYDataset juegoDatos = new XYSeriesCollection(series);
    log.info(listaEjeX.toString());
    JFreeChart chart = ChartFactory.createXYLineChart(titulo, leyendaEjeX, leyendaEjeY, juegoDatos,
            PlotOrientation.VERTICAL, false, false, true // Show legend
    );
    log.info("Valor de Width:" + getWidth());
    log.info("Valor de Heigth:" + getHeight());
    BufferedImage image = chart.createBufferedImage(getWidth(), getHeight());
    return image;
}

From source file:com.od.jtimeseries.net.httpd.handler.ChartPngHandler.java

private NanoHttpResponse createImageResponse(Properties params, IdentifiableTimeSeries h) {
    NanoHttpResponse result;//from  w  w  w  . jav  a2  s  .c  om

    MovingWindowXYDataset<IdentifiableTimeSeries> xyDataset = new MovingWindowXYDataset<IdentifiableTimeSeries>();
    xyDataset.addTimeSeries(h.getId(), h);

    JFreeChart chart = ChartFactory.createTimeSeriesChart(h.getId(), "Time", "Value", xyDataset, true, false,
            false);

    int width = Math.min(getIntegerParameter(params, "width", 500), MAX_HORIZONTAL_RESOLUTION);
    int height = Math.min(getIntegerParameter(params, "height", 300), MAX_VERTICAL_RESOLUTION);

    BufferedImage bi = chart.createBufferedImage(width, height);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    try {
        ImageIO.write(bi, "png", bos);
    } catch (IOException e) {
        e.printStackTrace();
    }

    result = new InputStreamResponse(NanoHTTPD.HTTP_OK, "image/png",
            new ByteArrayInputStream(bos.toByteArray()));
    return result;
}

From source file:br.com.OCTur.view.InfograficoController.java

private BufferedImage participacao() {
    DefaultPieDataset dpdDados = new DefaultPieDataset();
    hoteis = new ArrayList<>();
    for (Hotel hotel : new HotelDAO().pegarTodos()) {
        List<Reserva> reservas = new ReservaDAO().pegarPorHotelInicioFim(hotel, inicio, fim);
        double total = 0;
        for (Reserva reserva : reservas) {
            long dias = (reserva.getFim().getTime() - reserva.getInicio().getTime()) / 1000 / 60 / 60 / 24;
            if (dias <= 0) {
                dias = 1;/*from   w  ww  .ja v a 2 s  . co m*/
            }
            total += (reserva.getQuarto().getOrcamento().getPreco() * dias);
        }
        hoteis.add(new EntidadeGrafico<>(hotel, total));

    }
    hoteis.sort((EntidadeGrafico<Hotel> o1,
            EntidadeGrafico<Hotel> o2) -> Double.compare(o1.getValue(), o2.getValue()) * -1);
    for (EntidadeGrafico<Hotel> entidadeGrafico : hoteis.subList(0, hoteis.size() > 4 ? 4 : hoteis.size())) {
        dpdDados.setValue(entidadeGrafico.toString(), entidadeGrafico.getValue());
    }
    if (hoteis.size() > 4) {
        dpdDados.setValue("Outros",
                hoteis.subList(4, hoteis.size()).stream().mapToDouble(EntidadeGrafico::getValue).sum());
    }
    JFreeChart jFreeChart = ChartFactory.createRingChart("", dpdDados, true, false, Locale.ROOT);
    PiePlot piePlot = (PiePlot) jFreeChart.getPlot();
    piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{2}"));
    return jFreeChart.createBufferedImage(175, 252);
}

From source file:com.mgmtp.perfload.perfalyzer.reportpreparation.PlotCreator.java

public void writePlotFile(final File file, final AxisType xAxisType, final AxisType yAxisType,
        final RendererType rendererType, final DisplayData displayData, final ChartDimensions dimensions,
        final DataRange dataRange, boolean showMarkers, final NumberDataSet... dataSets) throws IOException {
    createParentDirs(file);/*from w  w  w  .  j  a  v a  2  s  . c  o m*/
    for (NumberDataSet dataSet : dataSets) {
        dataSet.sortSeries();
    }
    JFreeChart chart = createPlot(xAxisType, yAxisType, rendererType, displayData, dataRange, showMarkers,
            dataSets);
    BufferedImage chartImage = chart.createBufferedImage(dimensions.getWidth(), dimensions.getHeight());
    ImageIO.write(chartImage, "png", file);
}

From source file:com.alibaba.dubbo.monitor.simple.SimpleMonitorService.java

private static void createChart(String key, String service, String method, String date, String[] types,
        Map<String, long[]> data, double[] summary, String path) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm");
    DecimalFormat numberFormat = new DecimalFormat("###,##0.##");
    TimeSeriesCollection xydataset = new TimeSeriesCollection();
    for (int i = 0; i < types.length; i++) {
        String type = types[i];//w w w. j  ava  2 s . c  o  m
        TimeSeries timeseries = new TimeSeries(type);
        for (Map.Entry<String, long[]> entry : data.entrySet()) {
            try {
                timeseries.add(new Minute(dateFormat.parse(date + entry.getKey())), entry.getValue()[i]);
            } catch (ParseException e) {
                logger.error(e.getMessage(), e);
            }
        }
        xydataset.addSeries(timeseries);
    }
    JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(
            "max: " + numberFormat.format(summary[0])
                    + (summary[1] >= 0 ? " min: " + numberFormat.format(summary[1]) : "") + " avg: "
                    + numberFormat.format(summary[2])
                    + (summary[3] >= 0 ? " sum: " + numberFormat.format(summary[3]) : ""),
            toDisplayService(service) + "  " + method + "  " + toDisplayDate(date), key, xydataset, true, true,
            false);
    jfreechart.setBackgroundPaint(Color.WHITE);
    XYPlot xyplot = (XYPlot) jfreechart.getPlot();
    xyplot.setBackgroundPaint(Color.WHITE);
    xyplot.setDomainGridlinePaint(Color.GRAY);
    xyplot.setRangeGridlinePaint(Color.GRAY);
    xyplot.setDomainGridlinesVisible(true);
    xyplot.setRangeGridlinesVisible(true);
    DateAxis dateaxis = (DateAxis) xyplot.getDomainAxis();
    dateaxis.setDateFormatOverride(new SimpleDateFormat("HH:mm"));
    BufferedImage image = jfreechart.createBufferedImage(600, 300);
    try {
        if (logger.isInfoEnabled()) {
            logger.info("write chart: " + path);
        }
        File methodChartFile = new File(path);
        File methodChartDir = methodChartFile.getParentFile();
        if (methodChartDir != null && !methodChartDir.exists()) {
            methodChartDir.mkdirs();
        }
        FileOutputStream output = new FileOutputStream(methodChartFile);
        try {
            ImageIO.write(image, "png", output);
            output.flush();
        } finally {
            output.close();
        }
    } catch (IOException e) {
        logger.warn(e.getMessage(), e);
    }
}

From source file:scalespace.filter.Gaussian_Derivative_.java

@Override
public Image getImage() {

    final XYSeries series = new XYSeries("Data");
    for (double i = -10; i <= 10; i = i + 0.5) {
        Double y = gaussian(i);//from www .  jav  a2  s.  co  m
        series.add(i, y);
    }
    final XYSeriesCollection data = new XYSeriesCollection(series);
    final JFreeChart chart = ChartFactory.createXYLineChart("", "", "", data, PlotOrientation.VERTICAL, false,
            false, false);

    return chart.createBufferedImage(200, 200);
}