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

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

Introduction

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

Prototype

public Comparable getKey() 

Source Link

Document

Returns the key for the series.

Usage

From source file:edu.ucsf.valelab.saim.plot.PlotUtils.java

public static XYSeries normalize(XYSeries input) {
    double max = input.getMaxY();
    // double min = input.getMinY();
    XYSeries output = new XYSeries(input.getKey(), input.getAutoSort(), input.getAllowDuplicateXValues());
    for (int i = 0; i < input.getItemCount(); i++) {
        output.add(input.getX(i), (input.getY(i).doubleValue()) / (max));
    }//from  www. j  a  v  a2s .c om
    return output;
}

From source file:org.fhcrc.cpl.viewer.gui.SpectrumChartFactory.java

protected static XYPlot createXYPlot(XYDataset dataset, Color[] colors) {
    // break up into two datasets, one for bars one for lines
    //LinkedList lines =new LinkedList();
    //LinkedList bars = new LinkedList();
    XYDataset seriesLines = new XYSeriesCollection();
    XYDataset seriesBars = new XYSeriesCollection();
    ((XYSeriesCollection) seriesBars).setIntervalWidth(0.0);

    if (dataset instanceof XYSeriesCollection) {
        while (0 < dataset.getSeriesCount()) {
            XYSeries s = ((XYSeriesCollection) dataset).getSeries(0);
            ((XYSeriesCollection) dataset).removeSeries(0);
            Comparable key = s.getKey();
            boolean lines = false;
            if (key instanceof String)
                lines = ((String) key).startsWith("-");
            if (lines)
                ((XYSeriesCollection) seriesLines).addSeries(s);
            else//from  ww w  .  ja  v  a2 s  . c  o  m
                ((XYSeriesCollection) seriesBars).addSeries(s);
        }
    } else {
        seriesBars = dataset;
    }

    NumberAxis axisDomain = new NumberAxis();
    axisDomain.setAutoRange(true);
    axisDomain.setAutoRangeIncludesZero(false);
    //      axisDomain.setRange(400.0, 1600.0);
    // NOTE: zooming in too far kills the chart, prevent this
    axisDomain.addChangeListener(new AxisChangeListener() {
        public void axisChanged(AxisChangeEvent event) {
            NumberAxis axis = (NumberAxis) event.getSource();
            Range range = axis.getRange();
            if (range.getLength() < 2.0) {
                //_log.info("AxisChangeListener " + range.getLength() + " " + range.toString());
                double middle = range.getLowerBound() + range.getLength() / 2.0;
                axis.setRange(new Range(middle - 1.1, middle + 1.1));
            }
        }
    });

    NumberAxis axisRange = new NumberAxis();
    axisRange.setAutoRange(true);
    axisRange.setAutoRangeIncludesZero(true);

    XYToolTipGenerator toolTipGenerator = new XYToolTipGenerator() {
        public String generateToolTip(XYDataset xyDataset, int s, int i) {
            double X = Math.round(xyDataset.getXValue(s, i) * 1000.0) / 1000.0;
            double Y = Math.round(xyDataset.getYValue(s, i) * 1000.0) / 1000.0;
            return "(" + X + ", " + Y + ")";
        }
    };

    XYBarRenderer barRenderer = new XYBarRenderer();
    //dhmay adding 2009/09/14.  As of jfree 1.0.13, shadows on by default        
    barRenderer.setShadowVisible(false);

    //dhmay adding for jfreechart 1.0.6 upgrade.  If this isn't here, we get a
    //nullPointerException in XYBarRenderer.drawItemLabel
    barRenderer.setBaseItemLabelGenerator(new NullLabelGenerator());

    barRenderer.setSeriesItemLabelsVisible(0, true);
    barRenderer.setBaseToolTipGenerator(toolTipGenerator);

    XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer();
    lineRenderer.setBaseToolTipGenerator(toolTipGenerator);

    XYPlot xy = new XYPlot(null, axisDomain, axisRange, null);

    int ds = 0;
    if (seriesLines.getSeriesCount() > 0) {
        xy.setDataset(ds, seriesLines);
        xy.setRenderer(ds, lineRenderer);
        xy.mapDatasetToRangeAxis(ds, 0);
        ds++;
        for (int i = 0; i < seriesLines.getSeriesCount(); i++) {
            Comparable key = ((XYSeriesCollection) seriesLines).getSeriesKey(i);
            boolean lines = false;
            if (key instanceof String)
                lines = ((String) key).startsWith("-");
            lineRenderer.setSeriesLinesVisible(i, lines);
            lineRenderer.setSeriesShapesVisible(i, !lines);
        }
    }
    if (seriesBars.getSeriesCount() > 0) {
        xy.setDataset(ds, seriesBars);
        xy.setRenderer(ds, barRenderer);
        xy.mapDatasetToRangeAxis(ds, 0);
        ds++;
    }

    setColors(xy, colors);

    return xy;
}

