List of usage examples for org.jfree.data.xy XYSeriesCollection getSeriesIndex
public int getSeriesIndex(Comparable key)
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); }