List of usage examples for org.jfree.data.xy XYDataset getX
public Number getX(int series, int item);
From source file:playground.benjamin.scenarios.zurich.analysis.charts.BkChartWriter.java
public static void writeChartDataToFile(String filename, JFreeChart chart) { filename += ".txt"; try {/*from w ww.j av a 2 s.c o m*/ BufferedWriter writer = IOUtils.getBufferedWriter(filename); try { /*read "try" as if (plot instanceof XYPlot)*/ XYPlot xy = chart.getXYPlot(); String yAxisLabel = xy.getRangeAxis().getLabel(); String xAxisLabel = ""; if (xy.getDomainAxis() != null) { xAxisLabel = xy.getDomainAxis().getLabel(); } String header = xAxisLabel + "\t " + yAxisLabel; writer.write(header); writer.newLine(); for (int i = 0; i < xy.getDatasetCount(); i++) { XYDataset xyds = xy.getDataset(i); for (int seriesIndex = 0; seriesIndex < xyds.getSeriesCount(); seriesIndex++) { writer.newLine(); writer.write("Series " + "'" + xyds.getSeriesKey(seriesIndex).toString()); writer.write("'"); writer.newLine(); int items = xyds.getItemCount(seriesIndex); for (int itemsIndex = 0; itemsIndex < items; itemsIndex++) { Number xValue = xyds.getX(seriesIndex, itemsIndex); Number yValue = xyds.getY(seriesIndex, itemsIndex); writer.write(xValue.toString()); writer.write("\t"); writer.write(yValue.toString()); writer.newLine(); } } } System.out.println("Table written to : " + filename + "\n" + "=================================================="); } catch (ClassCastException e) { //else instanceof CategoryPlot log.info("caught class cast exception, trying to write CategoryPlot"); CategoryPlot cp = chart.getCategoryPlot(); String header = "CategoryRowKey \t CategoryColumnKey \t CategoryRowIndex \t CategoryColumnIndex \t Value"; writer.write(header); writer.newLine(); for (int i = 0; i < cp.getDatasetCount(); i++) { CategoryDataset cpds = cp.getDataset(i); for (int rowIndex = 0; rowIndex < cpds.getRowCount(); rowIndex++) { for (int columnIndex = 0; columnIndex < cpds.getColumnCount(); columnIndex++) { Number value = cpds.getValue(rowIndex, columnIndex); writer.write(cpds.getRowKey(rowIndex).toString()); writer.write("\t"); writer.write(cpds.getColumnKey(columnIndex).toString()); writer.write("\t"); writer.write(Integer.toString(rowIndex)); writer.write("\t"); writer.write(Integer.toString(columnIndex)); writer.write("\t"); writer.write(value.toString()); writer.newLine(); } } } } writer.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
From source file:net.sf.mzmine.chartbasics.HistogramChartFactory.java
/** * Adds a Gaussian curve to the plot// w w w .j av a 2 s .c o m * * @param plot * @param data the data * @param series the series index * @param gMin lower bound of Gaussian fit * @param gMax upper bound of Gaussian fit * @param sigDigits number of significant digits * @return */ public static double[] addGaussianFit(XYPlot plot, XYDataset data, int series, double gMin, double gMax, int sigDigits, boolean annotations) { double[] fit = gaussianFit(data, series, gMin, gMax); double minval = data.getX(series, 0).doubleValue(); double maxval = data.getX(series, data.getItemCount(series) - 1).doubleValue(); return addGaussianFit(plot, fit, minval, maxval, gMin, gMax, sigDigits, annotations); }
From source file:net.sf.mzmine.modules.visualization.spectra.renderers.SpectraItemLabelGenerator.java
/** * @see org.jfree.chart.labels.XYItemLabelGenerator#generateLabel(org.jfree.data.xy.XYDataset, * int, int)/* w w w . j a va2 s . c om*/ */ public String generateLabel(XYDataset dataset, int series, int item) { // X and Y values of current data point double originalX = dataset.getX(series, item).doubleValue(); double originalY = dataset.getY(series, item).doubleValue(); // Calculate data size of 1 screen pixel double xLength = (double) plot.getXYPlot().getDomainAxis().getRange().getLength(); double pixelX = xLength / plot.getWidth(); // Size of data set int itemCount = dataset.getItemCount(series); // Search for data points higher than this one in the interval // from limitLeft to limitRight double limitLeft = originalX - ((POINTS_RESERVE_X / 2) * pixelX); double limitRight = originalX + ((POINTS_RESERVE_X / 2) * pixelX); // Iterate data points to the left and right for (int i = 1; (item - i > 0) || (item + i < itemCount); i++) { // If we get out of the limit we can stop searching if ((item - i > 0) && (dataset.getXValue(series, item - i) < limitLeft) && ((item + i >= itemCount) || (dataset.getXValue(series, item + i) > limitRight))) break; if ((item + i < itemCount) && (dataset.getXValue(series, item + i) > limitRight) && ((item - i <= 0) || (dataset.getXValue(series, item - i) < limitLeft))) break; // If we find higher data point, bail out if ((item - i > 0) && (originalY <= dataset.getYValue(series, item - i))) return null; if ((item + i < itemCount) && (originalY <= dataset.getYValue(series, item + i))) return null; } // Create label String label = null; if (dataset instanceof ScanDataSet) { label = ((ScanDataSet) dataset).getAnnotation(item); } if (label == null) { double mzValue = dataset.getXValue(series, item); label = mzFormat.format(mzValue); } return label; }
From source file:com.att.aro.ui.view.diagnostictab.plot.CameraPlot.java
@Override public void populate(XYPlot plot, AROTraceData analysis) { XYIntervalSeriesCollection cameraData = new XYIntervalSeriesCollection(); if (analysis != null) { XYIntervalSeries series = new XYIntervalSeries(CameraState.CAMERA_ON); cameraData.addSeries(series);//from w w w .ja v a 2 s . c o m // Populate the data set Iterator<CameraInfo> iter = analysis.getAnalyzerResult().getTraceresult().getCameraInfos().iterator(); if (iter.hasNext()) { while (iter.hasNext()) { CameraInfo cameraEvent = iter.next(); if (cameraEvent.getCameraState() == CameraState.CAMERA_ON) { series.add(cameraEvent.getBeginTimeStamp(), cameraEvent.getBeginTimeStamp(), cameraEvent.getEndTimeStamp(), 0.5, 0, 1); } } } // Assign ToolTip to renderer XYItemRenderer renderer = plot.getRenderer(); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { return MessageFormat.format(ResourceBundleHelper.getMessageString("camera.tooltip"), dataset.getX(series, item), ResourceBundleHelper.getEnumString((Enum<?>) dataset.getSeriesKey(series))); } }); } plot.setDataset(cameraData); // return plot; }
From source file:net.sf.mzmine.modules.visualization.metamsecorrelate.visual.pseudospectra.PseudoSpectraItemLabelGenerator.java
/** * @see org.jfree.chart.labels.XYItemLabelGenerator#generateLabel(org.jfree.data.xy.XYDataset, * int, int)//from ww w. j a v a2 s .c o m */ public String generateLabel(XYDataset dataset, int series, int item) { // X and Y values of current data point double originalX = dataset.getX(series, item).doubleValue(); double originalY = dataset.getY(series, item).doubleValue(); // Calculate data size of 1 screen pixel double xLength = (double) plot.getChart().getXYPlot().getDomainAxis().getRange().getLength(); double pixelX = xLength / plot.getWidth(); // Size of data set int itemCount = dataset.getItemCount(series); // Search for data points higher than this one in the interval // from limitLeft to limitRight double limitLeft = originalX - ((POINTS_RESERVE_X / 2) * pixelX); double limitRight = originalX + ((POINTS_RESERVE_X / 2) * pixelX); // Iterate data points to the left and right for (int i = 1; (item - i > 0) || (item + i < itemCount); i++) { // If we get out of the limit we can stop searching if ((item - i > 0) && (dataset.getXValue(series, item - i) < limitLeft) && ((item + i >= itemCount) || (dataset.getXValue(series, item + i) > limitRight))) break; if ((item + i < itemCount) && (dataset.getXValue(series, item + i) > limitRight) && ((item - i <= 0) || (dataset.getXValue(series, item - i) < limitLeft))) break; // If we find higher data point, bail out if ((item - i > 0) && (originalY <= dataset.getYValue(series, item - i))) return null; if ((item + i < itemCount) && (originalY <= dataset.getYValue(series, item + i))) return null; } // Create label String label = null; if (dataset instanceof PseudoSpectrumDataSet) { double mzValue = dataset.getXValue(series, item); label = mzFormat.format(mzValue); String ann = ((PseudoSpectrumDataSet) dataset).getAnnotation(item); if (ann != null) label = label + "\n" + ann; return label; } if (label == null) { double mzValue = dataset.getXValue(series, item); label = mzFormat.format(mzValue); } return label; }
From source file:com.att.aro.ui.view.diagnostictab.plot.BufferOccupancyPlot.java
@Override public void populate(XYPlot plot, AROTraceData analysis) { if (analysis != null) { bufferFillDataCollection.removeAllSeries(); seriesBufferFill = new XYSeries("Buffer Fill"); seriesDataSets = new TreeMap<>(); seriesDataSets = bufferOccupancyCalculatorImpl.populateBufferOccupancyDataSet( analysis.getAnalyzerResult().getVideoUsage(), chunkPlayTimeList); bufferSizeList.clear();// ww w . j ava 2s. c o m double xCoordinate, yCoordinate; String ptCoordinate[] = new String[2]; // to hold x & y values if (!seriesDataSets.isEmpty()) { for (int key : seriesDataSets.keySet()) { ptCoordinate = seriesDataSets.get(key).trim().split(","); xCoordinate = Double.parseDouble(ptCoordinate[0]); yCoordinate = Double.parseDouble(ptCoordinate[1]); yCoordinate = yCoordinate / 1024; //Converting Buffer size measurement unit to KB bufferSizeList.add(yCoordinate); seriesBufferFill.add(xCoordinate, yCoordinate); } } Collections.sort(bufferSizeList); BufferOccupancyBPResult bufferOccupancyResult = bufferOccupancyCalculatorImpl .setMaxBuffer(bufferSizeList.get(bufferSizeList.size() - 1)); bufferOccupancyResult.setBufferByteDataSet(bufferSizeList); analysis.getAnalyzerResult().setBufferOccupancyResult(bufferOccupancyResult); // populate collection bufferFillDataCollection.addSeries(seriesBufferFill); XYItemRenderer renderer = new StandardXYItemRenderer(); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { // Tooltip value Number timestamp = dataset.getX(series, item); Number bufferSize = dataset.getY(series, item); StringBuffer tooltipValue = new StringBuffer(); tooltipValue.append(String.format("%.2f", bufferSize) + "," + String.format("%.2f", timestamp)); String[] value = tooltipValue.toString().split(","); return (MessageFormat.format(BUFFEROCCUPANCY_TOOLTIP, value[0], value[1])); //return "BufferSize: " + String.format("%.2f", bufferSize) + "KB \n Timestamp: " + String.format("%.2f", timestamp)+"S"; } }); renderer.setSeriesStroke(0, new BasicStroke(2.0f)); renderer.setSeriesPaint(0, Color.blue); renderer.setSeriesShape(0, shape); plot.setRenderer(renderer); } plot.setDataset(bufferFillDataCollection); }
From source file:com.att.aro.ui.view.diagnostictab.plot.AttenuatorPlot.java
/** * @param plot/*from w ww . j a va 2s. c o m*/ * @param seriesDL * @param seriesUP */ private void setDataPlot(XYPlot plot, XYSeries seriesDL, XYSeries seriesUP) { XYSeriesCollection sercollection = new XYSeriesCollection(); sercollection.addSeries(seriesDL); sercollection.addSeries(seriesUP); XYStepRenderer renderer = new XYStepRenderer(); XYPlot plot1 = (XYPlot) plot; plot1.getRangeAxis().setAutoRangeMinimumSize(2.0);//for the data set is constant value(ex. 0) renderer = (XYStepRenderer) plot1.getRenderer(); renderer.setBaseShapesVisible(true); renderer.setSeriesStroke(0, new BasicStroke(2.0f)); renderer.setSeriesStroke(1, new BasicStroke(4.0f)); renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator()); renderer.setDefaultEntityRadius(6); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { StringBuffer displayInfo = new StringBuffer(); java.lang.Number tempx = dataset.getX(series, item); java.lang.Number tempy = dataset.getY(series, item); // series 0 -> downstream , stries 1 -> upstream String streamInfo = ""; if (series == 0) { streamInfo = "Downlink Delay"; } else { streamInfo = "Uplink Delay"; } return displayInfo.append("Time: " + tempx + " , " + streamInfo + " : " + tempy + "ms").toString(); } }); plot.setRenderer(renderer); plot.setDataset(sercollection); }
From source file:org.openfaces.component.chart.impl.generators.DynamicXYGenerator.java
private String getValue(XYDataset xyDataset, int i, int i1) { String currentValue = ""; try {/*from w ww . j a va2 s . c o m*/ GridPointInfo point = new GridPointInfoImpl(); point.setSeries(new SeriesInfoImpl()); Object key = xyDataset.getX(i, i1); ModelInfo info = view.getChart().getRenderHints().getModelInfo(); if ((key instanceof Long) && info != null && info.getModelType() == ModelType.Date) { key = new Date((Long) key); } point.setKey(key); point.setValue(xyDataset.getY(i, i1)); point.getSeries().setKey(xyDataset.getSeriesKey(i)); view.setPoint(point); //! //Object currentValue = DynamicPropertiesUtils.getDynamicValue("point", point, myDynamicProperty); //! if (valueExpression != null) { currentValue = valueExpression.getHint("point", point).toString(); } view.setPoint(null); } catch (RuntimeException e) { Log.log("Exception inside DynamicXYGenerator.getValue", e); } return currentValue; }
From source file:com.newatlanta.bluedragon.XYURLGenerator.java
/** * Generates a URL for a particular item within a series. * /*from www . ja v a2s . c o m*/ * @param dataset * the dataset. * @param series * the series index (zero-based). * @param category * the category index (zero-based). * * @return The generated URL. */ @SuppressWarnings("deprecation") public String generateURL(XYDataset dataset, int series, int item) { String seriesKey = dataset.getSeriesKey(series).toString(); Number xValue = dataset.getX(series, item); Number yValue = dataset.getY(series, item); String value; if (yValue == null) value = ""; else if (dateFormat != null) value = this.dateFormat.format(yValue); else value = this.numberFormat.format(yValue); StringBuilder generatedURL = new StringBuilder(urlLower.length()); for (int i = 0; i < urlLower.length();) { char ch = urlLower.charAt(i); if (ch == '$') { if (urlLower.regionMatches(i, "$serieslabel$", 0, "$serieslabel$".length())) { generatedURL.append(URLEncoder.encode(seriesKey)); i = i + "$serieslabel$".length(); } else if (urlLower.regionMatches(i, "$itemlabel$", 0, "$itemlabel$".length())) { generatedURL.append(xValue); i = i + "$itemlabel$".length(); } else if (urlLower.regionMatches(i, "$value$", 0, "$value$".length())) { generatedURL.append(value); i = i + "$value$".length(); } else { // Preserve case by retrieving char from original URL generatedURL.append(url.charAt(i)); i++; } } else { // Preserve case by retrieving char from original URL generatedURL.append(url.charAt(i)); i++; } } return generatedURL.toString(); }
From source file:com.att.aro.ui.view.diagnostictab.plot.SpeedThrottlePlot.java
/** * @param plot// w ww . j av a 2 s.c om * @param seriesDL * @param seriesUP */ private void setDataPlot(XYPlot plot, XYSeries seriesDL, XYSeries seriesUP) { serCollection.addSeries(seriesDL); serCollection.addSeries(seriesUP); XYStepRenderer renderer = new XYStepRenderer(); LogAxis rangeAxis = new LogAxis(); // new API rangeAxis.setAutoRange(true); rangeAxis.setVisible(false); plot.setRangeAxis(rangeAxis); plot.setRangePannable(true); plot.setRangeCrosshairVisible(true); renderer = (XYStepRenderer) plot.getRenderer(); renderer.setBaseShapesVisible(true); renderer.setSeriesStroke(0, new BasicStroke(1.0f)); renderer.setSeriesStroke(1, new BasicStroke(2.5f)); renderer.setSeriesPaint(0, Color.blue); renderer.setSeriesPaint(1, Color.red); renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator()); renderer.setDefaultEntityRadius(6); renderer.setBaseToolTipGenerator(new XYToolTipGenerator() { @Override public String generateToolTip(XYDataset dataset, int series, int item) { StringBuffer displayInfo = new StringBuffer(); java.lang.Number tempx = dataset.getX(series, item); java.lang.Number tempy = dataset.getY(series, item); // series 0 -> downstream , stries 1 -> upstream String streamInfo = ""; if (series == 0) { streamInfo = ResourceBundleHelper.getMessageString("dlog.collector.option.attenuator.downlink"); } else { streamInfo = ResourceBundleHelper.getMessageString("dlog.collector.option.attenuator.uplink"); } return displayInfo.append("Time: " + tempx + " , " + streamInfo + " : " + tempy + " kbps") .toString(); } }); plot.setRenderer(renderer); plot.setDataset(serCollection); }