Example usage for org.jfree.data.xy YIntervalSeriesCollection addSeries

List of usage examples for org.jfree.data.xy YIntervalSeriesCollection addSeries

Introduction

In this page you can find the example usage for org.jfree.data.xy YIntervalSeriesCollection addSeries.

Prototype

public void addSeries(YIntervalSeries series) 

Source Link

Document

Adds a series to the collection and sends a DatasetChangeEvent to all registered listeners.

Usage

From source file:org.jfree.data.xy.junit.YIntervalSeriesCollectionTest.java

/**
 * Confirm that the equals method can distinguish all the required fields.
 *///from  ww w.j a va2  s.  c  om
public void testEquals() {
    YIntervalSeriesCollection c1 = new YIntervalSeriesCollection();
    YIntervalSeriesCollection c2 = new YIntervalSeriesCollection();
    assertEquals(c1, c2);

    // add a series
    YIntervalSeries s1 = new YIntervalSeries("Series");
    s1.add(1.0, 1.1, 1.2, 1.3);
    c1.addSeries(s1);
    assertFalse(c1.equals(c2));
    YIntervalSeries s2 = new YIntervalSeries("Series");
    s2.add(1.0, 1.1, 1.2, 1.3);
    c2.addSeries(s2);
    assertTrue(c1.equals(c2));

    // add an empty series
    c1.addSeries(new YIntervalSeries("Empty Series"));
    assertFalse(c1.equals(c2));
    c2.addSeries(new YIntervalSeries("Empty Series"));
    assertTrue(c1.equals(c2));
}

From source file:com.att.aro.main.PacketPlots.java

/**
 * Creates the XYIntervalSeries for the uplink and downlink packets plot.
 * // w  w  w.  ja v a  2  s  .com
 * @param plot
 *            The XYPlot for the uplink/downlink plots.
 * @param dataset
 *            The uplink/downlink datasets.
 */
private void populatePacketPlot(XYPlot plot, LinkedHashMap<Color, PacketSeries> dataset) {

    // Create the XY data set
    YIntervalSeriesCollection coll = new YIntervalSeriesCollection();
    XYItemRenderer renderer = plot.getRenderer();
    for (PacketSeries series : dataset.values()) {
        coll.addSeries(series);

        renderer.setSeriesPaint(coll.indexOf(series.getKey()), series.getColor());
    }

    // Create tooltip generator
    renderer.setBaseToolTipGenerator(new PacketToolTipGenerator());

    plot.setDataset(coll);
}

From source file:org.btrg.df.betterologist.swingui.ProjectJobSchedulingPanel.java

