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

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

Introduction

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

Prototype

public Number getY() 

Source Link

Document

Returns the y-value.

Usage

From source file:statistic.graph.gui.Charts.java

private static void initXAxis(XYPlot plot, XYDataset dataset) {
    plot.setDomainAxis(new NumberAxis(plot.getDomainAxis().getLabel()));
    XYSeriesCollection collection = (XYSeriesCollection) dataset;
    double max = Double.NEGATIVE_INFINITY;
    double min = Double.POSITIVE_INFINITY;
    if (collection != null) {
        for (int s = 0; s < collection.getSeriesCount(); s++) {
            for (int d = 0; d < collection.getItemCount(s); d++) {
                XYDataItem data = collection.getSeries(s).getDataItem(d);
                if (data.getX().longValue() == Integer.MAX_VALUE
                        || data.getX().longValue() == Integer.MIN_VALUE) {
                    continue;
                }/* ww  w .java  2s  . co m*/
                if (data.getX().doubleValue() > max) {
                    max = data.getX().doubleValue();
                }
                if (data.getX().doubleValue() < min) {
                    min = data.getX().doubleValue();
                }
            }
        }
        if (min < max) {
            plot.getDomainAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits());
            plot.getDomainAxis().setRange(min - 0.5, max + 0.5);
            for (int s = 0; s < collection.getSeriesCount(); s++) {
                XYSeries series = collection.getSeries(s);
                if (series.indexOf(Integer.MIN_VALUE) >= 0) {
                    XYDataItem item = series.remove((Number) Integer.MIN_VALUE);
                    if (series.indexOf(min) < 0) {
                        series.add(min, item.getY());
                    }
                }
                if (series.indexOf(Integer.MAX_VALUE) >= 0) {
                    XYDataItem item = series.remove((Number) Integer.MAX_VALUE);
                    if (series.indexOf(max) < 0) {
                        series.add(max, item.getY());
                    }
                }
            }
        } else {
            plot.getDomainAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits());
            plot.getDomainAxis().setRange(0 - 0.5, 1 + 0.5);
        }
    } else {
        plot.getDomainAxis().setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        plot.getDomainAxis().setRange(0 - 0.5, 1 + 0.5);
    }
}

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;//from  w  ww .  j a v  a 2s.  c o  m
        for (Object xydio : xys.getItems()) {
            XYDataItem xydi = (XYDataItem) xydio;
            xWeight += (xydi.getX().doubleValue() * xydi.getY().doubleValue());
            yTot += xydi.getY().doubleValue();
        }
    }
    if (yTot > 0)
        retVal = xWeight / yTot;
    return retVal;
}

From source file:com.googlecode.psiprobe.beans.stats.providers.AbstractSeriesProvider.java

protected XYSeries toSeries(String legend, List stats) {
    XYSeries xySeries = new XYSeries(legend, true, false);
    synchronized (stats) {
        for (int i = 0; i < stats.size(); i++) {
            XYDataItem item = (XYDataItem) stats.get(i);
            xySeries.addOrUpdate(item.getX(), item.getY());
        }// ww w  .  j a  va 2 s .c o m
    }
    return xySeries;
}

From source file:sim.portrayal.inspector.TimeSeriesChartingPropertyInspector.java

