Search in sources :

Example 61 with XYPlot

use of org.jfree.chart.plot.XYPlot in project s1tbx by senbox-org.

the class MultiMasterInSAROpUI method getPairsAndDrawChart.

private JFreeChart getPairsAndDrawChart(final int[] sliderValue, final boolean showLogoInPlot) {
    // Get metadata of acquisitions
    final double[][] metadata = getAcquisitionsMetadata();
    if (metadata != null) {
        // Get arcs corresponding to pairs
        final List<int[]> arcs = getPairs(sliderValue, metadata);
        // Generate series
        final XYSeries acquisitionsSeries = new XYSeries("Acquisitions");
        final XYLineAnnotation[] interferogramArcsAnnotations = new XYLineAnnotation[arcs.size()];
        final String yAxisLabel = yAxisForPlot;
        int metadata_index = yAxisLabel.contains("Doppler") ? 1 : 2;
        for (int i = 0; i < metadata.length; i++) {
            acquisitionsSeries.add(metadata[i][0], metadata[i][metadata_index]);
        }
        for (int i = 0; i < arcs.size(); i++) {
            final int[] arc = arcs.get(i);
            interferogramArcsAnnotations[i] = new XYLineAnnotation(metadata[arc[0]][0], metadata[arc[0]][metadata_index], metadata[arc[1]][0], metadata[arc[1]][metadata_index], new BasicStroke(1.0f), Color.WHITE);
        }
        // Add series to dataset
        final XYSeriesCollection dataset = new XYSeriesCollection();
        dataset.addSeries(acquisitionsSeries);
        // Generate graph
        final JFreeChart chart = ChartFactory.createXYLineChart("Reference-Secondaries Plot", "Time [days]", yAxisLabel, dataset, PlotOrientation.VERTICAL, true, true, false);
        chart.addSubtitle(new TextTitle(String.format("(Number of pairs: %d)", pairs.length)));
        final XYPlot plot = (XYPlot) chart.getPlot();
        for (XYLineAnnotation annotation : interferogramArcsAnnotations) {
            plot.addAnnotation(annotation);
        }
        final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setSeriesPaint(0, Color.BLUE);
        renderer.setSeriesLinesVisible(0, false);
        renderer.setSeriesShapesVisible(0, true);
        plot.setBackgroundPaint(Color.gray);
        plot.setDomainGridlinePaint(Color.white);
        plot.setRenderer(renderer);
        if (showLogoInPlot) {
            Image image = null;
            final String homePath = SystemUtils.getApplicationHomeDir().getAbsolutePath();
            final String internalPath = "snap-desktop/snap-application/target/snap";
            final String pathUser = homePath.substring(0, homePath.length() - internalPath.length());
            try {
                image = ImageIO.read(new File(pathUser + "s1tbx/s1tbx-rcp/src/main/resources/org/esa/s1tbx/dat/icons/SNAP_icon_128.jpg"));
            } catch (IOException e) {
            }
            plot.setBackgroundImage(image);
            plot.setBackgroundImageAlignment(25);
            plot.setBackgroundAlpha(0.9f);
        }
        return chart;
    }
    return null;
}
Also used : XYSeries(org.jfree.data.xy.XYSeries) XYLineAndShapeRenderer(org.jfree.chart.renderer.xy.XYLineAndShapeRenderer) IOException(java.io.IOException) JFreeChart(org.jfree.chart.JFreeChart) TextTitle(org.jfree.chart.title.TextTitle) XYPlot(org.jfree.chart.plot.XYPlot) XYLineAnnotation(org.jfree.chart.annotations.XYLineAnnotation) XYSeriesCollection(org.jfree.data.xy.XYSeriesCollection) File(java.io.File)

Example 62 with XYPlot

use of org.jfree.chart.plot.XYPlot in project scriptmanager by CEGRcode.

the class HeatMap method createCorrelationHeatmap.

