Example usage for org.jfree.chart ChartUtilities saveChartAsJPEG

List of usage examples for org.jfree.chart ChartUtilities saveChartAsJPEG

Introduction

In this page you can find the example usage for org.jfree.chart ChartUtilities saveChartAsJPEG.

Prototype

public static void saveChartAsJPEG(File file, JFreeChart chart, int width, int height) throws IOException 

Source Link

Document

Saves a chart to a file in JPEG format.

Usage

From source file:dla_franctal.LineChart.java

public LineChart(final String title, Map<Integer, Integer> snowMap, Map<Integer, Integer> randMap,
        Map<Integer, Integer> balisticMap, Map<Integer, Integer> spiralMap) {

    super(title);

    final XYDataset dataset = createSimulationGraphs(snowMap, randMap, balisticMap, spiralMap);
    final JFreeChart chart = createChart(dataset, "Particles", "Iterations");
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(650, 350));
    setContentPane(chartPanel);/*from   ww  w  .  j  ava2 s  .c  o  m*/
    try {
        ChartUtilities.saveChartAsJPEG(new File("./" + title + ".jpeg"), chart, 650, 350);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

From source file:it.marcoberri.mbmeteo.action.chart.GetLastRDial.java

/**
 * Processes requests for both HTTP//from  w  w w. j  a  va2s.  c  om
 * <code>GET</code> and
 * <code>POST</code> methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    log.debug("start : " + this.getClass().getName());

    final HashMap<String, String> params = getParams(request.getParameterMap());
    final Integer dimy = Default.toInteger(params.get("dimy"), 600);
    final Integer dimx = Default.toInteger(params.get("dimx"), 800);

    Meteolog meteolog = ds.find(Meteolog.class).order("-time").limit(1).get();

    DefaultValueDataset dataset = new DefaultValueDataset(meteolog.getDayRainfall());

    // get data for diagrams
    DialPlot plot = new DialPlot();
    plot.setView(0.0, 0.0, 1.0, 1.0);
    plot.setDataset(0, dataset);

    GradientPaint gp = new GradientPaint(new Point(), new Color(255, 255, 255), new Point(),
            new Color(170, 170, 220));

    DialBackground db = new DialBackground(gp);

    db.setGradientPaintTransformer(
            new StandardGradientPaintTransformer(GradientPaintTransformType.CENTER_HORIZONTAL));
    plot.setBackground(db);

    StandardDialScale scale = new StandardDialScale();
    scale.setLowerBound(0);
    scale.setUpperBound(50);
    scale.setTickLabelOffset(0.14);
    scale.setTickLabelFont(new Font("Dialog", Font.PLAIN, 10));
    plot.addScale(0, scale);

    DialPointer needle = new DialPointer.Pointer(0);

    plot.addLayer(needle);

    JFreeChart chart1 = new JFreeChart(plot);
    chart1.setTitle("Daily Rain mm");

    final File f = File.createTempFile("mbmeteo", ".jpg");
    ChartUtilities.saveChartAsJPEG(f, chart1, dimx, dimy);

    response.setContentType("image/jpeg");
    response.setHeader("Content-Length", "" + f.length());
    response.setHeader("Content-Disposition", "inline; filename=\"" + f.getName() + "\"");
    final OutputStream out = response.getOutputStream();
    final FileInputStream in = new FileInputStream(f.toString());
    final int size = in.available();
    final byte[] content = new byte[size];
    in.read(content);
    out.write(content);
    in.close();
    out.close();
}

From source file:org.apache.phoenix.pherf.result.impl.ImageResultHandler.java

@Override
public synchronized void write(Result result) throws Exception {
    TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection();
    int rowCount = 0;
    int maxLegendCount = 20;
    int chartDimension = 1100;

    ResultValue<DataModelResult> resultValue = result.getResultValues().get(0);
    DataModelResult dataModelResult = resultValue.getResultValue();

    for (ScenarioResult scenarioResult : dataModelResult.getScenarioResult()) {
        for (QuerySetResult querySetResult : scenarioResult.getQuerySetResult()) {
            for (QueryResult queryResult : querySetResult.getQueryResults()) {
                for (ThreadTime tt : queryResult.getThreadTimes()) {
                    TimeSeries timeSeries = new TimeSeries(
                            queryResult.getStatement() + " :: " + tt.getThreadName());
                    rowCount++;//  w ww .jav a  2 s  .com
                    synchronized (tt.getRunTimesInMs()) {
                        for (RunTime rt : tt.getRunTimesInMs()) {
                            if (rt.getStartTime() != null) {
                                timeSeries.add(new Millisecond(rt.getStartTime()), rt.getElapsedDurationInMs());
                            }
                        }
                    }
                    timeSeriesCollection.addSeries(timeSeries);
                }
            }
        }
    }
    boolean legend = rowCount > maxLegendCount ? false : true;
    JFreeChart chart = ChartFactory.createTimeSeriesChart(dataModelResult.getName(), "Time", "Query Time (ms)",
            timeSeriesCollection, legend, true, false);
    StandardXYItemRenderer renderer = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES_AND_LINES);
    chart.getXYPlot().setRenderer(renderer);
    chart.getXYPlot().setBackgroundPaint(Color.WHITE);
    chart.getXYPlot().setRangeGridlinePaint(Color.BLACK);
    for (int i = 0; i < rowCount; i++) {
        chart.getXYPlot().getRenderer().setSeriesStroke(i, new BasicStroke(3f));
    }
    try {
        ChartUtilities.saveChartAsJPEG(new File(resultFileName), chart, chartDimension, chartDimension);
    } catch (IOException e) {
        e.printStackTrace();
    }

}

From source file:it.marcoberri.mbmeteo.action.chart.GetLastTDial.java

/**
 * Processes requests for both HTTP//from  ww  w .j  a  v  a 2  s . c om
 * <code>GET</code> and
 * <code>POST</code> methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    log.debug("start : " + this.getClass().getName());

    final HashMap<String, String> params = getParams(request.getParameterMap());
    final Integer dimy = Default.toInteger(params.get("dimy"), 600);
    final Integer dimx = Default.toInteger(params.get("dimx"), 800);

    Meteolog meteolog = ds.find(Meteolog.class).order("-time").limit(1).get();

    DefaultValueDataset dataset = new DefaultValueDataset(meteolog.getOutdoorTemperature());

    // get data for diagrams
    DialPlot plot = new DialPlot();
    plot.setView(0.0, 0.0, 1.0, 1.0);
    plot.setDataset(0, dataset);

    GradientPaint gp = new GradientPaint(new Point(), new Color(255, 255, 255), new Point(),
            new Color(170, 170, 220));

    DialBackground db = new DialBackground(gp);

    db.setGradientPaintTransformer(
            new StandardGradientPaintTransformer(GradientPaintTransformType.CENTER_HORIZONTAL));
    plot.setBackground(db);

    StandardDialScale scale = new StandardDialScale();
    scale.setLowerBound(-20);
    scale.setUpperBound(40);
    scale.setTickLabelOffset(0.14);
    scale.setTickLabelFont(new Font("Dialog", Font.PLAIN, 10));
    plot.addScale(0, scale);

    DialPointer needle = new DialPointer.Pointer(0);

    plot.addLayer(needle);

    JFreeChart chart1 = new JFreeChart(plot);
    chart1.setTitle("Temperature C");

    final File f = File.createTempFile("mbmeteo", ".jpg");
    ChartUtilities.saveChartAsJPEG(f, chart1, dimx, dimy);

    response.setContentType("image/jpeg");
    response.setHeader("Content-Length", "" + f.length());
    response.setHeader("Content-Disposition", "inline; filename=\"" + f.getName() + "\"");
    final OutputStream out = response.getOutputStream();
    final FileInputStream in = new FileInputStream(f.toString());
    final int size = in.available();
    final byte[] content = new byte[size];
    in.read(content);
    out.write(content);
    in.close();
    out.close();
}

From source file:edu.umn.natsrl.evaluation.ContourPlotter.java

public void saveImage(boolean viewImage, String f_name) {
    if (!createContourPlot()) {
        return;/* w ww. ja va  2  s. c  o m*/
    }

    try {
        File img = new File(f_name);
        ChartUtilities.saveChartAsJPEG(img, chart, 1000, 800);
        try {
            if (viewImage) {
                //                    Desktop.getDesktop().open(img);
            }
        } catch (Exception e) {
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:it.marcoberri.mbmeteo.action.chart.GetLastUDial.java

/**
 * Processes requests for both HTTP//from www .  j a  va 2  s. c o  m
 * <code>GET</code> and
 * <code>POST</code> methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    log.debug("start : " + this.getClass().getName());

    final HashMap<String, String> params = getParams(request.getParameterMap());
    final Integer dimy = Default.toInteger(params.get("dimy"), 600);
    final Integer dimx = Default.toInteger(params.get("dimx"), 800);

    Meteolog meteolog = ds.find(Meteolog.class).order("-time").limit(1).get();

    DefaultValueDataset dataset = new DefaultValueDataset(meteolog.getOutdoorHumidity());

    // get data for diagrams
    DialPlot plot = new DialPlot();
    plot.setInsets(RectangleInsets.ZERO_INSETS);
    //plot.setView(0.1, 0.1, 0.9, 0.9);
    // plot.set
    plot.setDataset(0, dataset);

    GradientPaint gp = new GradientPaint(new Point(), new Color(255, 255, 255), new Point(),
            new Color(170, 170, 220));

    DialBackground db = new DialBackground(gp);
    db.setGradientPaintTransformer(
            new StandardGradientPaintTransformer(GradientPaintTransformType.CENTER_HORIZONTAL));
    plot.setBackground(db);

    StandardDialScale scale = new StandardDialScale();
    scale.setLowerBound(0);
    scale.setUpperBound(100);
    scale.setTickLabelOffset(0.14);
    scale.setTickLabelFont(new Font("Dialog", Font.PLAIN, 10));
    plot.addScale(0, scale);
    plot.setInsets(RectangleInsets.ZERO_INSETS);

    DialPointer needle = new DialPointer.Pointer(0);

    plot.addLayer(needle);

    JFreeChart chart1 = new JFreeChart(plot);
    chart1.setTitle("Humidity %");

    final File f = File.createTempFile("mbmeteo", ".jpg");
    ChartUtilities.saveChartAsJPEG(f, chart1, dimx, dimy);

    response.setContentType("image/jpeg");
    response.setHeader("Content-Length", "" + f.length());
    response.setHeader("Content-Disposition", "inline; filename=\"" + f.getName() + "\"");
    final OutputStream out = response.getOutputStream();
    final FileInputStream in = new FileInputStream(f.toString());
    final int size = in.available();
    final byte[] content = new byte[size];
    in.read(content);
    out.write(content);
    in.close();
    out.close();
}

From source file:edu.indiana.htrc.visual.HTRCSeriesChartDrawer.java

@Override
public File draw() {

    Set<String> key_set = input_map.keySet();
    Iterator<String> iter = key_set.iterator();
    TimeSeries accessSeries = new TimeSeries(dataset_label, Day.class);
    while (iter.hasNext()) {
        String dateStr = iter.next(); // yyyy-MM-dd
        int value = input_map.get(dateStr);

        Date date = null;/*from   w w w .  j a  v a 2  s .  com*/
        try {
            date = format.parse(dateStr);
            System.out.println(date);

            cal.setTime(date);

            accessSeries.add(
                    new Day(cal.get(Calendar.DATE), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.YEAR)),
                    value);

        } catch (ParseException e) {
            e.printStackTrace();
        }

    }

    TimeSeriesCollection series_dataset = new TimeSeriesCollection();

    series_dataset.addSeries(accessSeries);

    JFreeChart series_chart = ChartFactory.createTimeSeriesChart(chart_name, x_axis_label, y_axis_label,
            series_dataset, true, true, false);

    File img = new File("../webapps/HTRC-UI-AuditAnalyzer/images/" + System.currentTimeMillis() + ".jpg");

    try {
        ChartUtilities.saveChartAsJPEG(img, series_chart, 1400, 600);
    } catch (IOException e) {
        e.printStackTrace();
    }

    return img;
}