protected void updateSeries(double time, double lastTime) {
    double d = 0;

    GlobalAttributes globalAttributes = getGlobalAttributes();

    // FIRST, load the aggregate series with the items
    aggregateSeries.add(time, d = valueFor(properties.getValue(index)), false);
    int len = aggregateSeries.getItemCount();

    // SECOND, determine if it's time to dump stuff into the main series
    long interval = globalAttributes.interval;
    double intervalMark = time % interval;
    if (!/*  w ww . j av  a 2  s .  c  o  m*/
    // I think these are the three cases for when we may need to update because
    // we've exceeded the next interval
    (intervalMark == 0 || (time - lastTime >= interval) || lastTime % interval > intervalMark))
        return; // not yet

    // THIRD determine how and when to dump stuff into the main series
    double y = 0; // make compiler happy
    double temp;
    switch (globalAttributes.aggregationMethod) {
    case AGGREGATIONMETHOD_CURRENT: // in this case the aggregateSeries is sort of worthless
        addToMainSeries(time, d, false);
        break;
    case AGGREGATIONMETHOD_MAX:
        double maxX = 0;
        for (int i = 0; i < len; i++) {
            XYDataItem item = (XYDataItem) (aggregateSeries.getDataItem(i));
            y = item.getY().doubleValue();
            temp = item.getX().doubleValue();
            if (maxX < temp || i == 0)
                maxX = temp;
        }
        addToMainSeries(maxX, y, false);
        break;
    case AGGREGATIONMETHOD_MIN:
        double minX = 0;
        for (int i = 0; i < len; i++) {
            XYDataItem item = (XYDataItem) (aggregateSeries.getDataItem(i));
            y = item.getY().doubleValue();
            temp = item.getX().doubleValue();
            if (minX > temp || i == 0)
                minX = temp;
        }
        addToMainSeries(minX, y, false);
        break;
    case AGGREGATIONMETHOD_MEAN:
        double sumX = 0;
        int n = 0;
        for (int i = 0; i < len; i++) {
            XYDataItem item = (XYDataItem) (aggregateSeries.getDataItem(i));
            y = item.getY().doubleValue();
            sumX += item.getX().doubleValue();
            n++;
        }
        if (n == 0) {
            // no element -- do nothing
        } else
            addToMainSeries(sumX / n, y, false);
        break;
    default:
        throw new RuntimeException("No valid aggregation method provided");
    }
    aggregateSeries.clear();
}

From source file:com.googlecode.psiprobe.model.stats.StatsCollection.java

public long getLastValueForStat(String statName) {
    long statValue = 0;

    List stats = getStats(statName);
    if (stats != null && !stats.isEmpty()) {
        XYDataItem xy = (XYDataItem) stats.get(stats.size() - 1);
        if (xy != null && xy.getY() != null) {
            statValue = xy.getY().longValue();
        }//from ww w  .  j a va 2s .  c om
    }

    return statValue;
}

From source file:psiprobe.model.stats.StatsCollection.java

/**
 * Gets the last value for stat./*from ww w .  j  av  a2  s .  com*/
 *
 * @param statName the stat name
 * @return the last value for stat
 */
public long getLastValueForStat(String statName) {
    long statValue = 0;

    List<XYDataItem> stats = getStats(statName);
    if (stats != null && !stats.isEmpty()) {
        XYDataItem xy = stats.get(stats.size() - 1);
        if (xy != null && xy.getY() != null) {
            statValue = xy.getY().longValue();
        }
    }

    return statValue;
}

From source file:com.github.dougkelly88.FLIMPlateReaderGUI.FLIMClasses.Classes.FindMaxpoint.java

public void acqMaxpointData() {
    ArrayList<Integer> signal = new ArrayList<Integer>();
    ArrayList<Integer> delays = new ArrayList<Integer>();

    // instrument interacting fn, currently dummy
    // REMEMBER TO APPLY THRESHOLD

    // plot maxpoint data
    findMaxpointData_ = createDummyMaxpointData(0);
    XYPlot plot = chart_.getXYPlot();//from   ww  w  . j a  v  a 2  s  .c om
    plot.setDataset(0, findMaxpointData_);

    // assign maxpoint - easier when this is real data...
    ArrayList<XYDataItem> dummy = new ArrayList<XYDataItem>(
            ((XYSeriesCollection) findMaxpointData_).getSeries(0).getItems());
    for (XYDataItem dummy1 : dummy) {
        delays.add((Integer) dummy1.getX().intValue());
        signal.add((Integer) dummy1.getY().intValue());
    }

    int[] res = findMaxIndex(signal);
    maxpointDelay_ = delays.get(res[0]);

    // estimate lifetime
    signal = new ArrayList<Integer>(signal.subList(res[0], signal.size()));
    delays = new ArrayList<Integer>(delays.subList(res[0], delays.size()));
    double sumt2 = 0;
    double sumt = 0;
    double sumtlnI = 0;
    double sumlnI = 0;

    for (int i = 0; i < signal.size(); i++) {

        sumt2 = sumt2 + delays.get(i) * delays.get(i);
        sumt = sumt + delays.get(i);
        sumlnI = (sumlnI + log((double) signal.get(i)));
        sumtlnI = sumtlnI + log((double) signal.get(i)) * delays.get(i);

    }

    lifetime_ = -(delays.size() * sumt2 - sumt * sumt) / (delays.size() * sumtlnI - sumt * sumlnI);

}