private JFreeChart createChart(Schedule schedule) {
    YIntervalSeriesCollection seriesCollection = new YIntervalSeriesCollection();
    Map<Project, YIntervalSeries> projectSeriesMap = new LinkedHashMap<Project, YIntervalSeries>(
            schedule.getProjectList().size());
    YIntervalRenderer renderer = new YIntervalRenderer();
    int maximumEndDate = 0;
    int seriesIndex = 0;
    for (Project project : schedule.getProjectList()) {
        YIntervalSeries projectSeries = new YIntervalSeries(project.getLabel());
        seriesCollection.addSeries(projectSeries);
        projectSeriesMap.put(project, projectSeries);
        renderer.setSeriesShape(seriesIndex, new Rectangle());
        renderer.setSeriesStroke(seriesIndex, new BasicStroke(3.0f));
        seriesIndex++;/*from ww  w. j  av a  2 s.c om*/
    }
    for (Allocation allocation : schedule.getAllocationList()) {
        int startDate = allocation.getStartDate();
        int endDate = allocation.getEndDate();
        YIntervalSeries projectSeries = projectSeriesMap.get(allocation.getProject());
        projectSeries.add(allocation.getId(), (startDate + endDate) / 2.0, startDate, endDate);
        maximumEndDate = Math.max(maximumEndDate, endDate);
    }
    NumberAxis domainAxis = new NumberAxis("Job");
    domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    domainAxis.setRange(-0.5, schedule.getAllocationList().size() - 0.5);
    domainAxis.setInverted(true);
    NumberAxis rangeAxis = new NumberAxis("Day (start to end date)");
    rangeAxis.setRange(-0.5, maximumEndDate + 0.5);
    XYPlot plot = new XYPlot(seriesCollection, domainAxis, rangeAxis, renderer);
    plot.setOrientation(PlotOrientation.HORIZONTAL);
    return new JFreeChart("Project Job Scheduling", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
}

From source file:com.spotify.heroic.http.render.RenderUtils.java

public static JFreeChart createChart(final List<ShardedResultGroup> groups, final String title,
        Map<String, String> highlight, Double threshold, int height) {
    final XYLineAndShapeRenderer lineAndShapeRenderer = new XYLineAndShapeRenderer(true, true);
    final DeviationRenderer intervalRenderer = new DeviationRenderer();

    final XYSeriesCollection regularData = new XYSeriesCollection();
    final YIntervalSeriesCollection intervalData = new YIntervalSeriesCollection();

    int lineAndShapeCount = 0;
    int intervalCount = 0;

    for (final ShardedResultGroup resultGroup : groups) {
        final MetricCollection group = resultGroup.getMetrics();

        if (group.getType() == MetricType.POINT) {
            final XYSeries series = new XYSeries(resultGroup.getMetrics().toString());

            final List<Point> data = group.getDataAs(Point.class);

            for (final Point d : data) {
                series.add(d.getTimestamp(), d.getValue());
            }/*from   www .  jav  a 2s .  c o m*/

            lineAndShapeRenderer.setSeriesPaint(lineAndShapeCount, Color.BLUE);
            lineAndShapeRenderer.setSeriesShapesVisible(lineAndShapeCount, false);
            lineAndShapeRenderer.setSeriesStroke(lineAndShapeCount, new BasicStroke(2.0f));
            regularData.addSeries(series);
            ++lineAndShapeCount;
        }

        if (group.getType() == MetricType.SPREAD) {
            final YIntervalSeries series = new YIntervalSeries(resultGroup.getMetrics().toString());

            final List<Spread> data = group.getDataAs(Spread.class);

            for (final Spread d : data) {
                series.add(d.getTimestamp(), d.getSum() / d.getCount(), d.getMin(), d.getMax());
            }

            intervalRenderer.setSeriesPaint(intervalCount, Color.GREEN);
            intervalRenderer.setSeriesStroke(intervalCount, new BasicStroke(2.0f));
            intervalRenderer.setSeriesFillPaint(intervalCount, new Color(200, 255, 200));
            intervalRenderer.setSeriesShapesVisible(intervalCount, false);
            intervalData.addSeries(series);
            ++intervalCount;
        }
    }

    final JFreeChart chart = buildChart(title, regularData, intervalData, lineAndShapeRenderer,
            intervalRenderer);

    chart.setAntiAlias(true);
    chart.setBackgroundPaint(Color.WHITE);

    final XYPlot plot = chart.getXYPlot();

    plot.setBackgroundPaint(Color.WHITE);
    plot.setDomainGridlinePaint(Color.BLACK);
    plot.setRangeGridlinePaint(Color.BLACK);

    if (threshold != null) {
        final ValueMarker marker = new ValueMarker(threshold, Color.RED,
                new BasicStroke(Math.max(Math.min(height / 20, 6), 1)), Color.RED, null, 0.5f);
        plot.addRangeMarker(marker);
    }

    plot.setRenderer(lineAndShapeRenderer);

    // final DateAxis rangeAxis = (DateAxis) plot.getRangeAxis();
    // rangeAxis.setStandardTickUnits(DateAxis.createStandardDateTickUnits());

    return chart;
}

From source file:projects.wdlf47tuc.ProcessAllSwathcal.java

/**
 * Computes the luminosity function for the current boxed region and plots it in a JFrame.
 * Also prints out the coordinates of the selection box vertices and the luminosity function
 * quantities./* w  w  w .j  av a  2  s .co m*/
 * 
 * @param sources
 *    The {@link Source}s to compute the luminosity function for.
 */
private void computeAndPlotLuminosityFunction(List<Source> sources) {

    // Print out coordinates of selection box corners
    System.out.println("# Coordinates of selection box corners:");
    System.out.println("# (" + col1Filter + "-" + col2Filter + ")\t" + magFilter);
    for (double[] point : points) {
        System.out.println("# " + point[0] + "\t" + point[1]);
    }
    System.out.println("# Luminosity function:");
    System.out.println("# Mag.\tN\tsigN");

    double magBinWidth = 0.5;

    // Get the range of the data
    double mMin = Double.MAX_VALUE;
    double mMax = -Double.MAX_VALUE;
    for (Source source : sources) {
        double mag = source.getMag(magFilter) - mu;
        mMin = Math.min(mMin, mag);
        mMax = Math.max(mMax, mag);
    }

    // Quantize this to a whole number
    mMin = Math.floor(mMin);
    mMax = Math.ceil(mMax);

    int nBins = (int) Math.rint((mMax - mMin) / magBinWidth);

    // Array to accumulate all objects in each bin
    int[] n = new int[nBins];

    for (Source source : sources) {
        double mag = source.getMag(magFilter) - mu;
        // Bin number
        int bin = (int) Math.floor((mag - mMin) / magBinWidth);
        n[bin]++;
    }

    YIntervalSeries luminosityFunction = new YIntervalSeries("Luminosity Function");

    for (int i = 0; i < nBins; i++) {
        // Bin centre
        double x = mMin + i * magBinWidth + 0.5 * magBinWidth;
        double y = n[i];
        double yErr = n[i] > 0 ? Math.sqrt(y) : 0;
        luminosityFunction.add(x, y, y - yErr, y + yErr);
        System.out.println(x + "\t" + y + "\t" + yErr);
    }

    final YIntervalSeriesCollection data = new YIntervalSeriesCollection();
    data.addSeries(luminosityFunction);

    XYErrorRenderer renderer = new XYErrorRenderer();
    renderer.setSeriesLinesVisible(0, true);
    renderer.setSeriesShapesVisible(0, true);
    renderer.setSeriesShape(0, new Ellipse2D.Float(-1f, -1f, 2, 2));
    renderer.setSeriesPaint(0, ChartColor.BLACK);

    NumberAxis xAxis = new NumberAxis("Absolute Magnitude (" + magFilter.toString() + ")");
    xAxis.setAutoRange(true);
    xAxis.setAutoRangeIncludesZero(false);

    NumberAxis yAxis = new NumberAxis("N");
    yAxis.setAutoRange(true);
    yAxis.setAutoRangeIncludesZero(true);

    // Configure plot
    XYPlot xyplot = new XYPlot(data, xAxis, yAxis, renderer);
    xyplot.setBackgroundPaint(Color.lightGray);
    xyplot.setDomainGridlinePaint(Color.white);
    xyplot.setDomainGridlinesVisible(true);
    xyplot.setRangeGridlinePaint(Color.white);

    // Configure chart
    JFreeChart chart = new JFreeChart("Luminosity Function", xyplot);
    chart.setBackgroundPaint(Color.white);
    chart.setTitle("47 Tuc luminosity function");
    chart.removeLegend();

    final ChartPanel lfChartPanel = new ChartPanel(chart);

    java.awt.EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            JFrame tester = new JFrame();
            tester.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            tester.setLayout(new BorderLayout());
            tester.add(lfChartPanel, BorderLayout.CENTER);
            tester.pack();
            tester.setVisible(true);
        }
    });

}

