Example usage for org.jfree.data.xy XYDataset getY

List of usage examples for org.jfree.data.xy XYDataset getY

Introduction

In this page you can find the example usage for org.jfree.data.xy XYDataset getY.

Prototype

public Number getY(int series, int item);

Source Link

Document

Returns the y-value for an item within a series.

Usage

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);

}