From source file:org.fhcrc.cpl.toolbox.gui.chart.PanelWithScatterPlot.java

/**
 * This method only does anything if there's exactly one series in the dataset.
 *
 * Performs linear regression, and then plots a regression line, from the
 * minimum to the maximum X value of the series.
 *
 * Removes the old series, adds this new one, and then adds the old one again,
 * so the regression line will appear on top. 
 */// ww w.j av a2  s  .com
public double[] addRegressionLine(int seriesIndex, boolean robustRegression) {
    if (dataset == null || dataset.getSeriesCount() < seriesIndex + 1)
        return null;
    XYSeries series = dataset.getSeries(seriesIndex);
    int n = series.getItemCount();
    double[] xValues = new double[n];
    double[] yValues = new double[n];

    double maxX = Double.MIN_VALUE;
    double minX = Double.MAX_VALUE;

    for (int i = 0; i < n; i++) {
        XYDataItem dataItem = series.getDataItem(i);
        xValues[i] = dataItem.getX().doubleValue();
        yValues[i] = dataItem.getY().doubleValue();

        if (xValues[i] > maxX)
            maxX = xValues[i];
        if (xValues[i] < minX)
            minX = xValues[i];
    }

    _log.debug("addRegressionLine, minX = " + minX + ", maxX = " + maxX);

    RegressionUtilities.robustRegression(xValues, yValues);
    double[] regressionCoefficients = null;
    if (robustRegression)
        regressionCoefficients = RegressionUtilities.robustRegression(xValues, yValues);
    else
        regressionCoefficients = MatrixUtil.linearRegression(xValues, yValues);
    _log.debug("addRegressionLine, coeffs = " + regressionCoefficients[0] + ", " + regressionCoefficients[1]);

    addLine(regressionCoefficients[1], regressionCoefficients[0], minX, maxX);

    return regressionCoefficients;
}

From source file:org.owasp.benchmark.score.report.ScatterHome.java

private JFreeChart display(String title, int height, Set<Report> toolResults) {
    JFrame f = new JFrame(title);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //averages/*from   w ww. j  a v a2s .c  om*/
    ArrayList<Double> averageCommercialFalseRates = new ArrayList<Double>();
    ArrayList<Double> averageCommercialTrueRates = new ArrayList<Double>();

    XYSeriesCollection dataset = new XYSeriesCollection();
    XYSeries series = new XYSeries("Scores");
    for (Report toolReport : toolResults) {
        if (!toolReport.isCommercial()) {
            OverallResults overallResults = toolReport.getOverallResults();
            series.add(overallResults.getFalsePositiveRate() * 100, overallResults.getTruePositiveRate() * 100);
            if (toolReport.isCommercial()) {
                averageCommercialFalseRates.add(overallResults.getFalsePositiveRate());
                averageCommercialTrueRates.add(overallResults.getTruePositiveRate());
            }
        }
    }

    int commercialToolCount = 0;
    for (Report toolReport : toolResults) {
        if (toolReport.isCommercial()) {
            commercialToolCount++;
            OverallResults overallResults = toolReport.getOverallResults();
            if (!BenchmarkScore.showAveOnlyMode) {
                series.add(overallResults.getFalsePositiveRate() * 100,
                        overallResults.getTruePositiveRate() * 100);
            }
            if (toolReport.isCommercial()) {
                averageCommercialFalseRates.add(overallResults.getFalsePositiveRate());
                averageCommercialTrueRates.add(overallResults.getTruePositiveRate());
            }
        }
    }

    for (double d : averageCommercialFalseRates) {
        afr += d;
    }
    afr = afr / averageCommercialFalseRates.size();

    for (double d : averageCommercialTrueRates) {
        atr += d;
    }
    atr = atr / averageCommercialTrueRates.size();

    if (commercialToolCount > 1 || (BenchmarkScore.showAveOnlyMode && commercialToolCount == 1)) {
        series.add(afr * 100, atr * 100);
    }

    dataset.addSeries(series);

    chart = ChartFactory.createScatterPlot(title, "False Positive Rate", "True Positive Rate", dataset,
            PlotOrientation.VERTICAL, true, true, false);
    theme.apply(chart);

    XYPlot xyplot = chart.getXYPlot();
    initializePlot(xyplot);

    makeDataLabels(toolResults, xyplot);
    makeLegend(toolResults, 103, 100.5, dataset, xyplot);

    for (XYDataItem item : (List<XYDataItem>) series.getItems()) {
        double x = item.getX().doubleValue();
        double y = item.getY().doubleValue();
        double z = (x + y) / 2;
        XYLineAnnotation score = new XYLineAnnotation(x, y, z, z, dashed, Color.blue);
        xyplot.addAnnotation(score);
    }

    ChartPanel cp = new ChartPanel(chart, height, height, 400, 400, 1200, 1200, false, false, false, false,
            false, false);
    f.add(cp);
    f.pack();
    f.setLocationRelativeTo(null);
    //      f.setVisible(true);
    return chart;
}