From source file:de.tud.kom.p2psim.impl.skynet.visualization.MetricsPlot.java

private void updateChartPanel(String plotTitle) {
    XYPlot plot = (XYPlot) chart.getPlot();
    YIntervalSeriesCollection dataset = new YIntervalSeriesCollection();// (YIntervalSeriesCollection)
    // plot.getDataset()
    String[] names = displayedSeries.keySet().toArray(new String[displayedSeries.keySet().size()]);
    Arrays.sort(names, null);//  w  ww.ja  v  a 2  s  . c  om
    if (!autoScrolling && displayedSeries.get(names[0]).getDataSeries().getItemCount() == displayedSeries
            .get(names[0]).getDataSeries().getMaximumItemCount()) {
        autoScrolling = true;
        DateAxis domain = (DateAxis) plot.getDomainAxis();
        domain.setAutoRange(true);
        plot.setDomainAxis(domain);
    }
    for (int i = 0; i < names.length; i++) {
        if (names[i].startsWith("Min_")) {
            if (showMin)
                dataset.addSeries(displayedSeries.get(names[i]).getDataSeries());
        } else if (names[i].startsWith("Max_")) {
            if (showMax)
                dataset.addSeries(displayedSeries.get(names[i]).getDataSeries());
        } else {
            dataset.addSeries(displayedSeries.get(names[i]).getDataSeries());
        }

    }
    plot.setDataset(dataset);
    plot.setRenderer(configureRendererForDataSet(plot.getRenderer(), dataset));
    plotPanel.setChart(chart);
    setSizeOfComponent(plotPanel, new Dimension(plotWidth, plotHeight));
    container.add(plotPanel, BorderLayout.CENTER);
    setSizeOfComponent(container, new Dimension(plotWidth, plotHeight + boxOffset));
}