From source file:com.griddynamics.jagger.reporting.chart.ChartHelper.java

public static Pair<String, XYSeriesCollection> adjustTime(XYSeriesCollection chartsCollection,
        Collection<IntervalMarker> markers) {
    int maxTime = 0;
    for (int i = 0; i < chartsCollection.getSeriesCount(); i++) {
        XYSeries series = chartsCollection.getSeries(i);
        for (int j = 0; j < series.getItemCount(); j++) {
            int x = series.getX(j).intValue();
            if (x > maxTime) {
                maxTime = x;/*  w ww.  j  a  v a 2s . c  o  m*/
            }
        }
    }

    String type = "ms";
    int div = 1;

    if (maxTime > 10 * 60 * 1000) {
        div = 60 * 1000;
        type = "min";
    }

    if (maxTime > 30 * 1000) {
        div = 1000;
        type = "sec";
    }

    XYSeriesCollection result = new XYSeriesCollection();

    for (int i = 0; i < chartsCollection.getSeriesCount(); i++) {

        XYSeries old = chartsCollection.getSeries(i);
        XYSeries series = new XYSeries(old.getKey(), old.getAutoSort(), old.getAllowDuplicateXValues());
        for (int j = 0; j < old.getItemCount(); j++) {
            Number x = old.getX(j).doubleValue() / div;
            Number y = old.getY(j);
            series.add(x, y);
        }

        result.addSeries(series);
    }

    if (markers != null) {
        for (IntervalMarker marker : markers) {
            marker.setStartValue(marker.getStartValue() / div);
            marker.setEndValue(marker.getEndValue() / div);
        }
    }

    return Pair.of(type, result);
}

From source file:e3fraud.gui.GraphingTool.java

public static JFreeChart generateGraph(E3Model model, Resource need, int startValue, int endValue,
        boolean expected) {
    //Get list of actors
    Set<Resource> actors = model.getActors();
    //generate a series
    Map<Resource, XYSeries> actorSeriesMap = model.getTotalForActors(need, startValue, endValue, expected);

    //for each actor
    XYSeriesCollection line_chart_dataset = new XYSeriesCollection();

    for (Resource actor : actors) {
        //add it's series to the chart
        XYSeries series = actorSeriesMap.get(actor);
        line_chart_dataset.addSeries(series);
        double slope;
        if (series.getItemCount() > 1) {
            slope = (series.getY(0).doubleValue() - series.getY(1).doubleValue())
                    / (series.getX(0).doubleValue() - series.getX(1).doubleValue());
        } else {//ww w  .  ja v  a2  s.c  o m
            slope = 0;
        }
        DecimalFormat df = new DecimalFormat("#.##");
        series.setKey(series.getKey() + "\nAvg.\t = \t" + df.format(model.getLastKnownAverages().get(actor))
                + "\nSlope\t = \t" + df.format(slope));
    }

    /* Step -2:Define the JFreeChart object to create line chart */
    JFreeChart lineChartObject;
    if (expected) {
        lineChartObject = ChartFactory.createScatterPlot(
                "(Ideal) Profit Vs Occurences of \"" + need.getProperty(E3value.e3_has_name).getString()
                        + " \"",
                "Occurences of \"" + need.getProperty(E3value.e3_has_name).getString() + " \"",
                "Profit (in Euro)", line_chart_dataset, PlotOrientation.VERTICAL, true, true, false);
    } else {
        lineChartObject = ChartFactory.createScatterPlot(
                "(Non-ideal) Profit Vs Occurences of \"" + need.getProperty(E3value.e3_has_name).getString()
                        + " \"",
                "Occurences of \"" + need.getProperty(E3value.e3_has_name).getString() + " \"",
                "Profit (in Euro)", line_chart_dataset, PlotOrientation.VERTICAL, true, true, false);
    }
    return lineChartObject;
}

From source file:org.efs.openreports.engine.ChartReportEngine.java

private static XYDataset createXYDataset(ChartValue[] values) {
    XYSeries series = null;
    XYSeriesCollection seriesCollection = new XYSeriesCollection();

    for (int i = 0; i < values.length; i++) {
        XYChartValue value = (XYChartValue) values[i];

        if (series == null || !series.getKey().equals(value.getSeries())) {
            if (series != null) {
                seriesCollection.addSeries(series);
            }/*  w  ww .  jav a  2  s  . c o  m*/

            series = new XYSeries(value.getSeries());
        }

        series.add(value.getValue(), value.getSecondValue());
    }

    seriesCollection.addSeries(series);

    return seriesCollection;
}