public static ChartPanel createCorrelationHeatmap(String[] labels, double[][] MATRIX, File output) {
    // create a paint-scale and a legend showing it
    LookupPaintScale paintScale = new LookupPaintScale(0, 1, Color.black);
    paintScale.add(0.0, new Color(0, 0, 255));
    paintScale.add(0.11, new Color(63, 63, 255));
    paintScale.add(0.22, new Color(126, 126, 255));
    paintScale.add(0.33, new Color(189, 189, 255));
    paintScale.add(0.44, new Color(255, 255, 255));
    paintScale.add(0.55, new Color(255, 189, 189));
    paintScale.add(0.66, new Color(255, 126, 126));
    paintScale.add(0.77, new Color(255, 63, 63));
    paintScale.add(0.88, new Color(255, 0, 0));
    NumberAxis xAxis = new NumberAxis(null);
    xAxis.setVisible(false);
    String[] reverselabels = new String[labels.length];
    for (int x = 0; x < labels.length; x++) {
        reverselabels[labels.length - x - 1] = labels[x];
    }
    SymbolAxis yAxis = new SymbolAxis("Experiments", reverselabels);
    XYPlot plot = new XYPlot(createDataset(MATRIX), xAxis, yAxis, null);
    XYBlockRenderer r = new XYBlockRenderer();
    r.setPaintScale(paintScale);
    r.setBlockHeight(1.0f);
    r.setBlockWidth(1.0f);
    plot.setRenderer(r);
    JFreeChart chart = new JFreeChart("Correlation Matrix", JFreeChart.DEFAULT_TITLE_FONT, plot, false);
    NumberAxis scaleAxis = new NumberAxis("Scale");
    scaleAxis.setAxisLinePaint(Color.white);
    scaleAxis.setTickMarkPaint(Color.white);
    PaintScaleLegend legend = new PaintScaleLegend(paintScale, scaleAxis);
    legend.setSubdivisionCount(128);
    legend.setAxisLocation(AxisLocation.TOP_OR_RIGHT);
    legend.setPadding(new RectangleInsets(10, 10, 10, 10));
    legend.setStripWidth(20);
    legend.setPosition(RectangleEdge.RIGHT);
    legend.setBackgroundPaint(Color.WHITE);
    chart.addSubtitle(legend);
    chart.setBackgroundPaint(Color.white);
    if (output != null) {
        int width = 640;
        int height = 480;
        try {
            ChartUtils.saveChartAsPNG(output, chart, width, height);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return new ChartPanel(chart);
}
Also used : PaintScaleLegend(org.jfree.chart.title.PaintScaleLegend) NumberAxis(org.jfree.chart.axis.NumberAxis) ChartPanel(org.jfree.chart.ChartPanel) Color(java.awt.Color) XYBlockRenderer(org.jfree.chart.renderer.xy.XYBlockRenderer) IOException(java.io.IOException) JFreeChart(org.jfree.chart.JFreeChart) XYPlot(org.jfree.chart.plot.XYPlot) RectangleInsets(org.jfree.chart.ui.RectangleInsets) LookupPaintScale(org.jfree.chart.renderer.LookupPaintScale) SymbolAxis(org.jfree.chart.axis.SymbolAxis)

Example 63 with XYPlot

use of org.jfree.chart.plot.XYPlot in project scriptmanager by CEGRcode.

the class Histogram method createChart.

private static JFreeChart createChart(IntervalXYDataset dataset) throws IOException {
    final JFreeChart chart = ChartFactory.createXYBarChart(// chart title
    "Paired-End Insert Size Frequency Histogram", // domain axis label
    "Insert Size (bp)", false, // range axis label
    "Frequency", // data
    dataset, // orientation
    PlotOrientation.VERTICAL, // include legend
    true, // tooltips
    true, // urls
    false);
    XYPlot plot = (XYPlot) chart.getPlot();
    // Set Histogram Color to Red
    plot.getRenderer().setSeriesPaint(0, new Color(51, 51, 51));
    plot.setBackgroundPaint(Color.white);
    plot.setRangeGridlinePaint(Color.black);
    plot.setDomainGridlinePaint(Color.black);
    // Turn off Glossy 3D on bar chart
    XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer();
    renderer.setBarPainter(new StandardXYBarPainter());
    return chart;
}
Also used : XYPlot(org.jfree.chart.plot.XYPlot) Color(java.awt.Color) StandardXYBarPainter(org.jfree.chart.renderer.xy.StandardXYBarPainter) JFreeChart(org.jfree.chart.JFreeChart) XYBarRenderer(org.jfree.chart.renderer.xy.XYBarRenderer)

Example 64 with XYPlot

use of org.jfree.chart.plot.XYPlot in project zaproxy by zaproxy.

the class ScanProgressDialog method createChart.

private JFreeChart createChart(final XYDataset dataset) {
    JFreeChart result = ChartFactory.createTimeSeriesChart(// No title - it just takes up space
    null, Constant.messages.getString("ascan.progress.chart.time"), Constant.messages.getString("ascan.progress.chart.responses"), dataset, true, true, false);
    XYPlot plot = result.getXYPlot();
    ValueAxis daxis = plot.getDomainAxis();
    daxis.setAutoRange(true);
    daxis.setAutoRangeMinimumSize(60000.0);
    plot.getRangeAxis().setAutoRangeMinimumSize(20);
    return result;
}
Also used : XYPlot(org.jfree.chart.plot.XYPlot) ValueAxis(org.jfree.chart.axis.ValueAxis) JFreeChart(org.jfree.chart.JFreeChart)

Example 65 with XYPlot

use of org.jfree.chart.plot.XYPlot in project mastodon-tracking by mastodon-sc.

the class WizardUtils method createQualityHistogram.

public static final ChartPanel createQualityHistogram(final Model model) {
    final DetectionQualityFeature qFeature = DetectionQualityFeature.getOrRegister(model.getFeatureModel(), model.getGraph().vertices().getRefPool());
    final double[] values = qFeature.values();
    if (values.length == 0)
        return null;
    final ChartPanel chartPanel = HistogramUtil.createHistogramPlot(values, false);
    chartPanel.getChart().setTitle(new TextTitle("Quality histogram", chartPanel.getFont()));
    // Disable zoom.
    for (final MouseListener ml : chartPanel.getMouseListeners()) chartPanel.removeMouseListener(ml);
    // Re enable the X axis.
    final XYPlot plot = chartPanel.getChart().getXYPlot();
    plot.getDomainAxis().setVisible(true);
    final TickUnitSource source = new NumberTickUnitSource(false, FORMAT);
    plot.getDomainAxis().setStandardTickUnits(source);
    final Font smallFont = chartPanel.getFont().deriveFont(chartPanel.getFont().getSize2D() - 2f);
    plot.getDomainAxis().setTickLabelFont(smallFont);
    // Transparent background.
    chartPanel.getChart().setBackgroundPaint(null);
    return chartPanel;
}
Also used : TextTitle(org.jfree.chart.title.TextTitle) DetectionQualityFeature(org.mastodon.tracking.mamut.detection.DetectionQualityFeature) ChartPanel(org.jfree.chart.ChartPanel) MouseListener(java.awt.event.MouseListener) XYPlot(org.jfree.chart.plot.XYPlot) NumberTickUnitSource(org.jfree.chart.axis.NumberTickUnitSource) TickUnitSource(org.jfree.chart.axis.TickUnitSource) NumberTickUnitSource(org.jfree.chart.axis.NumberTickUnitSource) Font(java.awt.Font)

Aggregations

XYPlot (org.jfree.chart.plot.XYPlot)706 JFreeChart (org.jfree.chart.JFreeChart)284 NumberAxis (org.jfree.chart.axis.NumberAxis)260 ValueAxis (org.jfree.chart.axis.ValueAxis)143 XYSeriesCollection (org.jfree.data.xy.XYSeriesCollection)136 XYSeries (org.jfree.data.xy.XYSeries)123 XYLineAndShapeRenderer (org.jfree.chart.renderer.xy.XYLineAndShapeRenderer)122 XYDataset (org.jfree.data.xy.XYDataset)110 XYItemRenderer (org.jfree.chart.renderer.xy.XYItemRenderer)102 Color (java.awt.Color)96 StandardXYToolTipGenerator (org.jfree.chart.labels.StandardXYToolTipGenerator)83 Paint (java.awt.Paint)82 DateAxis (org.jfree.chart.axis.DateAxis)82 CombinedDomainXYPlot (org.jfree.chart.plot.CombinedDomainXYPlot)65 Range (org.jfree.data.Range)59 Test (org.junit.Test)57 BasicStroke (java.awt.BasicStroke)56 Test (org.junit.jupiter.api.Test)56 XYToolTipGenerator (org.jfree.chart.labels.XYToolTipGenerator)54 Rectangle2D (java.awt.geom.Rectangle2D)46