Example usage for org.jfree.data.xy XYSeriesCollection getSeriesIndex

List of usage examples for org.jfree.data.xy XYSeriesCollection getSeriesIndex

Introduction

In this page you can find the example usage for org.jfree.data.xy XYSeriesCollection getSeriesIndex.

Prototype

public int getSeriesIndex(Comparable key) 

Source Link

Document

Returns the index of the series with the specified key, or -1 if no series has that key.

Usage

From source file:TradeMonitorGui.java

private void startGui() {
    XYSeriesCollection dataset = new XYSeriesCollection();
    createChartFrame(dataset);//w  w w  .  j  ava 2s.  c o  m
    EntryAddedUpdatedListener<String, KeyedWindowResult<String, Double>> listener = (key, value) -> {
        if (!TICKERS.contains(key)) {
            return;
        }
        Long ts = value.end();
        double val = value.result() / 100.0;
        int idx = dataset.getSeriesIndex(key);
        XYSeries series;
        if (idx == -1) {
            series = new XYSeries(key, true, false);
            dataset.addSeries(series);
        } else {
            series = dataset.getSeries(idx);
        }
        series.addOrUpdate((long) ts, val);
    };
    this.listenerId = avgPrices.addEntryListener(listener, true);
}

From source file:com.compomics.cell_coord.gui.controller.summary.VisualizeTracksController.java

/**
 * Generate the data for the plots.//w w w.  j  ava2s  . co  m
 *
 * @param useRawData
 * @return
 */
private void generateDataForPlots(boolean useRawData) {
    for (Sample sample : loadTracksController.getSamples()) {
        XYSeriesCollection xYSeriesCollection = new XYSeriesCollection();
        // this is not the best way to fix this multiple locations issue, but for the moment fair enough !!
        int counter = 0;
        for (Track track : sample.getTracks()) {
            // the matrix to use is either the raw coordinates matrix or the shifted matrix
            Double[][] coordinatesMatrix;
            if (useRawData) {
                coordinatesMatrix = track.getCoordinates();
            } else {
                coordinatesMatrix = track.getShiftedCoordinates();
            }
            XYSeries xySeries = JFreeChartUtils.generateXYSeries(coordinatesMatrix);
            Long trackid = track.getTrackid();

            String key;
            key = "track " + trackid;
            // we check here if the collection already contains this key
            int seriesIndex = xYSeriesCollection.getSeriesIndex(key);
            if (seriesIndex == -1) {
                key = "track " + trackid;
            } else {
                // should be able to get the number of the series already present !!
                key = "track " + trackid + ", " + (counter + 1);
                counter++;
            }
            xySeries.setKey(key);
            xYSeriesCollection.addSeries(xySeries);
        }
        xYSeriesCollections.add(xYSeriesCollection);
    }
}

From source file:be.ugent.maf.cellmissy.gui.controller.analysis.singlecell.GlobalViewConditionController.java

/**
 * @param useRawData// w w  w  .java2 s .  co m
 * @return
 */
private void generateDataForPlots(boolean useRawData) {
    trackDataHoldersList.stream().map((trackDataHolders) -> {
        XYSeriesCollection xYSeriesCollection = new XYSeriesCollection();
        // this is not the best way to fix this multiple locations issue, but for the moment fair enough !!
        int counter = 0;
        for (TrackDataHolder trackDataHolder : trackDataHolders) {
            // the matrix to use is either the raw coordinates matrix or the shifted matrix
            Double[][] coordinatesMatrix;
            if (useRawData) {
                coordinatesMatrix = trackDataHolder.getStepCentricDataHolder().getCoordinatesMatrix();
            } else {
                coordinatesMatrix = trackDataHolder.getStepCentricDataHolder().getShiftedCoordinatesMatrix();
            }
            XYSeries xySeries = JFreeChartUtils.generateXYSeries(coordinatesMatrix);
            Track track = trackDataHolder.getTrack();
            int trackNumber = track.getTrackNumber();
            Well well = track.getWellHasImagingType().getWell();
            String key;
            key = "track " + trackNumber + ", well " + well;
            // we check here if the collection already contains this key
            int seriesIndex = xYSeriesCollection.getSeriesIndex(key);
            if (seriesIndex == -1) {
                key = "track " + trackNumber + ", well " + well;
            } else {
                // should be able to get the number of the series already present !!
                key = "track " + trackNumber + ", well " + well + ", " + (counter + 1);
                counter++;
            }
            xySeries.setKey(key);
            xYSeriesCollection.addSeries(xySeries);
        }
        return xYSeriesCollection;
    }).forEach((xYSeriesCollection) -> {
        xYSeriesCollections.add(xYSeriesCollection);
    });
}

From source file:be.ugent.maf.cellmissy.gui.controller.analysis.singlecell.SingleCellAnalysisController.java

/**
 * Generate the actual data for the plot.
 *
 * @param useRawData/*from ww  w . j av a2  s.co m*/
 * @return
 */
