List of usage examples for org.jfree.data Range Range
public Range(double lower, double upper)
From source file:net.sf.mzmine.chartbasics.ChartLogicsFX.java
/** * Zoom in (negative yzoom) or zoom out of range axis. * //from ww w .j a v a 2 s . c o m * @param myChart * @param yzoom percentage zoom factor * @param holdLowerBound if true only the upper bound will be zoomed */ public static void zoomRangeAxis(ChartViewer myChart, double yzoom, boolean holdLowerBound) { XYPlot plot = (XYPlot) myChart.getChart().getPlot(); ValueAxis rangeAxis = plot.getRangeAxis(); double lower = rangeAxis.getLowerBound(); double upper = rangeAxis.getUpperBound(); double dist = upper - lower; if (holdLowerBound) { upper += dist * yzoom; } else { lower -= dist * yzoom / 2; upper += dist * yzoom / 2; } if (lower < upper) { Range range = new Range(lower, upper); setZoomAxis(rangeAxis, keepRangeWithinAutoBounds(rangeAxis, range)); } }
From source file:asl.util.PlotMaker.java
public void plotSpecAmp(double freq[], double[] amp, double[] phase, String plotString) { // plotTitle = "2012074.IU_ANMO.00-BHZ " + plotString final String plotTitle = String.format("%04d%03d.%s.%s %s", date.get(Calendar.YEAR), date.get(Calendar.DAY_OF_YEAR), station, channel, plotString); // plot filename = "2012074.IU_ANMO.00-BHZ" + plotString + ".png" final String pngName = String.format("%s/%04d%03d.%s.%s.%s.png", outputDir, date.get(Calendar.YEAR), date.get(Calendar.DAY_OF_YEAR), station, channel, plotString); File outputFile = new File(pngName); // Check that we will be able to output the file without problems and if not --> return if (!checkFileOut(outputFile)) { System.out.format("== plotSpecAmp: request to output plot=[%s] but we are unable to create it " + " --> skip plot\n", pngName); return;//from ww w .jav a 2s . c o m } final XYSeries series1 = new XYSeries("Amplitude"); final XYSeries series2 = new XYSeries("Phase"); double maxdB = 0.; for (int k = 0; k < freq.length; k++) { double dB = 20. * Math.log10(amp[k]); series1.add(freq[k], dB); series2.add(freq[k], phase[k]); if (dB > maxdB) { maxdB = dB; } } //final XYItemRenderer renderer = new StandardXYItemRenderer(); final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); Rectangle rectangle = new Rectangle(3, 3); renderer.setSeriesShape(0, rectangle); //renderer.setSeriesShapesVisible(0, true); renderer.setSeriesShapesVisible(0, false); renderer.setSeriesLinesVisible(0, true); renderer.setSeriesShape(1, rectangle); renderer.setSeriesShapesVisible(1, true); renderer.setSeriesLinesVisible(1, false); Paint[] paints = new Paint[] { Color.red, Color.blue }; renderer.setSeriesPaint(0, paints[0]); //renderer.setSeriesPaint(1, paints[1]); final XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(); renderer2.setSeriesPaint(0, paints[1]); renderer2.setSeriesShapesVisible(0, false); renderer2.setSeriesLinesVisible(0, true); // Stroke is part of Java Swing ... //renderer2.setBaseStroke( new Stroke( ... ) ); double ymax; if (maxdB < 10) { ymax = 10.; } else { ymax = maxdB + 2; ; } final NumberAxis verticalAxis = new NumberAxis("Spec Amp (dB)"); verticalAxis.setRange(new Range(-40, ymax)); verticalAxis.setTickUnit(new NumberTickUnit(5)); //final LogarithmicAxis verticalAxis = new LogarithmicAxis("Amplitude Response"); //verticalAxis.setRange( new Range(0.01 , 10) ); final LogarithmicAxis horizontalAxis = new LogarithmicAxis("Frequency (Hz)"); //horizontalAxis.setRange( new Range(0.0001 , 100.5) ); horizontalAxis.setRange(new Range(0.00009, 110)); final XYSeriesCollection seriesCollection = new XYSeriesCollection(); seriesCollection.addSeries(series1); final XYPlot xyplot = new XYPlot((XYDataset) seriesCollection, null, verticalAxis, renderer); //final XYPlot xyplot = new XYPlot((XYDataset)seriesCollection, horizontalAxis, verticalAxis, renderer); xyplot.setDomainGridlinesVisible(true); xyplot.setRangeGridlinesVisible(true); xyplot.setRangeGridlinePaint(Color.black); xyplot.setDomainGridlinePaint(Color.black); final NumberAxis phaseAxis = new NumberAxis("Phase (Deg)"); phaseAxis.setRange(new Range(-180, 180)); phaseAxis.setTickUnit(new NumberTickUnit(30)); final XYSeriesCollection seriesCollection2 = new XYSeriesCollection(); seriesCollection2.addSeries(series2); final XYPlot xyplot2 = new XYPlot((XYDataset) seriesCollection2, null, phaseAxis, renderer2); //CombinedXYPlot combinedPlot = new CombinedXYPlot( horizontalAxis, CombinedXYPlot.VERTICAL ); CombinedDomainXYPlot combinedPlot = new CombinedDomainXYPlot(horizontalAxis); combinedPlot.add(xyplot, 1); combinedPlot.add(xyplot2, 1); combinedPlot.setGap(15.); //final JFreeChart chart = new JFreeChart(xyplot); final JFreeChart chart = new JFreeChart(combinedPlot); chart.setTitle(new TextTitle(plotTitle)); // Here we need to see if test dir exists and create it if necessary ... try { //ChartUtilities.saveChartAsJPEG(new File("chart.jpg"), chart, 500, 300); //ChartUtilities.saveChartAsPNG(outputFile, chart, 500, 300); ChartUtilities.saveChartAsPNG(outputFile, chart, 1000, 800); } catch (IOException e) { System.err.println("Problem occurred creating chart."); } }
From source file:org.jfree.data.time.TimeSeriesCollection.java
/** * Returns the bounds for the y-values in the dataset. * /*from w w w .jav a 2 s . c om*/ * @param includeInterval ignored for this dataset. * * @return The range of value in the dataset (possibly <code>null</code>). * * @since 1.0.15 */ public Range getRangeBounds(boolean includeInterval) { Range result = null; Iterator iterator = this.data.iterator(); while (iterator.hasNext()) { TimeSeries series = (TimeSeries) iterator.next(); Range r = new Range(series.getMinY(), series.getMaxY()); result = Range.combineIgnoringNaN(result, r); } return result; }
From source file:logdruid.ui.chart.GraphPanel.java
public void load(JPanel panel_2) { startDateJSpinner = (JSpinner) panel_2.getComponent(2); endDateJSPinner = (JSpinner) panel_2.getComponent(3); // scrollPane.setV panel.removeAll();/* w w w. ja v a2s . c om*/ Dimension panelSize = this.getSize(); add(scrollPane, BorderLayout.CENTER); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); // scrollPane.set trying to replace scroll where it was JCheckBox relativeCheckBox = (JCheckBox) panel_2.getComponent(5); estimatedTime = System.currentTimeMillis() - startTime; logger.info("gathering time: " + estimatedTime); startTime = System.currentTimeMillis(); // Map<Source, Map<String, MineResult>> Map<Source, Map<String, MineResult>> treeMap = new TreeMap<Source, Map<String, MineResult>>( mineResultSet.mineResults); Iterator mineResultSetIterator = treeMap.entrySet().iterator(); int ite = 0; logger.debug("mineResultSet size: " + mineResultSet.mineResults.size()); while (mineResultSetIterator.hasNext()) { final Map.Entry pairs = (Map.Entry) mineResultSetIterator.next(); logger.debug("mineResultSet key/source: " + ((Source) pairs.getKey()).getSourceName()); JCheckBox checkBox = (JCheckBox) panel_1.getComponent(ite++); logger.debug("checkbox: " + checkBox.getText() + ", " + checkBox.isSelected()); if (checkBox.isSelected()) { Map mrArrayList = (Map<String, MineResult>) pairs.getValue(); ArrayList<String> mineResultGroup = new ArrayList<String>(); Set<String> mrss = mrArrayList.keySet(); mineResultGroup.addAll(mrss); Collections.sort(mineResultGroup, new AlphanumComparator()); Iterator mrArrayListIterator = mineResultGroup.iterator(); while (mrArrayListIterator.hasNext()) { String key = (String) mrArrayListIterator.next(); logger.debug(key); final MineResult mr = (MineResult) mrArrayList.get(key); Map<String, ExtendedTimeSeries> statMap = mr.getStatTimeseriesMap(); Map<String, ExtendedTimeSeries> eventMap = mr.getEventTimeseriesMap(); // logger.info("mineResultSet hash size: " // +mr.getTimeseriesMap().size()); // logger.info("mineResultSet hash content: " + // mr.getStatTimeseriesMap()); logger.debug("mineResultSet mr.getStartDate(): " + mr.getStartDate() + " mineResultSet mr.getEndDate(): " + mr.getEndDate()); logger.debug("mineResultSet (Date)jsp.getValue(): " + (Date) startDateJSpinner.getValue()); logger.debug("mineResultSet (Date)jsp2.getValue(): " + (Date) endDateJSPinner.getValue()); if (mr.getStartDate() != null && mr.getEndDate() != null) { if ((mr.getStartDate().before((Date) endDateJSPinner.getValue())) && (mr.getEndDate().after((Date) startDateJSpinner.getValue()))) { ArrayList<String> mineResultGroup2 = new ArrayList<String>(); Set<String> mrss2 = statMap.keySet(); mineResultGroup2.addAll(mrss2); Collections.sort(mineResultGroup2, new AlphanumComparator()); Iterator statMapIterator = mineResultGroup2.iterator(); // Iterator statMapIterator = statMap.entrySet().iterator(); if (!statMap.entrySet().isEmpty() || !eventMap.entrySet().isEmpty()) { JPanel checkboxPanel = new JPanel(new WrapLayout()); checkboxPanel.setBackground(Color.white); int count = 1; chart = ChartFactory.createXYAreaChart(// Title mr.getSourceID() + " " + mr.getGroup(), // + null, // X-Axis // label null, // Y-Axis label null, // Dataset PlotOrientation.VERTICAL, false, // Show // legend true, // tooltips false // url ); TextTitle my_Chart_title = new TextTitle(mr.getSourceID() + " " + mr.getGroup(), new Font("Verdana", Font.BOLD, 17)); chart.setTitle(my_Chart_title); XYPlot plot = (XYPlot) chart.getPlot(); ValueAxis range = plot.getRangeAxis(); range.setVisible(false); final DateAxis domainAxis1 = new DateAxis(); domainAxis1.setTickLabelsVisible(true); // domainAxis1.setTickMarksVisible(true); logger.debug("getRange: " + domainAxis1.getRange()); if (relativeCheckBox.isSelected()) { domainAxis1.setRange((Date) startDateJSpinner.getValue(), (Date) endDateJSPinner.getValue()); } else { Date startDate = mr.getStartDate(); Date endDate = mr.getEndDate(); if (mr.getStartDate().before((Date) startDateJSpinner.getValue())) { startDate = (Date) startDateJSpinner.getValue(); logger.debug("setMinimumDate: " + (Date) startDateJSpinner.getValue()); } if (mr.getEndDate().after((Date) endDateJSPinner.getValue())) { endDate = (Date) endDateJSPinner.getValue(); logger.debug("setMaximumDate: " + (Date) endDateJSPinner.getValue()); } if (startDate.before(endDate)) { domainAxis1.setRange(startDate, endDate); } } XYToolTipGenerator tt1 = new XYToolTipGenerator() { public String generateToolTip(XYDataset dataset, int series, int item) { StringBuffer sb = new StringBuffer(); String htmlStr = "<html>"; Number x; FastDateFormat sdf = FastDateFormat.getInstance("dd-MMM-yyyy HH:mm:ss"); x = dataset.getX(series, item); sb.append(htmlStr); if (x != null) { sb.append("<p style='color:#000000;'>" + (sdf.format(x)) + "</p>"); sb.append("<p style='color:#000000;'>" + dataset.getSeriesKey(series).toString() + ": " + form.format(dataset.getYValue(0, item)) + "</p>"); if (mr.getFileLineForDate(new Date(x.longValue()), dataset.getSeriesKey(series).toString()) != null) { sb.append( "<p style='color:#0000FF;'>" + cd.sourceFileArrayListMap .get(pairs.getKey()).get(mr .getFileLineForDate( new Date(x.longValue()), dataset.getSeriesKey(series) .toString()) .getFileId()) .getFile().getName() + ":" + mr.getFileLineForDate(new Date(x.longValue()), dataset.getSeriesKey(series).toString()) .getLineNumber() + "</p>"); } } return sb.toString(); } }; while (statMapIterator.hasNext()) { TimeSeriesCollection dataset = new TimeSeriesCollection(); String me = (String) statMapIterator.next(); ExtendedTimeSeries ts = (ExtendedTimeSeries) statMap.get(me); // logger.info(((TimeSeries) // me.getValue()).getMaxY()); if (((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMaxY() > 0) dataset.addSeries(ts.getTimeSeries()); logger.debug("mineResultSet group: " + mr.getGroup() + ", key: " + me + " nb records: " + ((ExtendedTimeSeries) statMap.get(me)) .getTimeSeries().getItemCount()); logger.debug("(((TimeSeries) me.getValue()).getMaxY(): " + (((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMaxY())); logger.debug("(((TimeSeries) me.getValue()).getMinY(): " + (((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMinY())); XYPlot plot1 = chart.getXYPlot(); // LogarithmicAxis axis4 = new LogarithmicAxis(me.toString()); NumberAxis axis4 = new NumberAxis(me.toString()); axis4.setAutoRange(true); axis4.setAxisLineVisible(true); axis4.setAutoRangeIncludesZero(false); plot1.setDomainCrosshairVisible(true); plot1.setRangeCrosshairVisible(true); axis4.setRange(new Range( ((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMinY(), ((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMaxY())); axis4.setLabelPaint(colors[count]); axis4.setTickLabelPaint(colors[count]); plot1.setRangeAxis(count, axis4); final ValueAxis domainAxis = domainAxis1; domainAxis.setLowerMargin(0.0); domainAxis.setUpperMargin(0.0); plot1.setDomainAxis(domainAxis); plot1.setForegroundAlpha(0.5f); plot1.setDataset(count, dataset); plot1.mapDatasetToRangeAxis(count, count); final XYAreaRenderer renderer = new XYAreaRenderer(); // XYAreaRenderer2 // also // nice if ((((ExtendedTimeSeries) statMap.get(me)).getTimeSeries().getMaxY() - ((ExtendedTimeSeries) statMap.get(me)).getTimeSeries() .getMinY()) > 0) { // renderer.setToolTipGenerator(new // StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,new // FastDateFormat("d-MMM-yyyy HH:mm:ss"), // new DecimalFormat("#,##0.00"))); } renderer.setSeriesPaint(0, colors[count]); renderer.setSeriesVisible(0, true); renderer.setSeriesToolTipGenerator(0, tt1); plot1.setRenderer(count, renderer); int hits = 0; // ts.getStat()[1] int matchs = 0; if (((ExtendedTimeSeries) statMap.get(me)).getStat() != null) { hits = ((ExtendedTimeSeries) statMap.get(me)).getStat()[1]; // matchs= ((ExtendedTimeSeries) statMap.get(me)).getStat()[0]; } JCheckBox jcb = new JCheckBox(new VisibleAction(panel, checkboxPanel, axis4, me.toString() + "(" + hits + ")", 0)); Boolean selected = true; jcb.setSelected(true); jcb.setBackground(Color.white); jcb.setBorderPainted(true); jcb.setBorder(BorderFactory.createLineBorder(colors[count], 1, true)); jcb.setFont(new Font("Sans-serif", oldSmallFont.getStyle(), oldSmallFont.getSize())); checkboxPanel.add(jcb); count++; } Iterator eventMapIterator = eventMap.entrySet().iterator(); while (eventMapIterator.hasNext()) { // HistogramDataset histoDataSet=new HistogramDataset(); TimeSeriesCollection dataset = new TimeSeriesCollection(); Map.Entry me = (Map.Entry) eventMapIterator.next(); // if (dataset.getEndXValue(series, item)) if (((ExtendedTimeSeries) me.getValue()).getTimeSeries().getMaxY() > 0) dataset.addSeries(((ExtendedTimeSeries) me.getValue()).getTimeSeries()); logger.debug("mineResultSet group: " + mr.getGroup() + ", key: " + me.getKey() + " nb records: " + ((ExtendedTimeSeries) me.getValue()).getTimeSeries().getItemCount()); logger.debug("mineResultSet hash content: " + mr.getEventTimeseriesMap()); logger.debug("(((TimeSeries) me.getValue()).getMaxY(): " + (((ExtendedTimeSeries) me.getValue()).getTimeSeries().getMaxY())); logger.debug("(((TimeSeries) me.getValue()).getMinY(): " + (((ExtendedTimeSeries) me.getValue()).getTimeSeries().getMinY())); XYPlot plot2 = chart.getXYPlot(); // LogarithmicAxis axis4 = new LogarithmicAxis(me.toString()); NumberAxis axis4 = new NumberAxis(me.getKey().toString()); axis4.setAutoRange(true); // axis4.setInverted(true); axis4.setAxisLineVisible(true); axis4.setAutoRangeIncludesZero(true); // axis4.setRange(new Range(((TimeSeries) // axis4.setRange(new Range(((TimeSeries) // me.getValue()).getMinY(), ((TimeSeries) // me.getValue()).getMaxY())); axis4.setLabelPaint(colors[count]); axis4.setTickLabelPaint(colors[count]); plot2.setRangeAxis(count, axis4); final ValueAxis domainAxis = domainAxis1; // domainAxis.setLowerMargin(0.001); // domainAxis.setUpperMargin(0.0); plot2.setDomainCrosshairVisible(true); plot2.setRangeCrosshairVisible(true); //plot2.setRangeCrosshairLockedOnData(true); plot2.setDomainAxis(domainAxis); plot2.setForegroundAlpha(0.5f); plot2.setDataset(count, dataset); plot2.mapDatasetToRangeAxis(count, count); XYBarRenderer rend = new XYBarRenderer(); // XYErrorRenderer rend.setShadowVisible(false); rend.setDrawBarOutline(true); Stroke stroke = new BasicStroke(5); rend.setBaseStroke(stroke); final XYItemRenderer renderer = rend; renderer.setSeriesToolTipGenerator(0, tt1); // renderer.setItemLabelsVisible(true); renderer.setSeriesPaint(0, colors[count]); renderer.setSeriesVisible(0, true); plot2.setRenderer(count, renderer); int hits = 0; int matchs = 0; if (((ExtendedTimeSeries) me.getValue()).getStat() != null) { hits = ((ExtendedTimeSeries) me.getValue()).getStat()[1]; // matchs= ((ExtendedTimeSeries) me.getValue()).getStat()[0]; } JCheckBox jcb = new JCheckBox(new VisibleAction(panel, checkboxPanel, axis4, me.getKey().toString() + "(" + hits + ")", 0)); jcb.setSelected(true); jcb.setBackground(Color.white); jcb.setBorderPainted(true); jcb.setBorder(BorderFactory.createLineBorder(colors[count], 1, true)); jcb.setFont(new Font("Sans-serif", oldSmallFont.getStyle(), oldSmallFont.getSize())); checkboxPanel.add(jcb); count++; } JPanel pan = new JPanel(); pan.setLayout(new BorderLayout()); pan.setPreferredSize(new Dimension(600, Integer.parseInt((String) Preferences.getPreference("chartSize")))); // pan.setPreferredSize(panelSize); panel.add(pan); final ChartPanel cpanel = new ChartPanel(chart); cpanel.setMinimumDrawWidth(0); cpanel.setMinimumDrawHeight(0); cpanel.setMaximumDrawWidth(1920); cpanel.setMaximumDrawHeight(1200); // cpanel.setInitialDelay(0); cpanel.setDismissDelay(9999999); cpanel.setInitialDelay(50); cpanel.setReshowDelay(200); cpanel.setPreferredSize(new Dimension(600, 350)); // cpanel.restoreAutoBounds(); fix the tooltip // missing problem but then relative display is // broken panel.add(new JSeparator(SwingConstants.HORIZONTAL)); pan.add(cpanel, BorderLayout.CENTER); // checkboxPanel.setPreferredSize(new Dimension(600, // 0)); cpanel.addChartMouseListener(new ChartMouseListener() { public void chartMouseClicked(ChartMouseEvent chartmouseevent) { // chartmouseevent.getEntity(). ChartEntity entity = chartmouseevent.getEntity(); if (entity instanceof XYItemEntity) { XYItemEntity item = ((XYItemEntity) entity); if (item.getDataset() instanceof TimeSeriesCollection) { TimeSeriesCollection data = (TimeSeriesCollection) item .getDataset(); TimeSeries series = data.getSeries(item.getSeriesIndex()); TimeSeriesDataItem dataitem = series.getDataItem(item.getItem()); // logger.info(" Serie: "+series.getKey().toString() // + // " Period : "+dataitem.getPeriod().toString()); // mr.getFileForDate(new Date // (x.longValue()) ; int x = chartmouseevent.getTrigger().getX(); // logger.info(mr.getFileForDate(dataitem.getPeriod().getEnd())); int y = chartmouseevent.getTrigger().getY(); String myString = ""; if (dataitem.getPeriod() != null) { logger.info(dataitem.getPeriod().getEnd()); // myString = mr.getFileForDate(dataitem.getPeriod().getEnd()).toString(); String lineString = "" + mr.getFileLineForDate(dataitem.getPeriod().getEnd(), item.getDataset() .getSeriesKey(item.getSeriesIndex()) .toString()) .getLineNumber(); String fileString = cd.sourceFileArrayListMap .get(pairs.getKey()) .get(mr.getFileLineForDate( dataitem.getPeriod().getEnd(), item.getDataset() .getSeriesKey(item.getSeriesIndex()) .toString()) .getFileId()) .getFile().getAbsolutePath(); String command = Preferences.getPreference("editorCommand"); command = command.replace("$line", lineString); command = command.replace("$file", fileString); logger.info(command); Runtime rt = Runtime.getRuntime(); try { rt.exec(command); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } StringSelection stringSelection = new StringSelection( fileString); Clipboard clpbrd = Toolkit.getDefaultToolkit() .getSystemClipboard(); clpbrd.setContents(stringSelection, null); // cpanel.getGraphics().drawString("file name copied", x - 5, y - 5); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch // block e.printStackTrace(); } } // logger.info(mr.getFileForDate(dataitem.getPeriod().getStart())); } } } public void chartMouseMoved(ChartMouseEvent e) { } }); pan.add(checkboxPanel, BorderLayout.SOUTH); } } } else { logger.debug("mr dates null: " + mr.getGroup() + mr.getSourceID() + mr.getLogFiles()); } } } } // Map=miner.mine(sourceFiles,repo); estimatedTime = System.currentTimeMillis() - startTime; revalidate(); logger.info("display time: " + estimatedTime); }
From source file:com.att.aro.diagnostics.GraphPanel.java
/** * Initializes a new instance of the GraphPanel class. *///from w ww . j a v a 2 s.c o m public GraphPanel() { subplotMap.put(ChartPlotOptions.GPS, new GraphPanelPlotLabels(rb.getString("chart.gps"), createBarPlot(Color.gray), 1)); subplotMap.put(ChartPlotOptions.RADIO, new GraphPanelPlotLabels(rb.getString("chart.radio"), createRadioPlot(), 2)); subplotMap.put(ChartPlotOptions.BLUETOOTH, new GraphPanelPlotLabels(rb.getString("chart.bluetooth"), createBarPlot(Color.gray), 1)); subplotMap.put(ChartPlotOptions.CAMERA, new GraphPanelPlotLabels(rb.getString("chart.camera"), createBarPlot(Color.gray), 1)); subplotMap.put(ChartPlotOptions.SCREEN, new GraphPanelPlotLabels(rb.getString("chart.screen"), createBarPlot(new Color(34, 177, 76)), 1)); subplotMap.put(ChartPlotOptions.BATTERY, new GraphPanelPlotLabels(rb.getString("chart.battery"), createBatteryPlot(), 2)); subplotMap.put(ChartPlotOptions.WAKELOCK, new GraphPanelPlotLabels(rb.getString("chart.wakelock"), createWakelockStatePlot(), 1)); subplotMap.put(ChartPlotOptions.WIFI, new GraphPanelPlotLabels(rb.getString("chart.wifi"), createBarPlot(Color.gray), 1)); subplotMap.put(ChartPlotOptions.ALARM, new GraphPanelPlotLabels(rb.getString("chart.alarm"), createAlarmPlot(), 2)); subplotMap.put(ChartPlotOptions.NETWORK_TYPE, new GraphPanelPlotLabels(rb.getString("chart.networkType"), createBarPlot(Color.gray), 1)); subplotMap.put(ChartPlotOptions.THROUGHPUT, new GraphPanelPlotLabels(rb.getString("chart.throughput"), createThroughputPlot(), 2)); subplotMap.put(ChartPlotOptions.BURSTS, new GraphPanelPlotLabels(rb.getString("chart.bursts"), createBurstPlot(), 1)); subplotMap.put(ChartPlotOptions.USER_INPUT, new GraphPanelPlotLabels(rb.getString("chart.userInput"), createUserEventPlot(), 1)); subplotMap.put(ChartPlotOptions.RRC, new GraphPanelPlotLabels(rb.getString("chart.rrc"), createRrcPlot(), 1)); subplotMap.put(ChartPlotOptions.CPU, new GraphPanelPlotLabels(rb.getString("chart.cpu"), createCpuPlot(), 1)); this.pp = new PacketPlots(); subplotMap.put(ChartPlotOptions.UL_PACKETS, new GraphPanelPlotLabels(rb.getString("chart.ul"), pp.getUlPlot(), 1)); subplotMap.put(ChartPlotOptions.DL_PACKETS, new GraphPanelPlotLabels(rb.getString("chart.dl"), pp.getDlPlot(), 1)); this.axis = new NumberAxis(); this.axis.setStandardTickUnits(UNITS); this.axis.setRange(new Range(0, DEFAULT_TIMELINE)); this.axis.setLowerBound(0); this.axis.setAutoTickUnitSelection(true); this.axis.setTickMarkInsideLength(1); this.axis.setTickMarkOutsideLength(1); this.axis.setMinorTickMarksVisible(true); this.axis.setMinorTickMarkInsideLength(2f); this.axis.setMinorTickMarkOutsideLength(2f); this.axis.setTickMarkInsideLength(4f); this.axis.setTickMarkOutsideLength(4f); this.axisLabel = new JLabel(rb.getString("chart.timeline")); this.axisLabel.setHorizontalAlignment(SwingConstants.CENTER); this.setLayout(new BorderLayout()); this.setPreferredSize(new Dimension(200, 310)); this.add(getZoomSavePanel(), BorderLayout.EAST); this.add(getPane(), BorderLayout.CENTER); this.add(getLabelsPanel(), BorderLayout.WEST); setChartOptions(UserPreferences.getInstance().getChartPlotOptions()); }
From source file:net.sf.mzmine.chartbasics.ChartLogics.java
/** * Zoom in (negative zoom) or zoom out of axis. * //from w w w . j a v a 2 s. c o m * @param myChart * @param zoom percentage zoom factor * @param holdLowerBound if true only the upper bound will be zoomed */ public static void zoomAxis(ValueAxis axis, double zoom, boolean holdLowerBound) { double lower = axis.getLowerBound(); double upper = axis.getUpperBound(); double dist = upper - lower; if (holdLowerBound) { if (zoom == 0) return; upper += dist * zoom; } else { lower -= dist * zoom / 2; upper += dist * zoom / 2; } if (lower < upper) { logger.info("Set zoom:" + lower + ", " + upper + " (keep lower:" + holdLowerBound + ")"); Range range = new Range(lower, upper); setZoomAxis(axis, keepRangeWithinAutoBounds(axis, range)); } }
From source file:com.att.aro.main.GraphPanel.java
/** * Resets the chart labels, and the chart and axis information of the * GraphPanel when the specified trace data is loaded. The current instance * of the GraphPanel is preserved, along with the current zoom state. The * scroll bar is moved to position 0.// w w w.j a va 2s. co m * * @param analysis * - An Analysis object containing the new trace analysis data. */ public synchronized void resetChart(TraceData.Analysis analysis) { this.traceData = analysis != null ? analysis.getTraceData() : null; getSaveGraphButton().setEnabled(analysis != null); // Setting the initial value on the time axis to -0.01 as the first // packet time stamp in pcap analysis is always zero and hence the tool // tip does not get displayed. this.axis.setRange( new Range(-0.01, analysis != null ? analysis.getTraceData().getTraceDuration() : DEFAULT_TIMELINE)); setGraphView(0); for (Map.Entry<ChartPlotOptions, GraphPanelPlotLabels> entry : subplotMap.entrySet()) { switch (entry.getKey()) { case BATTERY: populateBatteryPlot(entry.getValue().getPlot(), analysis); break; case BLUETOOTH: populateBluetoothPlot(entry.getValue().getPlot(), analysis); break; case BURSTS: populateBurstPlot(entry.getValue().getPlot(), analysis); break; case CAMERA: populateCameraPlot(entry.getValue().getPlot(), analysis); break; case GPS: populateGpsPlot(entry.getValue().getPlot(), analysis); break; case NETWORK_TYPE: populateNetworkTyesPlot(entry.getValue().getPlot(), analysis); break; case RADIO: populateRadioPlot(entry.getValue().getPlot(), analysis); break; case RRC: populateRrcPlot(entry.getValue().getPlot(), analysis); break; case SCREEN: populateScreenStatePlot(entry.getValue().getPlot(), analysis); break; case THROUGHPUT: populateThroughputPlot(entry.getValue().getPlot(), analysis); break; case USER_INPUT: populateUserEventPlot(entry.getValue().getPlot(), analysis); break; case WIFI: populateWifiPlot(entry.getValue().getPlot(), analysis); break; case CPU: populateCpuPlot(entry.getValue().getPlot(), analysis); break; default: break; } } this.pp.populatePacketPlots(analysis); this.getZoomInButton().setEnabled(analysis != null); this.getZoomOutButton().setEnabled(analysis != null); this.getSaveGraphButton().setEnabled(analysis != null); }
From source file:net.sf.mzmine.chartbasics.ChartLogics.java
/** * Zoom in (negative zoom) or zoom out of axis. * /*ww w . j a v a2s .c o m*/ * @param myChart * @param zoom percentage zoom factor * @param start point on this range (first click/pressed event), used as center */ public static void zoomAxis(ValueAxis axis, double zoom, double start) { double lower = axis.getLowerBound(); double upper = axis.getUpperBound(); double dist = upper - lower; double f = (start - lower) / dist; lower -= dist * zoom * f; upper += dist * zoom * (1 - f); if (lower < upper) { Range range = new Range(lower, upper); setZoomAxis(axis, keepRangeWithinAutoBounds(axis, range)); } }
From source file:com.att.aro.ui.view.diagnostictab.GraphPanel.java
public void refresh(AROTraceData aroTraceData) { getSaveGraphButton().setEnabled(aroTraceData != null); if (combinedPlot != null) { setGraphView(combinedPlot.getDomainCrosshairValue(), true); } else {/*ww w. j a v a 2 s .co m*/ setGraphView(0, true); } setTraceData(aroTraceData); if (aroTraceData != null) { setAllPackets(aroTraceData.getAnalyzerResult().getTraceresult().getAllpackets()); setTraceDuration(aroTraceData.getAnalyzerResult().getTraceresult().getTraceDuration()); setAllTcpSessions(aroTraceData.getAnalyzerResult().getSessionlist().size());// list // length } else { setAllPackets(new LinkedList<PacketInfo>()); setTraceDuration(0); setAllTcpSessions(0); } if (aroTraceData != null && aroTraceData.getAnalyzerResult().getFilter() != null && aroTraceData.getAnalyzerResult().getFilter().getTimeRange() != null) { if (aroTraceData.getAnalyzerResult().getSessionlist().size() > 0 && aroTraceData.getAnalyzerResult().getFilter().getTimeRange().getBeginTime() < aroTraceData .getAnalyzerResult().getFilter().getTimeRange().getEndTime()) { getAxis().setRange( new Range(aroTraceData.getAnalyzerResult().getFilter().getTimeRange().getBeginTime(), aroTraceData != null ? aroTraceData.getAnalyzerResult().getFilter().getTimeRange().getEndTime() : DEFAULT_TIMELINE)); } else { getAxis().setRange(new Range(-0.01, 0)); } } else { if (getEndTime() > 0) { // greg story selected rows from UI if (aroTraceData != null) { getAxis().setRange(new Range(getStartTime(), getEndTime())); } setStartTime(0.0); // Reset times setEndTime(0.0); } else { getAxis().setRange(new Range(-0.01, aroTraceData != null ? aroTraceData.getAnalyzerResult().getTraceresult().getTraceDuration() : DEFAULT_TIMELINE)); } } if (aroTraceData != null && aroTraceData.getAnalyzerResult().getSessionlist().size() > 0) { for (Map.Entry<ChartPlotOptions, GraphPanelPlotLabels> entry : getSubplotMap().entrySet()) { switch (entry.getKey()) { case THROUGHPUT: if (throughput == null) { throughput = new ThroughputPlot(); } throughput.populate(entry.getValue().getPlot(), aroTraceData); break; case BURSTS: if (burstPlot == null) { burstPlot = new BurstPlot(); } // burstPlot = new BurstPlot(); burstPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case RRC: if (rrcPlot == null) { rrcPlot = new RrcPlot(); } rrcPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case USER_INPUT: if (eventPlot == null) { eventPlot = new UserEventPlot(); } eventPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case DL_PACKETS: if (dlPlot == null) { dlPlot = new DLPacketPlot(); } dlPlot.populate(entry.getValue().getPlot(), aroTraceData, true); break; case UL_PACKETS: if (upPlot == null) { upPlot = new DLPacketPlot(); } upPlot.populate(entry.getValue().getPlot(), aroTraceData, false); break; case ALARM: if (alarmPlot == null) { alarmPlot = new AlarmPlot(); } alarmPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case GPS: if (gpsPlot == null) { gpsPlot = new GpsPlot(); } gpsPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case RADIO: if (radioPlot == null) { radioPlot = new RadioPlot(); } radioPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case CPU: if (cpuPlot == null) { cpuPlot = new CpuPlot(); } cpuPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case SCREEN: if (ssPlot == null) { ssPlot = new ScreenStatePlot(); } ssPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case BATTERY: if (bPlot == null) { bPlot = new BatteryPlot(); } bPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case TEMPERATURE: if (tPlot == null) { tPlot = new TemperaturePlot(); } tPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case BLUETOOTH: if (bluetoothPlot == null) { bluetoothPlot = new BluetoothPlot(); } bluetoothPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case WIFI: if (wPlot == null) { wPlot = new WifiPlot(); } wPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case CAMERA: if (cPlot == null) { cPlot = new CameraPlot(); } cPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case NETWORK_TYPE: if (ntPlot == null) { ntPlot = new NetworkTypePlot(); } ntPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case WAKELOCK: if (wlPlot == null) { wlPlot = new WakeLockPlot(); } wlPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case ATTENUATION: if (attnrPlot == null) { attnrPlot = new AttenuatorPlot(); } attnrPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case SPEED_THROTTLE: if (stPlot == null) { stPlot = new SpeedThrottlePlot(); } stPlot.populate(entry.getValue().getPlot(), aroTraceData); break; case VIDEO_CHUNKS: if (vcPlot == null) { vcPlot = new VideoChunksPlot(); } XYPlot bufferOccupancyPlot = getSubplotMap().get(ChartPlotOptions.BUFFER_OCCUPANCY).getPlot(); XYPlot bufferTimePlot = getSubplotMap().get(ChartPlotOptions.BUFFER_TIME_OCCUPANCY).getPlot(); // videoChunkPlotDataItem = false; this.chunkInfo.clear(); vcPlot.setBufferOccupancyPlot(bufferOccupancyPlot); vcPlot.setBufferTimePlot(bufferTimePlot); // vcPlot.setFirstChunkPlayTime(0); AROManifest selectedManifest = null; int count = 0; VideoUsage videoUsage = aroTraceData.getAnalyzerResult().getVideoUsage(); if (videoUsage != null) { for (AROManifest manifest : videoUsage.getManifests()) { if (manifest != null && manifest.isSelected()) { selectedManifest = manifest; count++; } } if (count == 1 && selectedManifest != null && selectedManifest.getDelay() != 0) { VideoEvent firstSegment = (VideoEvent) selectedManifest.getVideoEventsBySegment() .toArray()[0]; Map<AROManifest, VideoEvent> firstSelectedSegments = null; if (vcPlot.getVideoChunkPlotterReference() != null && aroTraceData.getAnalyzerResult() .getVideoUsage().getChunkPlayTimeList() != null) { firstSelectedSegments = aroTraceData.getAnalyzerResult().getVideoUsage() .getFirstSelectedSegment(); } if (firstSelectedSegments != null) { for (AROManifest manifest : firstSelectedSegments.keySet()) { if (manifest.equals(selectedManifest)) { firstSegment = firstSelectedSegments.get(manifest); break; } } } else if (selectedManifest.getVideoFormat() == VideoFormat.MPEG4) { for (VideoEvent video : selectedManifest.getVideoEventsBySegment()) { if (video.getSegment() != 0) { firstSegment = video; break; } } } vcPlot.refreshPlot(getSubplotMap().get(ChartPlotOptions.VIDEO_CHUNKS).getPlot(), aroTraceData, selectedManifest.getDelay() + firstSegment.getEndTS(), firstSegment); } else { vcPlot.populate(entry.getValue().getPlot(), aroTraceData); } SliderDialogBox.segmentListChosen = new ArrayList<>(); } break; /* * case BUFFER_OCCUPANCY: if(boPlot==null){ boPlot = new * BufferOccupancyPlot(); } * boPlot.populate(entry.getValue().getPlot(),aroTraceData); * break; */ default: break; } } } getZoomInButton().setEnabled(aroTraceData != null); getZoomOutButton().setEnabled(aroTraceData != null); getSaveGraphButton().setEnabled(aroTraceData != null); getRefreshButton().setEnabled(false); // Greg Story if (aroTraceData != null) { parent.getDeviceNetworkProfilePanel().refresh(aroTraceData); // Greg // Story } }
From source file:org.gridchem.client.gui.panels.myccg.resource.HPCChartPanel.java
private void renderMeterChart(JFreeChart chart, LoadType loadType, ComputeBean hpc) { MeterPlot plot = (MeterPlot) chart.getPlot(); plot.setBackgroundPaint(Color.WHITE); plot.addInterval(//from w w w . j a v a 2 s. c o m new MeterInterval("High", new Range(85.0, 100.0), Color.RED, new BasicStroke(), Color.RED)); plot.addInterval(new MeterInterval("Low", new Range(0.0, 85.0))); plot.setDialOutlinePaint(Color.blue); plot.setNeedlePaint(Color.WHITE); plot.setDialBackgroundPaint(Color.BLACK); plot.setTickPaint(Color.WHITE); plot.setTickLabelsVisible(true); plot.setTickLabelPaint(Color.WHITE); if (loadType.equals(LoadType.DISK)) { plot.setUnits("% peak (" + hpc.getLoad().getDisk() + "GB/" + hpc.getTotalDisk() + "GB)"); } else if (loadType.equals(LoadType.CPU)) { plot.setUnits("% peak (" + hpc.getLoad().getCpu() + "/" + hpc.getTotalCpu() + ")"); } else if (loadType.equals(LoadType.QUEUE)) { plot.setUnits("% peak (" + hpc.getLoad().getJobsRunning() + "R/" + (hpc.getLoad().getJobsOther() + hpc.getLoad().getJobsQueued()) + ")O"); } else { plot.setUnits("% Relative to Max"); } }