List of usage examples for org.jfree.data.xy XYIntervalSeries add
public void add(XYIntervalDataItem item, boolean notify)
From source file:com.att.aro.ui.view.diagnostictab.plot.GpsPlot.java
@Override public void populate(XYPlot plot, AROTraceData analysis) { if (analysis == null) { logger.info("analysis data is null"); return;//w w w. j av a 2s. c o m } gpsData.removeAllSeries(); locationData.removeAllSeries(); TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType(); if (resultType.equals(TraceResultType.TRACE_FILE)) { logger.info("didn't get analysis trace data!"); } else { try { image = ImageIO.read(GpsPlot.class.getResourceAsStream("/images/location.png")); image = ImageHelper.resize(image, 12, 12); } catch (IOException e) { e.printStackTrace(); } // create the GPS dataset... Map<GpsState, XYIntervalSeries> seriesMap = new EnumMap<GpsState, XYIntervalSeries>(GpsState.class); for (GpsState eventType : GpsState.values()) { XYIntervalSeries series = new XYIntervalSeries(eventType); seriesMap.put(eventType, series); gpsData.addSeries(series); } series = new XYSeries("location"); TraceDirectoryResult traceresult = (TraceDirectoryResult) analysis.getAnalyzerResult().getTraceresult(); listLocationEvent = (ArrayList<LocationEvent>) traceresult.getLocationEventInfos(); for (int idx = 0; idx < listLocationEvent.size(); idx++) { series.add(listLocationEvent.get(idx).getTimeRecorded(), 0.5); } locationData.addSeries(series); Iterator<GpsInfo> iter = analysis.getAnalyzerResult().getTraceresult().getGpsInfos().iterator(); if (iter.hasNext()) { while (iter.hasNext()) { GpsInfo gpsEvent = iter.next(); if (gpsEvent.getGpsState() != GpsState.GPS_DISABLED) { seriesMap.get(gpsEvent.getGpsState()).add(gpsEvent.getBeginTimeStamp(), gpsEvent.getBeginTimeStamp(), gpsEvent.getEndTimeStamp(), 0.5, 0, 1); } } } XYItemRenderer renderer = plot.getRenderer(0); // 0 - is the default renderer from XYItem renderer. // Looks like renderer is using the index descending order, so setting the index of the GPS background as 2 & location information index as 1. if (renderer == null) { renderer = plot.getRenderer(2); } renderer.setSeriesPaint(gpsData.indexOf(GpsState.GPS_STANDBY), Color.YELLOW); renderer.setSeriesPaint(gpsData.indexOf(GpsState.GPS_ACTIVE), new Color(34, 177, 76)); // Assign ToolTip to renderer renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { GpsState eventType = (GpsState) gpsData.getSeries(series).getKey(); return MessageFormat.format(ResourceBundleHelper.getMessageString("gps.tooltip"), dataset.getX(series, item), ResourceBundleHelper.getEnumString(eventType)); } }); plot.setRenderer(2, renderer); // Assign ToolTip to renderer LocationImageRenderer renderer_loc = new LocationImageRenderer(); plot.setRenderer(1, renderer_loc); renderer_loc.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { // Update tooltip of location data LocationEvent event = listLocationEvent.get(item); StringBuffer displayInfo = new StringBuffer( ResourceBundleHelper.getMessageString("location.tooltip.prefix")); displayInfo.append( MessageFormat.format(ResourceBundleHelper.getMessageString("location.tooltip.content"), event.getTimeRecorded(), event.getLatitude(), event.getLongitude(), event.getProvider(), event.getLocality())); displayInfo.append(ResourceBundleHelper.getMessageString("location.tooltip.suffix")); return displayInfo.toString(); } }); } plot.setDataset(2, gpsData); plot.setDataset(1, locationData); }
From source file:msi.gama.outputs.layers.charts.ChartJFreeChartOutputScatter.java
@SuppressWarnings("unchecked") @Override/*from www . j a v a2 s .com*/ protected void resetSerie(final IScope scope, final String serieid) { // TODO Auto-generated method stub final ChartDataSeries dataserie = chartdataset.getDataSeries(scope, serieid); final XYIntervalSeries serie = ((XYIntervalSeriesCollection) jfreedataset .get(IdPosition.get(dataserie.getSerieId(scope)))).getSeries(0); serie.clear(); final ArrayList<Double> XValues = dataserie.getXValues(scope); final ArrayList<Double> YValues = dataserie.getYValues(scope); final ArrayList<Double> SValues = dataserie.getSValues(scope); boolean secondaxis = false; if (dataserie.getMysource().getUseSecondYAxis(scope)) { secondaxis = true; this.setUseSecondYAxis(scope, true); } if (XValues.size() > 0) { final NumberAxis domainAxis = (NumberAxis) ((XYPlot) this.chart.getPlot()).getDomainAxis(); NumberAxis rangeAxis = (NumberAxis) ((XYPlot) this.chart.getPlot()).getRangeAxis(0); int ids = IdPosition.get(dataserie.getSerieId(scope)); if (secondaxis) { // rangeAxis = (NumberAxis) ((XYPlot) this.chart.getPlot()).getRangeAxis(1); // ((XYPlot) this.chart.getPlot()).setRangeAxis(IdPosition.get(dataserie.getSerieId(scope)),rangeAxis); // ((XYPlot) this.chart.getPlot()).setRangeAxis(IdPosition.get(dataserie.getSerieId(scope)),rangeAxis); ((XYPlot) this.chart.getPlot()).mapDatasetToRangeAxis(ids, 1); } else { // ((XYPlot) this.chart.getPlot()).setRangeAxis(IdPosition.get(dataserie.getSerieId(scope)),rangeAxis); ((XYPlot) this.chart.getPlot()).mapDatasetToRangeAxis(ids, 0); } domainAxis.setAutoRange(false); rangeAxis.setAutoRange(false); // domainAxis.setRange(Math.min((double)(Collections.min(XValues)),0), // Math.max(Collections.max(XValues),Collections.min(XValues)+1)); // rangeAxis.setRange(Math.min((double)(Collections.min(YValues)),0), // Math.max(Collections.max(YValues),Collections.min(YValues)+1)); XYIntervalDataItem newval; for (int i = 0; i < XValues.size(); i++) { if (dataserie.isUseYErrValues()) { if (dataserie.isUseXErrValues()) { newval = new XYIntervalDataItem(XValues.get(i), dataserie.xerrvaluesmin.get(i), dataserie.xerrvaluesmax.get(i), YValues.get(i), dataserie.yerrvaluesmin.get(i), dataserie.yerrvaluesmax.get(i)); // serie.add(XValues.get(i),dataserie.xerrvaluesmin.get(i),dataserie.xerrvaluesmax.get(i),YValues.get(i),dataserie.yerrvaluesmin.get(i),dataserie.yerrvaluesmax.get(i)); } else { newval = new XYIntervalDataItem(XValues.get(i), XValues.get(i), XValues.get(i), YValues.get(i), dataserie.yerrvaluesmin.get(i), dataserie.yerrvaluesmax.get(i)); // serie.add(XValues.get(i),XValues.get(i),XValues.get(i),YValues.get(i),dataserie.yerrvaluesmin.get(i),dataserie.yerrvaluesmax.get(i)); } } else { if (dataserie.isUseXErrValues()) { newval = new XYIntervalDataItem(XValues.get(i), dataserie.xerrvaluesmin.get(i), dataserie.xerrvaluesmax.get(i), YValues.get(i), YValues.get(i), YValues.get(i)); // serie.add(XValues.get(i),dataserie.xerrvaluesmin.get(i),dataserie.xerrvaluesmax.get(i),YValues.get(i),YValues.get(i),YValues.get(i)); } else { newval = new XYIntervalDataItem(XValues.get(i), XValues.get(i), XValues.get(i), YValues.get(i), YValues.get(i), YValues.get(i)); // serie.add(XValues.get(i),XValues.get(i),XValues.get(i),YValues.get(i),YValues.get(i),YValues.get(i)); } } serie.add(newval, false); } // domainAxis.setAutoRange(true); // rangeAxis.setAutoRange(true); } // resetAutorange(scope); if (SValues.size() > 0) { MarkerScale.remove(serieid); final ArrayList<Double> nscale = (ArrayList<Double>) SValues.clone(); MarkerScale.put(serieid, nscale); } this.resetRenderer(scope, serieid); }