From source file:lu.lippmann.cdb.common.gui.ts.TimeSeriesChartUtil.java

private static void fillWithSingleAxisInterval(final Instances dataSet, final int dateIdx,
        final YIntervalSeriesCollection tsDataset, final double deviation, final int deviatedAttrIdx) {
    final int numInstances = dataSet.numInstances();

    for (final Integer i : WekaDataStatsUtil.getNumericAttributesIndexes(dataSet)) {
        if (dataSet.attributeStats(i).missingCount == dataSet.numInstances()) {
            System.out.println("TimeSeriesChartUtil: Only missing values for '" + dataSet.attribute(i).name()
                    + "', so skip it!");
            continue;
        }/*  w  w w  .  j a  v a 2s  . c om*/
        final YIntervalSeries ts = new YIntervalSeries(dataSet.attribute(i).name());
        for (int k = 0; k < numInstances; k++) {
            final Instance instancek = dataSet.instance(k);
            final long timeInMilliSec = (long) instancek.value(dateIdx);

            if (instancek.isMissing(i)) {
                //ts.add(timeInMilliSec,null,0d,0d);               
            } else {
                if (i == deviatedAttrIdx && k > 0 && k < (numInstances - 1)) {
                    System.out.println(numInstances + " " + k + " " + instancek.value(i) + " "
                            + (instancek.value(i) - deviation) + " " + (instancek.value(i) + deviation));
                    ts.add(timeInMilliSec, instancek.value(i), instancek.value(i) - deviation,
                            instancek.value(i) + deviation);
                } else {
                    ts.add(timeInMilliSec, instancek.value(i), instancek.value(i), instancek.value(i));
                }
                //System.out.println(instancek.value(i)+" "+(instancek.value(i)-deviation)+" "+(instancek.value(i)+deviation));
            }
        }
        if (!ts.isEmpty())
            tsDataset.addSeries(ts);
    }
}

From source file:org.peerfact.impl.service.aggregation.skyeye.visualization.MetricsPlot.java

private void updateChartPanel(String plotTitle) {
    XYPlot plot = (XYPlot) chart.getPlot();
    YIntervalSeriesCollection dataset = new YIntervalSeriesCollection();// (YIntervalSeriesCollection)
    // plot.getDataset()
    String[] names = displayedSeries.keySet().toArray(new String[displayedSeries.keySet().size()]);
    Arrays.sort(names, null);//from w  ww  .  j a va 2 s.c  om
    if (!autoScrolling && displayedSeries.get(names[0]).getDataSeries().getItemCount() == displayedSeries
            .get(names[0]).getDataSeries().getMaximumItemCount()) {
        autoScrolling = true;
        DateAxis domain = (DateAxis) plot.getDomainAxis();
        domain.setAutoRange(true);
        plot.setDomainAxis(domain);
    }
    for (int i = 0; i < names.length; i++) {
        if (names[i].startsWith("Min_")) {
            if (showMin) {
                dataset.addSeries(displayedSeries.get(names[i]).getDataSeries());
            }
        } else if (names[i].startsWith("Max_")) {
            if (showMax) {
                dataset.addSeries(displayedSeries.get(names[i]).getDataSeries());
            }
        } else {
            dataset.addSeries(displayedSeries.get(names[i]).getDataSeries());
        }

    }
    plot.setDataset(dataset);
    plot.setRenderer(configureRendererForDataSet(plot.getRenderer(), dataset));
    plotPanel.setChart(chart);
    setSizeOfComponent(plotPanel, new Dimension(plotWidth, plotHeight));
    container.add(plotPanel, BorderLayout.CENTER);
    setSizeOfComponent(container, new Dimension(plotWidth, plotHeight + boxOffset));
}

