List of usage examples for org.jfree.data.xy XYSeries getItems
public List getItems()
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; }