List of usage examples for org.jfree.data.xy XYDataset getY
public Number getY(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 w w. j a va 2 s .com 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:org.pentaho.plugin.jfreereport.reportcharts.LogXYItemLabelGenerator.java
/** * Creates the array of items that can be passed to the {@link java.text.MessageFormat} class for creating labels. * * @param dataset the dataset (<code>null</code> not permitted). * @param series the series (zero-based index). * @param item the item (zero-based index). * @return An array of three items from the dataset formatted as <code>String</code> objects (never * <code>null</code>)./*from ww w .j a v a2 s .c o m*/ */ protected Object[] createItemArray(final XYDataset dataset, final int series, final int item) { final Object[] objects = super.createItemArray(dataset, series, item); final Number value = dataset.getY(series, item); objects[2] = LogCategoryItemLabelGenerator.formatValue(value); return objects; }
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)/* ww w .ja va2 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.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:net.sf.mzmine.modules.visualization.metamsecorrelate.visual.pseudospectra.PseudoSpectraItemLabelGenerator.java
/** * @see org.jfree.chart.labels.XYItemLabelGenerator#generateLabel(org.jfree.data.xy.XYDataset, * int, int)/* w w w . ja v a 2s.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();//w w w. ja v a 2 s . 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:org.pentaho.plugin.jfreereport.reportcharts.FormulaXYZURLGenerator.java
/** * Generates a URL for a particular item within a series. * * @param dataset the dataset.//from w w w . j a v a 2 s. c o m * @param series the series number (zero-based index). * @param item the item number (zero-based index). * @return The generated URL. */ public String generateURL(final XYDataset dataset, final int series, final int item) { if (dataset instanceof XYZDataset) { return generateURL((XYZDataset) dataset, series, item); } try { final Object[] values = new Object[] { dataset.getX(series, item), dataset.getY(series, item), null, IntegerCache.getInteger(series), dataset.getSeriesKey(series), IntegerCache.getInteger(dataset.getSeriesCount()), IntegerCache.getInteger(item), IntegerCache.getInteger(dataset.getItemCount(series)) }; formulaExpression.setRuntime( new WrapperExpressionRuntime(new StaticDataRow(ADDITIONAL_COLUMN_KEYS, values), runtime)); final Object o = formulaExpression.getValue(); if (o == null) { return null; } return String.valueOf(o); } finally { formulaExpression.setRuntime(null); } }
From source file:com.att.aro.ui.view.diagnostictab.plot.AttenuatorPlot.java
/** * @param plot/*from w w w . j a v a 2 s . com*/ * @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.pentaho.plugin.jfreereport.reportcharts.FormulaXYZTooltipGenerator.java
/** * Generates the tooltip text for the specified item. * * @param dataset the dataset (<code>null</code> not permitted). * @param series the series index (zero-based). * @param item the item index (zero-based). * @return The tooltip text (possibly <code>null</code>). *//*from w w w.jav a2 s.c o m*/ public String generateToolTip(final XYDataset dataset, final int series, final int item) { if (dataset instanceof XYZDataset) { return generateToolTip((XYZDataset) dataset, series, item); } try { final Object[] values = new Object[] { dataset.getX(series, item), dataset.getY(series, item), null, IntegerCache.getInteger(series), dataset.getSeriesKey(series), IntegerCache.getInteger(dataset.getSeriesCount()), IntegerCache.getInteger(item), IntegerCache.getInteger(dataset.getItemCount(series)) }; formulaExpression.setRuntime( new WrapperExpressionRuntime(new StaticDataRow(ADDITIONAL_COLUMN_KEYS, values), runtime)); final Object o = formulaExpression.getValue(); if (o == null) { return null; } return String.valueOf(o); } finally { formulaExpression.setRuntime(null); } }
From source file:com.newatlanta.bluedragon.XYURLGenerator.java
/** * Generates a URL for a particular item within a series. * /*ww w .jav a 2 s . 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/*from w w w. j a v a2 s . c o m*/ * @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); }