Example usage for org.jfree.data.xy XYSeries getItems

List of usage examples for org.jfree.data.xy XYSeries getItems

Introduction

In this page you can find the example usage for org.jfree.data.xy XYSeries getItems.

Prototype

public List getItems() 

Source Link

Document

Returns the list of data items for the series (the list contains XYDataItem objects and is unmodifiable).

Usage

From source file:org.fhcrc.cpl.viewer.mrm.Utils.java

public static int findIndexLEXvalue(PlotDataSupplier pds, float xvalue) {
    XYSeries xys = pds.getGraphData();
    if (xys.getItems().size() == 0)
        return -1;
    float curx = -1;
    int i;/* w ww  .  ja  v  a2  s.  co  m*/
    for (i = 0; i < xys.getItemCount(); i++) {
        curx = xys.getDataItem(i).getX().floatValue();
        if (curx >= xvalue)
            break;
    }
    if (i == 0 && curx > xvalue)
        return 0;
    if (curx == xvalue)
        return i;
    return i - 1;
}

From source file:org.fhcrc.cpl.viewer.mrm.Utils.java

public static double getWeightedAverageDaughtersTime(XYSeriesCollection daughterSet) {
    double retVal = 0.0;
    double yTot = 0.0;
    double xWeight = 0.0;
    for (Object xyso : daughterSet.getSeries()) {
        XYSeries xys = (XYSeries) xyso;
        for (Object xydio : xys.getItems()) {
            XYDataItem xydi = (XYDataItem) xydio;
            xWeight += (xydi.getX().doubleValue() * xydi.getY().doubleValue());
            yTot += xydi.getY().doubleValue();
        }/*from w w w  .  j  a  v a  2 s  . c  o m*/
    }
    if (yTot > 0)
        retVal = xWeight / yTot;
    return retVal;
}

From source file:org.fhcrc.cpl.viewer.mrm.Utils.java

public static int allYsGEVal(XYSeries xys, double val) {
    int retVal = 0;
    for (Object oitem : xys.getItems()) {
        if (((XYDataItem) oitem).getY().doubleValue() > val) {
            retVal++;//from w w  w.java2  s  .  c  o  m
        }
    }
    return retVal;
}

From source file:org.fhcrc.cpl.viewer.mrm.Utils.java

public static boolean allYsAreLEVal(PlotDataSupplier pds, double val) {
    XYSeries xys = pds.getGraphData();
    int i = 0;/*from  w w  w .j ava  2s .  co  m*/
    for (Object oitem : xys.getItems()) {
        i++;
        if (((XYDataItem) oitem).getY().doubleValue() > val) {
            return false;
        }
    }
    return true;
}

From source file:oct.analysis.application.OCTSelection.java

public static XYSeries findMaxAndMins(XYSeries lrpSeries, String title) {
    XYSeries lrpMaxPoints = new XYSeries("");
    ((List<XYDataItem>) lrpSeries.getItems()).forEach(p -> {
        lrpMaxPoints.add(p.getXValue(), Math.abs(p.getYValue()));
    });/*from   w  w  w .  ja  va2s . com*/
    return findMaximums(lrpMaxPoints, title);
}

From source file:com.bwc.ora.models.Lrp.java

public static XYSeries findMaximums(XYSeries lrpSeries, String title) {
    XYSeries lrpMaxPoints = new XYSeries(title);
    XYDataItem leftPeakPoint = new XYDataItem(0, 0);
    int leftPeakPointIndex = 0;
    XYDataItem rightPeakPoint = new XYDataItem(0, 0);
    boolean first = true;
    int index = -1;
    List<XYDataItem> pointList = (List<XYDataItem>) lrpSeries.getItems();
    for (XYDataItem point : pointList) {
        index++;/*from www  .jav  a 2 s  .com*/
        if (first) {
            leftPeakPoint = point;
            leftPeakPointIndex = index;
            first = false;
            continue;
        }
        if (leftPeakPoint.getYValue() < point.getYValue()) {
            leftPeakPoint = point;
            leftPeakPointIndex = index;
            rightPeakPoint = point;
        } else if (leftPeakPoint.getYValue() == point.getYValue()) {
            rightPeakPoint = point;
        } else {
            //determine if we are coming down off of a peak by looking two points behind the current point
            if (leftPeakPointIndex > 0) {
                XYDataItem prev = pointList.get(leftPeakPointIndex - 1);
                //if two points back has a Y value that is less than or equal to the left peak point
                //then we have found the end of the peak and we can process as such
                if (prev.getYValue() <= leftPeakPoint.getYValue()) {
                    double peakx = rightPeakPoint.getXValue()
                            - ((rightPeakPoint.getXValue() - leftPeakPoint.getXValue()) / 2D);
                    lrpMaxPoints.add(peakx, leftPeakPoint.getY());
                }
            }
            leftPeakPoint = point;
            leftPeakPointIndex = index;
            rightPeakPoint = point;
        }
    }

    return lrpMaxPoints;
}

