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:edu.umn.natsrl.evaluation.ContourPlotter.java

public void saveImage(boolean viewImage) {
    if (!createContourPlot()) {
        return;/*from  w  w w .j ava2  s.c om*/
    }

    try {
        File img = new File(getFileName(null, "jpg"));
        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.GetLastTBar.java

/**
 * Processes requests for both HTTP/*w  ww.j a  va2  s  .  co 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();

    final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(meteolog.getOutdoorTemperature(), ChartEnumMinMaxHelper.outdoorTemperatureMin.getUm(),
            DateTimeUtil.dateFormat("yyyy-MM-dd hh:mm:ss", meteolog.getTime()));

    final JFreeChart chart = ChartFactory.createBarChart("T", // chart title
            "", // domain axis label
            "", // range axis label
            dataset, // data
            PlotOrientation.VERTICAL, // orientation
            false, // include legend
            false, // tooltips?
            false // URLs?
    );

    final CategoryPlot xyPlot = (CategoryPlot) chart.getPlot();

    xyPlot.getRangeAxis().setRange(0, meteolog.getOutdoorTemperature() + 2);
    final File f = File.createTempFile("mbmeteo", ".jpg");
    ChartUtilities.saveChartAsJPEG(f, chart, 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:gestionelectrica.VentanaEjemploGraf.java

private void rellenar(JPanel jp) {
    // Create a simple XY chart
    XYSeries series = new XYSeries("EC");
    series.add(1, 1);// w ww.j  a va 2  s . c om
    series.add(1, 2);
    series.add(2, 1);
    series.add(3, 9);
    series.add(4, 10);
    series.add(7, 15);
    series.add(10, 6);
    // Add the series to your data set
    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series);
    // Generate the graph
    JFreeChart chart = ChartFactory.createXYLineChart("Energa comprada", // Title
            "hora", // x-axis Label
            "KWh", // y-axis Label
            dataset, // Dataset
            PlotOrientation.VERTICAL, // Plot Orientation
            true, // Show Legend
            true, // Use tooltips
            false // Configure chart to generate URLs?
    );
    JFreeChart pieChart = ChartFactory.createXYLineChart("EJEMPLOOOO", "Category", "Score", createDataset(),
            PlotOrientation.VERTICAL, true, true, false);

    System.out.println(System.getProperty("user.home"));
    System.out.println(System.getProperty("java.io.tmpdir"));
    System.out.println(System.getProperties());
    File f = new File(System.getProperty("java.io.tmpdir") + "\\chart.jpg");
    try {
        ChartUtilities.saveChartAsJPEG(f, chart, jp.getWidth(), jp.getHeight());
    } catch (IOException e) {
        System.err.println("Problem occurred creating chart.");
        System.err.println(e.getMessage());
    }
    // Adding chart into a chart panel
    //ChartPanel chartPanel = new ChartPanel(pieChart);

    // settind default size
    //chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));

    // add to contentPane
    //setContentPane(chartPanel);
    //jPanel1.add(chartPanel);
    ImageIcon ic = new ImageIcon(f.getAbsolutePath());
    ImagePanel panel = new ImagePanel(ic.getImage(), jp.getWidth(), jp.getHeight());
    jp.add(panel);
    /*jPanel1.repaint();
    jPanel1.updateUI();
    jPanel1.validate();*/

    if (f.delete())
        System.out.println("BORRADO CORRECTAMENTE");
    else
        System.err.println("NO SE PUDO BORRAR");
}

From source file:at.granul.mason.collector.ChartFileScalarDataWriter.java

public static void exportGraph(XYChartGenerator chart, String prefix, int width, int height) {
    try {//from   ww w  .jav  a 2s . c om
        Document document = new Document(new com.lowagie.text.Rectangle(width, height));

        PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream(new File(prefix + "_" + DataWriter.DF.format(new Date()) + ".pdf")));

        document.addAuthor("MASON");
        document.open();
        PdfContentByte cb = writer.getDirectContent();
        //PdfTemplate tp = cb.createTemplate(width, height);

        //Write the chart with all datasets
        chart.addLegend();
        /*LegendTitle title = new LegendTitle(chart.getChart().getPlot());
        title.setLegendItemGraphicPadding(new org.jfree.ui.RectangleInsets(0,8,0,4));
        chart.addLegend(title);*/
        LegendTitle legendTitle = chart.getChart().getLegend();
        legendTitle.setPosition(RectangleEdge.BOTTOM);

        Graphics2D g2 = cb.createGraphics(width, height, new DefaultFontMapper());
        Rectangle2D rectangle2D = new Rectangle2D.Double(0, 0, width, height);
        chart.getChart().draw(g2, rectangle2D);
        g2.dispose();

        //PNG Output
        ChartUtilities.saveChartAsJPEG(new File(prefix + "_" + DataWriter.DF.format(new Date()) + ".png"),
                chart.getChart(), width, height);

        chart.getChart().removeLegend();
        //tp = cb.createTemplate(width, height);

        //All invisible
        final XYItemRenderer renderer = chart.getChartPanel().getChart().getXYPlot().getRenderer();
        for (int a = 0; a < chart.getSeriesCount(); a++) {
            renderer.setSeriesVisible(a, false);
        }

        final Dataset seriesDataset = chart.getSeriesDataset();
        XYSeriesCollection series = ((XYSeriesCollection) seriesDataset);
        for (int a = 0; a < chart.getSeriesCount(); a++) {
            renderer.setSeriesVisible(a, true);
            final String seriesName = series.getSeries(a).getKey() + "";
            chart.setYAxisLabel(seriesName);
            document.newPage();
            g2 = cb.createGraphics(width, height * (a + 2), new DefaultFontMapper());
            g2.translate(0, height * (a + 1));
            chart.getChart().draw(g2, rectangle2D);
            g2.dispose();

            //PNG Output
            ChartUtilities.saveChartAsJPEG(
                    new File(prefix + "_" + seriesName + DataWriter.DF.format(new Date()) + ".png"),
                    chart.getChart(), width, height);

            renderer.setSeriesVisible(a, false);
        }
        //cb.addTemplate(tp, 0, 0);

        document.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:BarChartDemo.java

/**
 * Creates a new demo instance.//  w w w .  j a  v  a  2s  .com
 *
 * @param title  the frame title.
 */
public BarChartDemo(final String title) {

    super(title);

    // Populate data for plotting
    final CategoryDataset dataset = createDataset();
    final JFreeChart chart1 = createChart(dataset);

    // Create a Panel for display purposes
    final ChartPanel chartPanel = new ChartPanel(chart1);
    chartPanel.setPreferredSize(new Dimension(500, 270));
    setContentPane(chartPanel);

    // Also dump the jpeg version of the chart to a file
    try {
        File f = new File("barchart.jpeg");
        ChartUtilities.saveChartAsJPEG(f, chart1, 500, 270);
    } catch (Exception e) {
        // If any errors occur discard; it's just a placeholder anyways
        e.printStackTrace();
    }

}

From source file:diplomawork.model.JPEGSaver.java

public void saveChartToFile(JFreeChart chart, boolean trainFlag) {
    chart.setBackgroundPaint(Color.white);
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.getDomainAxis().setVisible(false);
    plot.getRangeAxis().setVisible(false);
    plot.setBackgroundAlpha(0);/*from w w w  .  j av  a 2 s . c o  m*/
    plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
    plot.setOutlinePaint(null);
    XYItemRenderer r = plot.getRenderer();

    if (r instanceof XYLineAndShapeRenderer) {
        XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
        renderer.setBaseShapesVisible(false);
        renderer.setSeriesPaint(0, Color.BLACK);
    }
    plot.getRenderer().setSeriesStroke(0, new java.awt.BasicStroke(4f));
    File f = null;
    if (trainFlag) {
        nameOfJPGFile = "src/resorce/TranePlot" + trainCount++ + ".jpg";
        f = new File(nameOfJPGFile);
    } else {
        //            f = new File("src/resorce/Plot" + n++ + ".jpg");
        f = new File("src/resorce/Plot" + ".jpg");
    }

    try {
        ChartUtilities.saveChartAsJPEG(f, chart, 80, 80);
    } catch (IOException ex) {
        Logger.getLogger(JPEGSaver.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:net.sf.clichart.chart.ChartSaver.java

/**
 * Package private for testing//  w ww.  j  a  va 2 s.com
 */
void saveChart(int chartType, File outputFile) throws IOException {
    if (chartType == TYPE_PNG) {
        ChartUtilities.saveChartAsPNG(new File(outputFile.getPath()), m_chart, m_width, m_height);
    } else {
        ChartUtilities.saveChartAsJPEG(new File(outputFile.getPath()), m_chart, m_width, m_height);
    }
}

From source file:sipl.recursos.Graficar.java

public void Prestamos(int[] values, int[] fecha, int n, String direccion, String tiempo, String titulo) {
    try {/*from   ww w. j ava2s.  c  o m*/
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        for (int j = 0; j < n; j++) {
            dataset.addValue(values[j], "Cantidad de Prstamos", "" + fecha[j]);
        }
        JFreeChart chart = ChartFactory.createLineChart(titulo, tiempo, "Cantidad", dataset,
                PlotOrientation.VERTICAL, true, true, true);
        try {
            ChartUtilities.saveChartAsJPEG(new File(direccion), chart, 700, 500);
        } catch (IOException e) {
            System.out.println("Error al abrir el archivo");
        }
    } catch (Exception e) {
        System.out.println(e);
    }
}

From source file:ip.ui.plot.PlotGenerator.java

public void generateResultsChart(ResultsPlotData data, String fileName) throws IOException {
    XYSeries expectedData = new XYSeries("Expected output");
    XYSeries networkData = new XYSeries("Network output");

    List<double[]> inputs = new ArrayList(data.getInputs().size());
    data.getInputs().stream().forEach((InputRow row) -> {
        inputs.add(row.getValues());/*  ww  w . j a v a 2 s .c  om*/
    });

    List<double[]> expectedOutputs = new ArrayList(data.getInputs().size());
    data.getInputs().stream().forEach((InputRow row) -> {
        expectedOutputs.add(row.getExpectedOutput());
    });

    List<double[]> outputs = data.getOutputs();

    for (int i = 0; i < inputs.size(); ++i) {
        expectedData.add(inputs.get(i)[0], expectedOutputs.get(i)[0]);
        networkData.add(inputs.get(i)[0], outputs.get(i)[0]);
    }

    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(expectedData);
    dataset.addSeries(networkData);
    JFreeChart chart = ChartFactory.createXYLineChart(data.getPlotName(), data.getxAxisLabel(),
            data.getyAxisLabel(), dataset, PlotOrientation.VERTICAL, true, true, true);

    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setSeriesLinesVisible(0, false);
    renderer.setSeriesLinesVisible(1, false);
    chart.getXYPlot().setRenderer(renderer);

    File XYChart = new File(fileName);
    ChartUtilities.saveChartAsJPEG(XYChart, chart, chartWidth, chartHeight);
}

From source file:spec.reporter.Utils.java

public static void createBmResultGraph(BenchmarkRecord record) {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    String iterName = "";
    double max = 0;
    double min = Long.MAX_VALUE;
    for (int i = 0; i < record.iterRecords.size(); i++) {
        BenchmarkRecord.IterationRecord iterRecord = (BenchmarkRecord.IterationRecord) record.iterRecords
                .get(i);/*from   w  w  w  . j  a va 2  s.c om*/
        String shortName = iterRecord.iterName.replaceFirst("ation", "");
        if (iterRecord.score > max) {
            max = iterRecord.score;
            iterName = shortName;
        }

        if (iterRecord.score < min) {
            min = iterRecord.score;
        }

        dataset.addValue(iterRecord.score, " ", shortName);
    }

    JFreeChart chart = ChartFactory.createLineChart("  ", "iterations", Constants.WORKLOAD_METRIC, dataset,
            PlotOrientation.VERTICAL, false, true, false);
    CategoryPlot plot = chart.getCategoryPlot();
    plot.setBackgroundPaint(new Color(201, 222, 254));
    plot.setRangeGridlinePaint(Color.WHITE);
    if (record.isValidRun() && min != Long.MAX_VALUE) {
        plot.getRangeAxis().setRange(min - 10, max + 10);
    } else {
        plot.getRangeAxis().setRange(0, max + 10);
    }
    ValueMarker vm = new ValueMarker(record.maxScore);
    vm.setLabel(Utils.df.format(record.maxScore));
    vm.setLabelAnchor(RectangleAnchor.TOP_LEFT);
    vm.setLabelTextAnchor(TextAnchor.HALF_ASCENT_LEFT);

    plot.addRangeMarker(vm);
    CategoryMarker marker = new CategoryMarker(iterName);
    marker.setDrawAsLine(true);
    marker.setPaint(vm.getPaint());
    plot.addDomainMarker(marker);
    LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
    renderer.setShapesVisible(true);
    renderer.setDrawOutlines(true);
    renderer.setUseFillPaint(true);
    renderer.setFillPaint(Color.WHITE);
    renderer.setSeriesPaint(0, Color.BLUE.darker());

    try {
        ChartUtilities.saveChartAsJPEG(new File(Utils.getFullImageName(record.name + "_results")), chart, 300,
                200);
    } catch (Exception e) {
        System.out.println("Problems...");
    }
}