From source file:lk.ac.mrt.projectx.buildex.complex.FormalVerifier.java

/**
 * Creates a new fast scatter plot demo.
 *
 * @param title the frame title./*from  w  w  w  .j  ava  2  s .  c o  m*/
 */
public FormalVerifier(final String title, final String lblx, final String lbly) throws IOException {

    super(title);
    populateData();
    final NumberAxis domainAxis = new NumberAxis(lblx);
    domainAxis.setAutoRangeIncludesZero(false);
    final NumberAxis rangeAxis = new NumberAxis(lbly);
    rangeAxis.setAutoRangeIncludesZero(false);
    final FastScatterPlot plot = new FastScatterPlot(this.data, domainAxis, rangeAxis);
    final JFreeChart chart = new JFreeChart(title, plot);
    //        chart.setLegend(null);

    // force aliasing of the rendered content..
    chart.getRenderingHints().put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    final ChartPanel panel = new ChartPanel(chart, true);
    panel.setPreferredSize(new java.awt.Dimension(800, 600));
    //      panel.setHorizontalZoom(true);
    //    panel.setVerticalZoom(true);
    panel.setMinimumDrawHeight(10);
    panel.setMaximumDrawHeight(3000);
    panel.setMinimumDrawWidth(20);
    panel.setMaximumDrawWidth(3000);

    setContentPane(panel);
    //TODO : Print

    ChartUtilities.saveChartAsJPEG(
            new File("F:\\FYP2\\FinalP\\graphs\\Twirl" + System.currentTimeMillis() + ".jpg"), chart, 800, 600);

}