From source file:mt.LengthDistribution.java

public static void WriteLengthdistroFile(ArrayList<File> AllMovies, XYSeries counterseries, int framenumber) {

    try {/*from ww w .ja  v  a2s  .com*/

        File ratesfile = new File(AllMovies.get(0).getParentFile() + "//" + "Length-Distribution At T " + " = "
                + framenumber + ".txt");

        if (framenumber == 0)
            ratesfile = new File(AllMovies.get(0).getParentFile() + "//" + "Mean Length-Distribution" + ".txt");

        FileWriter fw = new FileWriter(ratesfile);

        BufferedWriter bw = new BufferedWriter(fw);

        bw.write("\tLength(real units) \tCount\n");

        for (int index = 0; index < counterseries.getItems().size(); ++index) {

            double Count = counterseries.getX(index).doubleValue();
            double Length = counterseries.getY(index).doubleValue();

            bw.write("\t" + Length + "\t" + "\t" + Count + "\t" + "\n");

        }

        bw.close();
        fw.close();

    }

    catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

From source file:com.jbombardier.console.charts.XYTimeChartPanel.java

private Double findValue(XYSeries xySeries, long xValue) {
    Double value = null;//from  ww  w . j  a  v a 2  s. c o m

    List<XYDataItem> items = xySeries.getItems();
    for (XYDataItem item : items) {
        double itemXValue = item.getXValue();
        long xTimeValue = (long) itemXValue;

        if (xTimeValue == xValue) {
            value = item.getYValue();
            break;
        }
    }

    return value;
}

From source file:com.jbombardier.console.charts.XYTimeChartPanel.java

public void saveChartData() {
    StringBuilder builder = new StringBuilder();
    synchronized (seriesForSource) {
        Set<Long> xValues = new HashSet<Long>();

        Collection<XYSeries> values = seriesForSource.values();
        for (XYSeries xySeries : values) {
            List<XYDataItem> items = xySeries.getItems();
            for (XYDataItem item : items) {
                double xValue = item.getXValue();
                long xTimeValue = (long) xValue;
                xValues.add(xTimeValue);
            }//from  ww  w  .j  a  va2s  . co  m
        }

        List<Long> xValuesList = new ArrayList<Long>(xValues);
        Collections.sort(xValuesList);
        Set<String> keys = seriesForSource.keySet();

        builder.append("Time,");
        for (String seriesKey : keys) {
            builder.append(seriesKey).append(",");
        }
        builder.append(newline);

        for (Long xValue : xValuesList) {
            Date date = new Date(xValue);
            builder.append(date.toString());
            builder.append(",");
            for (String seriesKeys : keys) {
                XYSeries xySeries = seriesForSource.get(seriesKeys);
                Double d = findValue(xySeries, xValue);
                if (d != null) {
                    builder.append(d);
                }
                builder.append(",");
            }

            builder.append(newline);
        }
    }

    String filename = chart.getTitle().getText() + ".csv";
    File file = new File(filename);
    FileUtils.write(builder.toString(), file);
    Out.out("Data saved to '{}'", file.getAbsolutePath());
}

From source file:com.bwc.ora.models.Lrp.java

public List<XYSeries> getFWHMForLRPPeaks(XYSeries lrpPeaks, XYSeries lrpSeries) {
    LinkedList<XYSeries> seriesList = new LinkedList<>();
    List<XYDataItem> pointList = (List<XYDataItem>) lrpSeries.getItems();
    List<XYDataItem> peakList = (List<XYDataItem>) lrpPeaks.getItems();
    //iterate through the peaks, process FWHM for each peak
    for (XYDataItem peak : peakList) {
        //grab index of the closest point to the peak
        int peakIndex = -1;
        for (XYDataItem pnt : pointList) {
            peakIndex++;//  www.j av a  2 s .c  o  m
            if (Math.abs(pnt.getXValue() - peak.getXValue()) < 0.6D) {
                break;
            }
        }
        //calculate point with Y value of valley to the left of peak
        XYDataItem leftValleyPoint = null;
        ListIterator<XYDataItem> it = pointList.listIterator(peakIndex);
        double prevY = peak.getYValue();
        while (it.hasPrevious()) {
            XYDataItem leftPoint = it.previous();
            if (leftPoint.getYValue() <= prevY) {
                prevY = leftPoint.getYValue();
                leftValleyPoint = leftPoint;
            } else {
                break;
            }
        }
        //calculate point with Y value of valley to the right of peak
        XYDataItem rightValleyPoint = null;
        it = pointList.listIterator(peakIndex);
        prevY = peak.getYValue();
        while (it.hasNext()) {
            XYDataItem rightPoint = it.next();
            if (rightPoint.getYValue() <= prevY) {
                prevY = rightPoint.getYValue();
                rightValleyPoint = rightPoint;
            } else {
                break;
            }
        }
        //determine half max Y value
        double halfMaxYValue;
        if (rightValleyPoint.getYValue() == leftValleyPoint.getYValue()) {
            halfMaxYValue = peak.getYValue() - ((peak.getYValue() - leftValleyPoint.getYValue()) / 2D);
        } else if (rightValleyPoint.getYValue() > leftValleyPoint.getYValue()) {
            halfMaxYValue = peak.getYValue() - ((peak.getYValue() - rightValleyPoint.getYValue()) / 2D);
        } else {
            halfMaxYValue = peak.getYValue() - ((peak.getYValue() - leftValleyPoint.getYValue()) / 2D);
        }
        //determine the X value on both sides of the peak that corresponds to the half max Y value
        double leftX = pointList.get(0).getXValue(), rightX = pointList.get(pointList.size() - 1).getXValue();
        XYDataItem prevPoint = pointList.get(peakIndex);
        it = pointList.listIterator(peakIndex);
        while (it.hasPrevious()) {
            XYDataItem leftPoint = it.previous();
            if (leftPoint.getYValue() == halfMaxYValue) {
                leftX = leftPoint.getXValue();
                break;
            } else {
                if (leftPoint.getYValue() < halfMaxYValue) {
                    //                        System.out.println("Left X for peak (" + peak.getXValue() + "," + peak.getYValue() + "): ");
                    leftX = calculateXFromYForLineWithTwoPoints(leftPoint, prevPoint, halfMaxYValue);
                    //                        System.out.println("    Left X: (" + leftX + "," + halfMaxYValue + "): ");
                    break;
                } else {
                    prevPoint = leftPoint;
                }
            }
        }
        prevPoint = pointList.get(peakIndex);
        it = pointList.listIterator(peakIndex);
        while (it.hasNext()) {
            XYDataItem rightPoint = it.next();
            if (rightPoint.getYValue() == halfMaxYValue) {
                rightX = rightPoint.getXValue();
                break;
            } else {
                if (rightPoint.getYValue() < halfMaxYValue) {
                    //                        System.out.println("Right X for peak (" + peak.getXValue() + "," + peak.getYValue() + "): ");
                    rightX = calculateXFromYForLineWithTwoPoints(rightPoint, prevPoint, halfMaxYValue);
                    //                        System.out.println("    Right X: (" + leftX + "," + halfMaxYValue + "): ");
                    break;
                } else {
                    prevPoint = rightPoint;
                }
            }
        }
        //store the two points for the half max full width line for this peak
        XYSeries peakSeries = new XYSeries("(" + peak.getXValue() + "," + peak.getYValue() + ")FWHM");
        peakSeries.add(leftX, halfMaxYValue);
        peakSeries.add(rightX, halfMaxYValue);
        seriesList.add(peakSeries);
    }
    return seriesList;
}