From source file:org.owasp.benchmark.score.report.ScatterScores.java

private JFreeChart display(String title, int height, int width, List<Report> toolResults) {
    JFrame f = new JFrame(title);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    XYSeriesCollection dataset = new XYSeriesCollection();
    XYSeries series = new XYSeries("Scores");
    for (int i = 0; i < toolResults.size(); i++) {
        Report toolReport = toolResults.get(i);
        OverallResults overallResults = toolReport.getOverallResults();
        series.add(overallResults.getFalsePositiveRate() * 100, overallResults.getTruePositiveRate() * 100);
    }//from   w  w w  .j  a v  a2 s.  co m
    dataset.addSeries(series);

    chart = ChartFactory.createScatterPlot(title, "False Positive Rate", "True Positive Rate", dataset,
            PlotOrientation.VERTICAL, true, true, false);
    String fontName = "Arial";
    DecimalFormat pctFormat = new DecimalFormat("0'%'");

    theme = (StandardChartTheme) org.jfree.chart.StandardChartTheme.createJFreeTheme();
    theme.setExtraLargeFont(new Font(fontName, Font.PLAIN, 24)); // title
    theme.setLargeFont(new Font(fontName, Font.PLAIN, 20)); // axis-title
    theme.setRegularFont(new Font(fontName, Font.PLAIN, 16));
    theme.setSmallFont(new Font(fontName, Font.PLAIN, 12));
    theme.setRangeGridlinePaint(Color.decode("#C0C0C0"));
    theme.setPlotBackgroundPaint(Color.white);
    theme.setChartBackgroundPaint(Color.white);
    theme.setGridBandPaint(Color.red);
    theme.setAxisOffset(new RectangleInsets(0, 0, 0, 0));
    theme.setBarPainter(new StandardBarPainter());
    theme.setAxisLabelPaint(Color.decode("#666666"));
    theme.apply(chart);

    XYPlot xyplot = chart.getXYPlot();
    NumberAxis rangeAxis = (NumberAxis) xyplot.getRangeAxis();
    NumberAxis domainAxis = (NumberAxis) xyplot.getDomainAxis();

    xyplot.setOutlineVisible(true);

    rangeAxis.setRange(-5, 109.99);
    rangeAxis.setNumberFormatOverride(pctFormat);
    rangeAxis.setTickLabelPaint(Color.decode("#666666"));
    rangeAxis.setMinorTickCount(5);
    rangeAxis.setTickUnit(new NumberTickUnit(10));
    rangeAxis.setAxisLineVisible(true);
    rangeAxis.setMinorTickMarksVisible(true);
    rangeAxis.setTickMarksVisible(true);
    rangeAxis.setLowerMargin(10);
    rangeAxis.setUpperMargin(10);
    xyplot.setRangeGridlineStroke(new BasicStroke());
    xyplot.setRangeGridlinePaint(Color.lightGray);
    xyplot.setRangeMinorGridlinePaint(Color.decode("#DDDDDD"));
    xyplot.setRangeMinorGridlinesVisible(true);

    domainAxis.setRange(-5, 105);
    domainAxis.setNumberFormatOverride(pctFormat);
    domainAxis.setTickLabelPaint(Color.decode("#666666"));
    domainAxis.setMinorTickCount(5);
    domainAxis.setTickUnit(new NumberTickUnit(10));
    domainAxis.setAxisLineVisible(true);
    domainAxis.setTickMarksVisible(true);
    domainAxis.setMinorTickMarksVisible(true);
    domainAxis.setLowerMargin(10);
    domainAxis.setUpperMargin(10);
    xyplot.setDomainGridlineStroke(new BasicStroke());
    xyplot.setDomainGridlinePaint(Color.lightGray);
    xyplot.setDomainMinorGridlinePaint(Color.decode("#DDDDDD"));
    xyplot.setDomainMinorGridlinesVisible(true);

    chart.setTextAntiAlias(true);
    chart.setAntiAlias(true);
    chart.removeLegend();
    chart.setPadding(new RectangleInsets(20, 20, 20, 20));
    xyplot.getRenderer().setSeriesPaint(0, Color.decode("#4572a7"));

    //        // setup item labels
    //        XYItemRenderer renderer = xyplot.getRenderer();
    //        Shape circle = new Ellipse2D.Float(-2.0f, -2.0f, 7.0f, 7.0f);
    //        for ( int i = 0; i < dataset.getSeriesCount(); i++ ) {
    //            renderer.setSeriesShape(i, circle);
    //            renderer.setSeriesPaint(i, Color.blue);
    //            String label = ""+((String)dataset.getSeries(i).getKey());
    //            int idx = label.indexOf( ':');
    //            label = label.substring( 0, idx );
    //            StandardXYItemLabelGenerator generator = new StandardXYItemLabelGenerator(label); 
    //            renderer.setSeriesItemLabelGenerator(i, generator); 
    //            renderer.setSeriesItemLabelsVisible(i, true);
    //            ItemLabelPosition position = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER );
    //            renderer.setSeriesPositiveItemLabelPosition(i, position);
    //        }

    makeDataLabels(toolResults, xyplot);
    makeLegend(toolResults, 57, 48, dataset, xyplot);

    Stroke dashed = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 6, 3 },
            0);
    for (XYDataItem item : (List<XYDataItem>) series.getItems()) {
        double x = item.getX().doubleValue();
        double y = item.getY().doubleValue();
        double z = (x + y) / 2;
        XYLineAnnotation score = new XYLineAnnotation(x, y, z, z, dashed, Color.blue);
        xyplot.addAnnotation(score);
    }

    //        // put legend inside plot
    //        LegendTitle lt = new LegendTitle(xyplot);
    //        lt.setItemFont(theme.getSmallFont());
    //        lt.setPosition(RectangleEdge.RIGHT);
    //        lt.setItemFont(theme.getSmallFont());
    //        XYTitleAnnotation ta = new XYTitleAnnotation(.7, .55, lt, RectangleAnchor.TOP_LEFT);
    //        ta.setMaxWidth(0.48);
    //        xyplot.addAnnotation(ta);

    // draw guessing line
    XYLineAnnotation guessing = new XYLineAnnotation(-5, -5, 105, 105, dashed, Color.red);
    xyplot.addAnnotation(guessing);

    XYPointerAnnotation worse = makePointer(75, 5, "Worse than guessing", TextAnchor.TOP_CENTER, 90);
    xyplot.addAnnotation(worse);

    XYPointerAnnotation better = makePointer(25, 100, "Better than guessing", TextAnchor.BOTTOM_CENTER, 270);
    xyplot.addAnnotation(better);

    XYTextAnnotation stroketext = new XYTextAnnotation("                     Random Guess", 88, 107);
    stroketext.setTextAnchor(TextAnchor.CENTER_RIGHT);
    stroketext.setBackgroundPaint(Color.white);
    stroketext.setPaint(Color.red);
    stroketext.setFont(theme.getRegularFont());
    xyplot.addAnnotation(stroketext);

    XYLineAnnotation strokekey = new XYLineAnnotation(58, 107, 68, 107, dashed, Color.red);
    xyplot.setBackgroundPaint(Color.white);
    xyplot.addAnnotation(strokekey);

    ChartPanel cp = new ChartPanel(chart, height, width, 400, 400, 1200, 1200, false, false, false, false,
            false, false);
    f.add(cp);
    f.pack();
    f.setLocationRelativeTo(null);
    //      f.setVisible(true);
    return chart;
}