From source file:audio.cords.old.RegressionDemo.java

private static XYDataset regress(XYSeriesCollection data) {
    // Determine bounds
    double xMin = Double.MAX_VALUE, xMax = 0;
    for (int i = 0; i < data.getSeriesCount(); i++) {
        XYSeries ser = data.getSeries(i);
        for (int j = 0; j < ser.getItemCount(); j++) {
            double x = ser.getX(j).doubleValue();
            if (x < xMin) {
                xMin = x;/* w  w w  .ja  v  a  2  s. c  om*/
            }
            if (x > xMax) {
                xMax = x;
            }
        }
    }
    // Create 2-point series for each of the original series
    XYSeriesCollection coll = new XYSeriesCollection();
    for (int i = 0; i < data.getSeriesCount(); i++) {
        XYSeries ser = data.getSeries(i);
        int n = ser.getItemCount();
        double sx = 0, sy = 0, sxx = 0, sxy = 0, syy = 0;
        for (int j = 0; j < n; j++) {
            double x = ser.getX(j).doubleValue();
            double y = ser.getY(j).doubleValue();
            sx += x;
            sy += y;
            sxx += x * x;
            sxy += x * y;
            syy += y * y;
        }
        double b = (n * sxy - sx * sy) / (n * sxx - sx * sx);
        double a = sy / n - b * sx / n;
        XYSeries regr = new XYSeries(ser.getKey());
        regr.add(xMin, a + b * xMin);
        regr.add(xMax, a + b * xMax);
        coll.addSeries(regr);
    }
    return coll;
}

From source file:org.audiveris.omr.util.ChartPlotter.java

/**
 * Add a series to the chart./*from   w  w  w.j av  a 2  s .c  o  m*/
 *
 * @param series        populated series
 * @param color         display color
 * @param displayShapes true to display a shape at each item
 */
public void add(XYSeries series, Color color, boolean displayShapes) {
    dataset.addSeries(series);

    final int index = dataset.getSeriesIndex(series.getKey());
    renderer.setSeriesPaint(index, color);
    renderer.setSeriesShapesVisible(index, displayShapes);
}

From source file:edu.gmu.cs.sim.util.media.chart.TimeSeriesChartGenerator.java

/** Adds a series, plus a (possibly null) SeriesChangeListener which will receive a <i>single</i>
 event if/when the series is deleted from the chart by the user.  The series should have a key
 in the form of a String.  Returns the series attributes. */
public SeriesAttributes addSeries(final XYSeries series, final SeriesChangeListener stopper) {
    XYSeriesCollection xysc = (XYSeriesCollection) getSeriesDataset();

    int i = xysc.getSeriesCount();
    series.setKey(new ChartGenerator.UniqueString(series.getKey()));
    xysc.addSeries(series);//www. ja  v  a2  s.  c  o  m
    TimeSeriesAttributes csa = new TimeSeriesAttributes(this, series, i, stopper);
    seriesAttributes.add(csa);
    revalidate();
    return csa;
}

From source file:edu.gmu.cs.sim.util.media.chart.TimeSeriesAttributes.java

/** Builds a TimeSeriesAttributes with the given generator, series, and index for the series. */
public TimeSeriesAttributes(ChartGenerator generator, XYSeries series, int index,
        SeriesChangeListener stoppable) {
    super(generator, "" + series.getKey(), index, stoppable);
    this.series = series;
}

From source file:statistic.graph.dataset.XYChartCreator.java

private void createChart() {
    switch (diagram.getType()) {
    case AREA_CHART: {
        chart = Charts.createXYAreaChart(diagram, dataset);
        break;/*from  ww w .j a  va  2 s  .  c  o m*/
    }
    case BAR_CHART: {
        chart = Charts.createXYBarChart(diagram, dataset);
        break;
    }
    case LINE_CHART: {
        chart = Charts.createXYLineChart(diagram, dataset);
        break;
    }
    case STEP_AREA_CHART: {
        chart = Charts.createXYStepAreaChart(diagram, dataset);
        break;
    }
    case STEP_CHART: {
        chart = Charts.createXYStepChart(diagram, dataset);
        break;
    }
    default: {
        throw new AssertionError("This should not happen.");
    }
    }
    for (DisplayableStatistic statistic : statistics) {
        if (seriesForStatistic.containsKey(statistic) && statistic.getAttributes().getColor() != null) {
            XYSeries series = seriesForStatistic.get(statistic);
            int index = dataset.indexOf(series.getKey());
            chart.getXYPlot().getRenderer().setSeriesPaint(index, statistic.getAttributes().getColor());
        }
    }
}