From source file:de.bund.bfr.knime.pmmlite.views.chart.ChartCreator.java

private XYDataset createFunctionDataSet(Plotable plotable, String id, double minX, double maxX)
        throws ParseException, UnitException {
    double[][] points = plotable.getFunctionPoints(varX, varY, minX, maxX);

    if (points == null) {
        return null;
    }//from   ww  w .  j  a  v  a2s  .c  o  m

    double[][] functionErrors = null;

    if (showConfidence || showPrediction) {
        functionErrors = plotable.getFunctionErrors(varX, varY, minX, maxX, showPrediction);
    }

    if (functionErrors != null) {
        YIntervalSeriesCollection functionDataset = new YIntervalSeriesCollection();
        YIntervalSeries series = new YIntervalSeries(legend.get(id));

        for (int j = 0; j < points[0].length; j++) {
            double error = Double.isNaN(functionErrors[1][j]) ? 0.0 : functionErrors[1][j];

            series.add(points[0][j], points[1][j], points[1][j] - error, points[1][j] + error);
        }

        functionDataset.addSeries(series);

        return functionDataset;
    } else {
        DefaultXYDataset dataSet = new DefaultXYDataset();

        dataSet.addSeries(legend.get(id), points);

        return dataSet;
    }
}

From source file:de.bund.bfr.knime.pmmlite.views.chart.ChartCreator.java

private List<XYDataset> createStrictFunctionDataSets(Plotable plotable, String id, double minX, double maxX)
        throws ParseException, UnitException {
    List<XYDataset> dataSets = new ArrayList<>();

    for (Map<String, Integer> choiceMap : plotable.getAllChoices(varX.getName())) {
        double[][] modelPoints = plotable.getFunctionPoints(varX, varY, minX, maxX, choiceMap);

        if (modelPoints == null) {
            dataSets.add(null);/*w  w w .ja  v a 2 s  . co m*/
            continue;
        }

        double[][] modelErrors = null;

        if (showConfidence || showPrediction) {
            modelErrors = plotable.getFunctionErrors(varX, varY, minX, maxX, showPrediction, choiceMap);
        }

        StringBuilder addLegend = new StringBuilder();

        for (Map.Entry<String, Integer> entry : choiceMap.entrySet()) {
            if (!entry.getKey().equals(varX.getName())) {
                Double value = plotable.getVariables().get(entry.getKey()).get(entry.getValue());

                if (value != null) {
                    String s = NumberFormat.getInstance(Locale.US).format(value);

                    addLegend.append(" (" + entry.getKey() + "=" + s + ")");
                }
            }
        }

        if (modelErrors != null) {
            YIntervalSeriesCollection dataSet = new YIntervalSeriesCollection();
            YIntervalSeries series = new YIntervalSeries(legend.get(id));

            for (int j = 0; j < modelPoints[0].length; j++) {
                double error = Double.isNaN(modelErrors[1][j]) ? 0.0 : modelErrors[1][j];

                series.add(modelPoints[0][j], modelPoints[1][j], modelPoints[1][j] - error,
                        modelPoints[1][j] + error);
            }

            dataSet.addSeries(series);
            dataSets.add(dataSet);
        } else {
            DefaultXYDataset dataSet = new DefaultXYDataset();

            dataSet.addSeries(legend.get(id) + addLegend, modelPoints);

            dataSets.add(dataSet);
        }
    }

    return dataSets;
}