private void generateDataForTrackPlot(boolean useRawData) {
    trackDataHolderList.stream().map((trackDataHolders) -> {
        XYSeriesCollection xYSeriesCollection = new XYSeriesCollection();
        // this is not the best way to fix this multiple locations issue, but for the moment fair enough !!
        int counter = 0;
        for (TrackDataHolder trackDataHolder : trackDataHolders) {
            // the matrix to use is either the raw coordinates matrix or the shifted matrix
            Double[][] coordinatesMatrix;
            if (useRawData) {
                coordinatesMatrix = trackDataHolder.getStepCentricDataHolder().getCoordinatesMatrix();
            } else {
                coordinatesMatrix = trackDataHolder.getStepCentricDataHolder().getShiftedCoordinatesMatrix();
            }
            XYSeries xySeries = JFreeChartUtils.generateXYSeries(coordinatesMatrix);
            Track track = trackDataHolder.getTrack();
            int trackNumber = track.getTrackNumber();
            Well well = track.getWellHasImagingType().getWell();
            String key;
            key = "track " + trackNumber + ", well " + well;
            // we check here if the collection already contains this key
            int seriesIndex = xYSeriesCollection.getSeriesIndex(key);
            if (seriesIndex == -1) {
                key = "track " + trackNumber + ", well " + well;
            } else {
                // should be able to get the number of the series already present !!
                key = "track " + trackNumber + ", well " + well + ", " + (counter + 1);
                counter++;
            }
            xySeries.setKey(key);
            xYSeriesCollection.addSeries(xySeries);
        }
        return xYSeriesCollection;
    }).forEach((xYSeriesCollection) -> {
        cellTracksData.add(xYSeriesCollection);
    });
}

From source file:com.mgmtp.perfload.loadprofiles.ui.AppFrame.java

private void updateGraph() {
    XYSeriesCollection dataset = new XYSeriesCollection();
    Collection<Stairs> loadProfileEnities = transform(
            filter(loadProfilesController.getTreeItems(), new IsStairsPredicate()),
            new LoadProfileEntityToStairsFunction());
    GraphPointsCalculator calc = new GraphPointsCalculator();
    Map<String, Set<Point>> pointsMap = calc.calculatePoints(loadProfileEnities);

    for (Entry<String, Set<Point>> entry : pointsMap.entrySet()) {
        final XYSeries series = new XYSeries(entry.getKey());
        for (Point point : entry.getValue()) {
            series.add(point.getX(), point.getY());
        }/*from w w  w  . j a  v  a  2  s  . co  m*/
        dataset.addSeries(series);
    }

    String name = txtName.getText();
    chart = ChartFactory.createXYLineChart(name, "t (min)", "Executions (1/h)", dataset,
            PlotOrientation.VERTICAL, true, true, false);

    XYPlot plot = chart.getXYPlot();

    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    plot.setRenderer(renderer);

    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
    domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    double maxX = 0;

    for (OneTime oneTime : getOneTimes()) {
        String key = oneTime.operation.getName();
        XYSeries series;
        try {
            // We need the series in order to retrieve paint and stroke
            series = dataset.getSeries(key);
        } catch (UnknownKeyException ex) {
            series = new XYSeries(key);
            dataset.addSeries(series);
        }

        int index = dataset.getSeriesIndex(key);
        BasicStroke stroke = (BasicStroke) renderer.lookupSeriesStroke(index);
        stroke = new BasicStroke(stroke.getLineWidth() + 1f, stroke.getEndCap(), stroke.getLineJoin(),
                stroke.getMiterLimit(), stroke.getDashArray(), stroke.getDashPhase());
        Color paint = (Color) renderer.lookupSeriesPaint(index);
        paint = new Color(paint.getRed(), paint.getGreen(), paint.getBlue(), 160);

        double height = rangeAxis.getUpperBound() * .05; // five percent of range
        double width = domainAxis.getUpperBound() * .01; // one percent of range
        double center = oneTime.t0;
        double left = center - width / 2;
        double right = center + width / 2;

        // We only add annotations for one times, but nothing to the series
        plot.addAnnotation(new XYPolygonAnnotation(new double[] { left, 0d, center, height, right, 0d }, stroke,
                paint, paint));

        maxX = max(maxX, right);
    }

    for (Marker marker : getMarkers()) {
        IntervalMarker im = new IntervalMarker(marker.left, marker.right);
        im.setLabel(marker.name);
        im.setLabelFont(new Font(getFont().getName(), getFont().getStyle(), getFont().getSize() + 1));
        im.setLabelAnchor(RectangleAnchor.TOP);
        im.setLabelOffset(new RectangleInsets(8d, 0d, 0d, 0d));
        im.setLabelPaint(Color.BLACK);
        im.setAlpha(.3f);
        im.setPaint(Color.WHITE);
        im.setOutlinePaint(Color.BLACK);
        im.setOutlineStroke(new BasicStroke(1.0f));
        plot.addDomainMarker(im, Layer.BACKGROUND);

        maxX = max(maxX, marker.right);
    }

    if (domainAxis.getUpperBound() < maxX) {
        domainAxis.setUpperBound(maxX * 1.05);
    }
    chartPanel.setChart(chart);
}