From source file:graficos.GenerarGraficoPromociones.java

public void crear() throws ParseException {
    DefaultPieDataset pieDataset = new DefaultPieDataset();
    ArrayList<String> reservaciones = new ArrayList();
    try {//from   w w  w.j  a  v  a2  s .c om
        Dba db = new Dba(pathdb);
        db.conectar();
        String sql = "select FechaReservacion from Reservacion join Habitacion on Reservacion.IdHabitacion=Habitacion.IdHabitacion "
                + " where Habitacion.IdCategoria=" + idcategoria;
        db.prepare(sql);
        db.query.execute();
        ResultSet rs = db.query.getResultSet();

        while (rs.next()) {
            reservaciones.add(rs.getString(1));
        }
        db.desconectar();
    } catch (Exception e) {

    }
    ArrayList<String> promociones = new ArrayList();
    try {
        Dba db = new Dba(pathdb);
        db.conectar();
        String sql = "select Tipo, FechaInicio, FechaFin,Porcentaje from CategoriaDescuentoPromocion where IdCategoria="
                + idcategoria;
        db.prepare(sql);
        db.query.execute();
        ResultSet rs = db.query.getResultSet();
        while (rs.next()) {
            promociones.add(
                    rs.getString(1) + "," + rs.getString(2) + "," + rs.getString(3) + "," + rs.getString(4));
        }
        db.desconectar();
    } catch (Exception e) {

    }
    int[] count = new int[promociones.size() + 1];
    for (int i = 0; i < reservaciones.size(); i++) {
        int si = 0;
        for (int j = 0; j < promociones.size(); j++) {
            String[] partes = promociones.get(j).split(",");
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Date fechain = format.parse(partes[1]);
            Date fechafi = format.parse(partes[2]);
            Date fechare = format.parse(reservaciones.get(i));
            if (fechare.compareTo(fechain) >= 0 && fechare.compareTo(fechafi) <= 0) {
                si++;
                count[j]++;
            }
        }
        if (si == 0) {
            count[promociones.size()]++;
        }
    }
    for (int j = 0; j < count.length; j++) {
        if (j == promociones.size()) {
            pieDataset.setValue("Precio Normal", new Integer(count[j]));
        } else {
            String[] partes = promociones.get(j).split(",");
            pieDataset.setValue("desc: " + partes[3] + "%", new Integer(count[j]));
        }

    }
    JFreeChart chart = ChartFactory.createPieChart(
            "Porcentaje de Reservaciones Precio Normal vs Promociones y Descuentos", pieDataset, true, true,
            false);
    PiePlot plot = (PiePlot) chart.getPlot();
    PieSectionLabelGenerator gen = new StandardPieSectionLabelGenerator("{0}: {1} ({2})",
            new DecimalFormat("0"), new DecimalFormat("0%"));
    plot.setLabelGenerator(gen);
    try {
        ChartUtilities.saveChartAsJPEG(new File(path), chart, 500, 300);
    } catch (Exception ee) {
        System.err.println(ee.toString());
        System.err.println("Problem occurred creating chart.");
    }
}

From source file:com.ev.export.AnnualPDFExporter.java

private void addDiagram() throws Exception {
    if (chart != null) {
        File imgFile = new File(System.currentTimeMillis() + JPEG_SUFFIX);
        ChartUtilities.saveChartAsJPEG(imgFile, chart, 500, 300);
        Element elem = Image.getInstance(imgFile.getCanonicalPath());
        document.add(elem);//from w  w  w.  j av  a2s . co m
        imgFile.delete();
    } else {
        throw new ExporterException("Could not find diagram.");
    }
}