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

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

Introduction

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

Prototype

public Number getX(int series, int item);

Source Link

Document

Returns the x-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 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);

}