List of usage examples for org.jfree.chart.plot XYPlot setDataset
public void setDataset(XYDataset dataset)
From source file:com.att.aro.ui.view.diagnostictab.plot.ScreenStatePlot.java
@Override public void populate(XYPlot plot, AROTraceData analysis) { if (analysis == null) { logger.info("analysis data is null"); } else {/*from ww w.j a va 2s. co m*/ screenData.removeAllSeries(); TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType(); if (resultType.equals(TraceResultType.TRACE_FILE)) { logger.info("didn't get analysis trace data!"); } else { TraceDirectoryResult traceresult = (TraceDirectoryResult) analysis.getAnalyzerResult() .getTraceresult(); XYIntervalSeries series = new XYIntervalSeries(ScreenState.SCREEN_ON); screenData.addSeries(series); // Populate the data set final Map<Double, ScreenStateInfo> dataMap = new HashMap<Double, ScreenStateInfo>(); Iterator<ScreenStateInfo> iter = traceresult.getScreenStateInfos().iterator(); if (iter.hasNext()) { while (iter.hasNext()) { ScreenStateInfo screenEvent = iter.next(); if (screenEvent.getScreenState() == ScreenState.SCREEN_ON) { series.add(screenEvent.getBeginTimeStamp(), screenEvent.getBeginTimeStamp(), screenEvent.getEndTimeStamp(), 0.5, 0, 1); dataMap.put(screenEvent.getBeginTimeStamp(), screenEvent); } } } // Assign ToolTip to renderer XYItemRenderer renderer = plot.getRenderer(); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { ScreenStateInfo si = dataMap.get(dataset.getXValue(series, item)); if (si != null) { StringBuffer displayInfo = new StringBuffer( ResourceBundleHelper.getMessageString("screenstate.tooltip.prefix")); int timeout = si.getScreenTimeout(); displayInfo.append(MessageFormat.format( ResourceBundleHelper.getMessageString("screenstate.tooltip.content"), ResourceBundleHelper.getEnumString(si.getScreenState()), si.getScreenBrightness(), timeout > 0 ? timeout : ResourceBundleHelper.getMessageString("screenstate.noTimeout"))); displayInfo.append(ResourceBundleHelper.getMessageString("screenstate.tooltip.suffix")); return displayInfo.toString(); } return null; } }); } } plot.setDataset(screenData); // return plot; }
From source file:com.att.aro.ui.view.diagnostictab.plot.RadioPlot.java
@Override public void populate(XYPlot plot, AROTraceData analysis) { XYSeries series = new XYSeries(0); if (analysis == null) { logger.info("no trace data here"); } else {//from w w w. jav a 2s. c o m TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType(); if (resultType.equals(TraceResultType.TRACE_FILE)) { logger.info("no trace folder data here"); } else { TraceDirectoryResult traceResult = (TraceDirectoryResult) analysis.getAnalyzerResult() .getTraceresult(); radioInfos = traceResult.getRadioInfos(); if (radioInfos.size() > 0 && analysis.getAnalyzerResult().getFilter().getTimeRange() != null) { RadioInfo first = radioInfos.get(0); series.add(analysis.getAnalyzerResult().getFilter().getTimeRange().getBeginTime(), first.getSignalStrength() < 0 ? first.getSignalStrength() : MIN_SIGNAL); } for (RadioInfo ri : radioInfos) { series.add(ri.getTimeStamp(), ri.getSignalStrength() < 0 ? ri.getSignalStrength() : MIN_SIGNAL); } if (radioInfos.size() > 0) { RadioInfo last = radioInfos.get(radioInfos.size() - 1); if (analysis.getAnalyzerResult().getFilter().getTimeRange() != null) { series.add(analysis.getAnalyzerResult().getFilter().getTimeRange().getEndTime(), last.getSignalStrength() < 0 ? last.getSignalStrength() : MIN_SIGNAL); } else { series.add(traceResult.getTraceDuration(), last.getSignalStrength() < 0 ? last.getSignalStrength() : MIN_SIGNAL); } } // Assign ToolTip to renderer XYItemRenderer renderer = plot.getRenderer(); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { RadioInfo ri = radioInfos.get(Math.min(item, radioInfos.size() - 1)); if (ri.getSignalStrength() < 0) { if (ri.isLte()) { return MessageFormat.format( ResourceBundleHelper.getMessageString("radio.tooltip.lte"), ri.getLteRsrp(), ri.getLteRsrq()); } else { return MessageFormat.format(ResourceBundleHelper.getMessageString("radio.tooltip"), ri.getSignalStrength()); } } else { return ResourceBundleHelper.getMessageString("radio.noSignal"); } } }); } } plot.setDataset(new XYSeriesCollection(series)); // return plot; }
From source file:com.att.aro.main.GraphPanel.java
/** * Adds CPU data into plot./*from ww w .j av a 2 s .c o m*/ * * @param plot * CPU data are added to plot * @param analysis * Contains CPU data */ private static void populateCpuPlot(XYPlot plot, TraceData.Analysis analysis) { logger.fine("Starting populateCpuPlot()"); if (analysis != null) { final CpuActivityList cpuAList = analysis.getCpuActivityList(); boolean filterByTime = cpuAList.isFilterByTime(); double beginTime = 0; double endTime = 0; if (filterByTime) { beginTime = cpuAList.getBeginTraceTime(); endTime = cpuAList.getEndTraceTime(); logger.log(Level.FINE, "begin: {0} end time: {1}", new Object[] { beginTime, endTime }); } final List<CpuActivity> cpuData = cpuAList.getCpuActivityList(); XYSeries series = new XYSeries(0); logger.log(Level.FINE, "Size of CPU data: " + cpuData.size()); if (cpuData.size() > 0) { for (CpuActivity cpu : cpuData) { if (filterByTime) { logger.log(Level.FINE, "timestamp: {0}", cpu.getTimeStamp()); if (cpu.getTimeStamp() >= beginTime && cpu.getTimeStamp() <= endTime) { logger.log(Level.FINE, "CPU usage: {0}", cpu.getCpuUsageTotalFiltered()); series.add(cpu.getTimeStamp(), cpu.getCpuUsageTotalFiltered()); } } else { logger.log(Level.FINE, "CPU usage: {0}", cpu.getCpuUsageTotalFiltered()); series.add(cpu.getTimeStamp(), cpu.getCpuUsageTotalFiltered()); } } } // Assign ToolTip to renderer XYItemRenderer renderer = plot.getRenderer(); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { return GraphPanel.generateToolTip(cpuAList, cpuData, item); } }); plot.setDataset(new XYSeriesCollection(series)); } }
From source file:com.att.aro.diagnostics.GraphPanel.java
private static void populateUserEventPlot(XYPlot plot, TraceData.Analysis analysis) { final XYIntervalSeriesCollection userInputData = new XYIntervalSeriesCollection(); if (analysis != null) { // create the dataset... Map<UserEvent.UserEventType, XYIntervalSeries> seriesMap = new EnumMap<UserEvent.UserEventType, XYIntervalSeries>( UserEvent.UserEventType.class); for (UserEvent.UserEventType eventType : UserEvent.UserEventType.values()) { XYIntervalSeries series = new XYIntervalSeries(eventType); seriesMap.put(eventType, series); userInputData.addSeries(series); }/*from w w w . j ava2s . c o m*/ // Populate the data set for (UserEvent event : analysis.getUserEvents()) { seriesMap.get(event.getEventType()).add(event.getPressTime(), event.getPressTime(), event.getReleaseTime(), 0.5, 0, 1); } // Assign ToolTip to renderer XYItemRenderer renderer = plot.getRenderer(); renderer.setSeriesPaint(userInputData.indexOf(UserEventType.SCREEN_LANDSCAPE), Color.BLUE); renderer.setSeriesPaint(userInputData.indexOf(UserEventType.SCREEN_PORTRAIT), Color.BLUE); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { UserEvent.UserEventType eventType = (UserEvent.UserEventType) userInputData.getSeries(series) .getKey(); return ResourceBundleManager.getEnumString(eventType); } }); } plot.setDataset(userInputData); }
From source file:com.att.aro.diagnostics.GraphPanel.java
private static void populateGpsPlot(XYPlot plot, TraceData.Analysis analysis) { final XYIntervalSeriesCollection gpsData = new XYIntervalSeriesCollection(); if (analysis != null) { // 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);//www . j a v a 2s . co m } Iterator<GpsInfo> iter = analysis.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(); 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(rb.getString("gps.tooltip"), dataset.getX(series, item), ResourceBundleManager.getEnumString(eventType)); } }); } plot.setDataset(gpsData); }
From source file:com.att.aro.diagnostics.GraphPanel.java
private static void populateThroughputPlot(XYPlot plot, TraceData.Analysis analysis) { XYSeries series = new XYSeries(0); if (analysis != null) { // Get packet iterators List<PacketInfo> packets = analysis.getPackets(); final double maxTS = analysis.getTraceData().getTraceDuration(); final List<String> tooltipList = new ArrayList<String>(1000); Double zeroTime = null;/* w ww .jav a2s. com*/ double lastTime = 0.0; for (Throughput t : Throughput.calculateThroughput(0.0, maxTS, analysis.getProfile().getThroughputWindow(), packets)) { double time = t.getTime(); double kbps = t.getKbps(); if (kbps != 0.0) { if (zeroTime != null && zeroTime.doubleValue() != lastTime) { series.add(lastTime, 0.0); tooltipList.add(MessageFormat.format(THROUGHPUT_TOOLTIP, 0.0)); } // Add slot to data set series.add(time, kbps); tooltipList.add(MessageFormat.format(THROUGHPUT_TOOLTIP, kbps)); zeroTime = null; } else { if (zeroTime == null) { // Add slot to data set series.add(time, kbps); tooltipList.add(MessageFormat.format(THROUGHPUT_TOOLTIP, kbps)); zeroTime = Double.valueOf(time); } } lastTime = time; } plot.getRenderer().setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { // Tooltip displays throughput value return tooltipList.get(item); } }); } plot.setDataset(new XYSeriesCollection(series)); }
From source file:com.att.aro.diagnostics.GraphPanel.java
private static void populateNetworkTyesPlot(XYPlot plot, TraceData.Analysis analysis) { if (analysis != null) { final XYIntervalSeriesCollection networkDataSeries = new XYIntervalSeriesCollection(); final Map<NetworkType, XYIntervalSeries> seriesMap = new EnumMap<NetworkType, XYIntervalSeries>( NetworkType.class); createDataSeriesForAllNetworkTypes(seriesMap, networkDataSeries); Iterator<NetworkBearerTypeInfo> iter = analysis.getNetworTypeInfos().iterator(); if (iter.hasNext()) { while (iter.hasNext()) { NetworkBearerTypeInfo networkInfo = iter.next(); if (networkInfo.getNetworkType() != NetworkType.none) { seriesMap.get(networkInfo.getNetworkType()).add(networkInfo.getBeginTimestamp(), networkInfo.getBeginTimestamp(), networkInfo.getEndTimestamp(), 0.5, 0, 1); }/*from w ww. j ava 2 s .c o m*/ } } else { NetworkType nt = analysis.getTraceData().getNetworkType(); if (nt != null && nt != NetworkType.none) { seriesMap.get(nt).add(0, 0, analysis.getTraceData().getTraceDuration(), 0.5, 0, 1); } } XYItemRenderer renderer = plot.getRenderer(); setRenderingColorForDataSeries(renderer, networkDataSeries); // Assign ToolTip to renderer renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { NetworkType networkType = (NetworkType) networkDataSeries.getSeries(series).getKey(); return MessageFormat.format(rb.getString("network.tooltip"), dataset.getX(series, item), ResourceBundleManager.getEnumString(networkType)); } }); plot.setDataset(networkDataSeries); } else { plot.setDataset(new XYIntervalSeriesCollection()); } }
From source file:com.att.aro.diagnostics.GraphPanel.java
/** * Adds CPU data into plot.//from w w w. j a v a2 s . c o m * * @param plot * CPU data are added to plot * @param analysis * Contains CPU data */ private static void populateCpuPlot(XYPlot plot, TraceData.Analysis analysis) { logger.fine("Starting populateCpuPlot()"); XYSeries series = new XYSeries(0); if (analysis != null) { final CpuActivityList cpuAList = analysis.getCpuActivityList(); boolean filterByTime = cpuAList.isFilterByTime(); double beginTime = 0; double endTime = 0; if (filterByTime) { beginTime = cpuAList.getBeginTraceTime(); endTime = cpuAList.getEndTraceTime(); logger.log(Level.FINE, "begin: {0} end time: {1}", new Object[] { beginTime, endTime }); } final List<CpuActivity> cpuData = cpuAList.getCpuActivityList(); logger.log(Level.FINE, "Size of CPU data: " + cpuData.size()); if (cpuData.size() > 0) { for (CpuActivity cpu : cpuData) { if (filterByTime) { logger.log(Level.FINE, "timestamp: {0}", cpu.getTimeStamp()); if (cpu.getTimeStamp() >= beginTime && cpu.getTimeStamp() <= endTime) { logger.log(Level.FINE, "CPU usage: {0}", cpu.getCpuUsageTotalFiltered()); series.add(cpu.getTimeStamp(), cpu.getCpuUsageTotalFiltered()); } } else { logger.log(Level.FINE, "CPU usage: {0}", cpu.getCpuUsageTotalFiltered()); series.add(cpu.getTimeStamp(), cpu.getCpuUsageTotalFiltered()); } } } // Assign ToolTip to renderer XYItemRenderer renderer = plot.getRenderer(); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { return GraphPanel.generateToolTip(cpuAList, cpuData, item); } }); } plot.setDataset(new XYSeriesCollection(series)); }
From source file:utils.ChartUtils.java
/** * Update XY chart/*from w ww . ja v a 2 s .c o m*/ * * @param plot ChartPanel Plot * @param sortedArray Sorted array of values */ public static void updateXYChart(ChartPanel plot, double[] sortedArray) { XYPlot xyplot = plot.getChart().getXYPlot(); double min = sortedArray[0]; double max = sortedArray[sortedArray.length - 1]; double median = Utils.getMedian(sortedArray); double q1 = Utils.getQ1(sortedArray); double q3 = Utils.getQ3(sortedArray); XYTextAnnotation annotation; //min-lowlimit horizontal XYSeries serie15 = new XYSeries("15"); serie15.add(min, 0.5); //max-toplimit horizontal XYSeries serie16 = new XYSeries("16"); serie16.add(max, 0.5); //min vertical XYSeries serie1 = new XYSeries("0"); serie1.add(min, 0.45); serie1.add(min, 0.55); annotation = new XYTextAnnotation("Min", min, 0.40); annotation.setFont(new Font("SansSerif", Font.PLAIN, 11)); xyplot.addAnnotation(annotation); //min-q1 horizontal XYSeries serie2 = new XYSeries("1"); serie2.add(min, 0.5); serie2.add(q1, 0.5); //q1 vertical XYSeries serie3 = new XYSeries("2"); serie3.add(q1, 0.1); serie3.add(q1, 0.9); annotation = new XYTextAnnotation("Q1", q1, 0.08); annotation.setFont(new Font("SansSerif", Font.PLAIN, 11)); xyplot.addAnnotation(annotation); // median XYSeries serie_mediana = new XYSeries("11"); serie_mediana.add(median, 0.1); serie_mediana.add(median, 0.9); annotation = new XYTextAnnotation("Median", median, 0.04); annotation.setFont(new Font("SansSerif", Font.PLAIN, 11)); xyplot.addAnnotation(annotation); //q1-q3 horizontal sup XYSeries serie4 = new XYSeries("3"); serie4.add(q1, 0.9); serie4.add(q3, 0.9); //q1-q3 horizontal inf XYSeries serie5 = new XYSeries("4"); serie5.add(q1, 0.1); serie5.add(q3, 0.1); //q3 vertical XYSeries serie6 = new XYSeries("5"); serie6.add(q3, 0.1); serie6.add(q3, 0.9); annotation = new XYTextAnnotation("Q3", q3, 0.08); annotation.setFont(new Font("SansSerif", Font.PLAIN, 11)); xyplot.addAnnotation(annotation); //q3-max horizontal XYSeries serie7 = new XYSeries("6"); serie7.add(q3, 0.5); serie7.add(max, 0.5); //max vertical XYSeries serie8 = new XYSeries("7"); serie8.add(max, 0.45); serie8.add(max, 0.55); annotation = new XYTextAnnotation("Max", max, 0.4); annotation.setFont(new Font("SansSerif", Font.PLAIN, 11)); xyplot.addAnnotation(annotation); XYSeriesCollection xyseriescollection = new XYSeriesCollection(); xyseriescollection.addSeries(serie1); xyseriescollection.addSeries(serie2); xyseriescollection.addSeries(serie3); xyseriescollection.addSeries(serie4); xyseriescollection.addSeries(serie5); xyseriescollection.addSeries(serie6); xyseriescollection.addSeries(serie7); xyseriescollection.addSeries(serie8); xyseriescollection.addSeries(serie15); xyseriescollection.addSeries(serie16); xyseriescollection.addSeries(serie_mediana); xyplot.getRenderer().setSeriesPaint(9, Color.black); xyplot.getRenderer().setSeriesPaint(10, Color.black); xyplot.getRenderer().setSeriesPaint(0, Color.black); xyplot.getRenderer().setSeriesPaint(1, Color.black); xyplot.getRenderer().setSeriesPaint(2, Color.black); xyplot.getRenderer().setSeriesPaint(3, Color.black); xyplot.getRenderer().setSeriesPaint(4, Color.black); xyplot.getRenderer().setSeriesPaint(5, Color.black); xyplot.getRenderer().setSeriesPaint(6, Color.black); xyplot.getRenderer().setSeriesPaint(7, Color.black); xyplot.getRenderer().setSeriesPaint(8, Color.black); xyplot.getRenderer().setSeriesPaint(9, Color.black); xyplot.getRenderer().setSeriesPaint(10, Color.black); xyplot.getRenderer().setSeriesPaint(11, Color.black); xyplot.getRenderer().setSeriesPaint(12, Color.black); xyplot.getRenderer().setSeriesPaint(13, Color.black); //add dataset xyplot.setDataset(xyseriescollection); // add a second dataset and renderer... XYSeriesCollection anotherserie = new XYSeriesCollection(); XYSeries serie_point = new XYSeries("21"); double[] yValue = { 0.47, 0.49, 0.51, 0.53 }; for (int i = 0, j = 0; i < sortedArray.length; i++, j++) { if (j % 4 == 0) { j = 0; } serie_point.add(sortedArray[i], yValue[j]); } anotherserie.addSeries(serie_point); XYLineAndShapeRenderer renderer1 = new XYLineAndShapeRenderer(false, true); renderer1.setSeriesPaint(0, Color.lightGray); xyplot.setDataset(1, anotherserie); xyplot.setRenderer(1, renderer1); }
From source file:com.att.aro.diagnostics.GraphPanel.java
private static void populateBatteryPlot(XYPlot plot, TraceData.Analysis analysis) { XYSeries series = new XYSeries(0); if (analysis != null) { final List<BatteryInfo> batteryInfos = analysis.getBatteryInfos(); if (batteryInfos.size() > 0 && analysis.getFilter().getTimeRange() != null) { BatteryInfo first = batteryInfos.get(0); series.add(analysis.getFilter().getTimeRange().getBeginTime(), first.getBatteryLevel()); }/*from ww w .jav a 2s .co m*/ for (BatteryInfo bi : batteryInfos) { series.add(bi.getBatteryTimeStamp(), bi.getBatteryLevel()); } if (batteryInfos.size() > 0) { BatteryInfo last = batteryInfos.get(batteryInfos.size() - 1); if (analysis.getFilter().getTimeRange() != null) { series.add(analysis.getFilter().getTimeRange().getEndTime(), last.getBatteryLevel()); } else { series.add(analysis.getTraceData().getTraceDuration(), last.getBatteryLevel()); } } XYItemRenderer renderer = plot.getRenderer(); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { BatteryInfo bi = batteryInfos.get(Math.min(item, batteryInfos.size() - 1)); StringBuffer displayInfo = new StringBuffer(rb.getString("battery.tooltip.prefix")); displayInfo.append(MessageFormat.format(rb.getString("battery.tooltip.content"), bi.getBatteryLevel(), bi.getBatteryTemp(), bi.isBatteryState() ? rb.getString("battery.tooltip.connected") : rb.getString("battery.tooltip.disconnected"))); displayInfo.append(rb.getString("battery.tooltip.suffix")); return displayInfo.toString(); } }); } plot.setDataset(new XYSeriesCollection(series)); }