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

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

Introduction

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

Prototype

public void add(XYDataItem item, boolean notify) 

Source Link

Document

Adds a data item to the series and, if requested, sends a SeriesChangeEvent to all registered listeners.

Usage

From source file:ca.nengo.plot.impl.DefaultPlotter.java

private static XYSeriesCollection getDataset(SpikePattern pattern) {
    XYSeriesCollection dataset = new XYSeriesCollection();

    for (int i = 0; i < pattern.getNumNeurons(); i++) {
        XYSeries series = new XYSeries("Neuron " + i);
        float[] spikes = pattern.getSpikeTimes(i);
        for (int j = 0; j < spikes.length; j++) {
            series.add(spikes[j], i);
        }//from  w  w w .j a v a  2  s. c o m
        dataset.addSeries(series);
    }

    return dataset;
}

From source file:osh.comdriver.simulation.cruisecontrol.ScheduleDrawer.java

/**
 * Creates a dataset, consisting of two series of monthly data.
 *
 * @return The dataset.// w  w w .  j  a  va 2s. co  m
 */
private static XYDataset[] createDataset(List<Schedule> schedules, HashMap<VirtualCommodity, PriceSignal> ps,
        HashMap<VirtualCommodity, PowerLimitSignal> pls, long currentTime) {

    XYSeriesCollection dataset1 = new XYSeriesCollection(); //power axis

    if (pls != null) {
        for (Entry<VirtualCommodity, PowerLimitSignal> e : pls.entrySet()) {
            long time = (long) ((currentTime / 86400.0) * 86400);

            PowerLimitSignal currentPls = e.getValue();

            XYSeries upperLimit = new XYSeries(e.getKey().getCommodity() + "_upper_limit");
            XYSeries lowerLimit = new XYSeries(e.getKey().getCommodity() + "_lower_limit");

            while (currentPls != null && currentPls.getNextPowerLimitChange(time) != null) {
                upperLimit.add(time * 1000, currentPls.getPowerUpperLimit(time));
                lowerLimit.add(time * 1000, currentPls.getPowerLowerLimit(time));

                time = currentPls.getNextPowerLimitChange(time);

                upperLimit.add((time - 1) * 1000, currentPls.getPowerUpperLimit(time - 1));
                lowerLimit.add((time - 1) * 1000, currentPls.getPowerLowerLimit(time - 1));
            }

            dataset1.addSeries(upperLimit);
            dataset1.addSeries(lowerLimit);
        }
    }

    XYSeriesCollection dataset2 = new XYSeriesCollection(); //costs axis

    if (ps != null) {
        for (Entry<VirtualCommodity, PriceSignal> e : ps.entrySet()) {
            long time = (long) ((currentTime / 86400.0) * 86400);

            PriceSignal currentPs = e.getValue();
            XYSeries currentxySeries = new XYSeries(e.getKey().getCommodity() + "_price");

            while (currentPs != null && currentPs.getNextPriceChange(time) != null) {
                currentxySeries.add(time * 1000, currentPs.getPrice(time));
                time = currentPs.getNextPriceChange(time);
                currentxySeries.add((time - 1) * 1000, currentPs.getPrice(time - 1));
            }

            dataset2.addSeries(currentxySeries);
        }
    }

    XYSeriesCollection dataset3 = new XYSeriesCollection();

    if (schedules != null) {
        int cntr = 1;
        SparseLoadProfile powerSum = new SparseLoadProfile();

        if (schedules != null) {
            for (Schedule i : schedules) {

                XYSeries[] powerProfile = (XYSeries[]) renderSeries(i.getProfile(), Integer.toString(cntr++),
                        currentTime);

                for (int j = 0; j < powerProfile.length; j++) {
                    dataset3.addSeries(powerProfile[j]);
                }

                powerSum = (SparseLoadProfile) powerSum.merge(i.getProfile(), 0);
            }
        }

        XYSeries[] powerProfileSum = (XYSeries[]) renderSeries(powerSum, "sum", currentTime);

        for (int j = 0; j < powerProfileSum.length; j++) {
            dataset3.addSeries(powerProfileSum[j]);
        }
    }

    return new XYDataset[] { dataset1, dataset2, dataset3 };
}

From source file:de.hs.mannheim.modUro.controller.diagram.ModeltypeDiagramController.java

/**
 * Creates Dataset.//from w  w  w .  j a va  2s.com
 *
 * @return
 */
private static XYDataset createDataset(List<Simulation> simulationList, String selectedItem) {

    XYSeriesCollection dataset = new XYSeriesCollection();

    for (Simulation simualtionItem : simulationList) {
        XYSeries xySerie = new XYSeries(simualtionItem.getSimulationName());

        for (StatisticValues metricTypeItem : simualtionItem.getMetricTypes()) {
            if (metricTypeItem.getName().equals(selectedItem)) {
                double x;
                double y;
                double[][] fitnessArray = ((MetricType) metricTypeItem).getMetricData();

                for (int i = 0; i < fitnessArray.length; i++) {
                    x = fitnessArray[i][0];
                    y = fitnessArray[i][1];
                    xySerie.add(x, y);
                }
            }
        }
        dataset.addSeries(xySerie);
    }
    return dataset;
}

From source file:edu.fullerton.viewerplugin.PluginSupport.java

public static int scaleRange(XYSeriesCollection mtds, Double miny, Double maxy) {
    int exp = PluginSupport.getExp(miny, maxy);
    if (exp > 0 && exp < 100) {
        int nseries = mtds.getSeriesCount();
        XYSeries[] newSeries = new XYSeries[nseries];

        double scale = Math.pow(10, exp);
        for (int s = 0; s < nseries; s++) {
            XYSeries ds = (XYSeries) mtds.getSeries(s);
            Comparable skey = mtds.getSeriesKey(s);
            XYSeries nds = new XYSeries(skey, true);
            for (int item = 0; item < ds.getItemCount(); item++) {
                double x = ds.getX(item).doubleValue();
                double y = ds.getY(item).doubleValue();

                y *= scale;//from w w  w  .  j a va  2s.  c  o  m
                nds.add(x, y);
            }
            newSeries[s] = nds;
        }
        mtds.removeAllSeries();
        for (int s = 0; s < nseries; s++) {
            mtds.addSeries(newSeries[s]);
        }
    } else {
        exp = 0;
    }
    return exp;
}

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 . j a  v a2 s.c  o m

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

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

    seriesCollection.addSeries(series);

    return seriesCollection;
}

From source file:cn.InstFS.wkr.NetworkMining.UIs.TimeSeriesChart1.java

public static XYDataset createNormalDataset(DataItems normal, String protocol1) {
    // ???/*from w  w w  . jav a2 s  .c om*/
    int length = normal.getLength();
    int time[] = new int[length];
    XYSeries xyseries = new XYSeries(protocol1);
    XYSeriesCollection xyseriescollection = new XYSeriesCollection();

    // ??

    for (int i = 0; i < length; i++) {
        DataItem temp = new DataItem();

        temp = normal.getElementAt(i);

        //System.out.println("DataItem.time=" + temp.getTime().getTime());

        xyseries.add(i, Double.parseDouble(temp.getData())); // 

    }
    xyseriescollection.addSeries(xyseries);

    return xyseriescollection;
}

From source file:org.matsim.contrib.drt.analysis.DynModeTripsAnalyser.java

public static void analyseDetours(Network network, List<DynModeTrip> trips, DrtConfigGroup drtCfg,
        String fileName) {/*  w w w  . j a  v  a 2s.c o  m*/
    if (trips == null)
        return;

    List<String> detours = new ArrayList<String>();
    XYSeries distances = new XYSeries("distances");
    XYSeries travelTimes = new XYSeries("travel times");
    XYSeries rideTimes = new XYSeries("ride times");

    for (DynModeTrip trip : trips) {
        if (trip.getToLinkId() == null) {
            continue; // unfinished trip (simulation stopped before arrival)
        }

        double travelTime = trip.getInVehicleTravelTime() + trip.getWaitTime();
        distances.add(trip.getTravelDistance(), trip.getUnsharedDistanceEstimate_m());
        travelTimes.add(travelTime, trip.getUnsharedTimeEstimate_m());
        rideTimes.add(trip.getInVehicleTravelTime(), trip.getUnsharedTimeEstimate_m());

        double distanceDetour = trip.getTravelDistance() / trip.getUnsharedDistanceEstimate_m();
        double timeDetour = travelTime / trip.getUnsharedTimeEstimate_m();
        detours.add(trip.getPerson() + ";" + trip.getTravelDistance() + ";"
                + trip.getUnsharedDistanceEstimate_m() + ";" + distanceDetour + ";" + travelTime + ";"
                + trip.getUnsharedTimeEstimate_m() + ";" + timeDetour);
    }

    collection2Text(detours, fileName + ".csv",
            "person;distance;unsharedDistance;distanceDetour;time;unsharedTime;timeDetour");

    final JFreeChart chart = DensityScatterPlots.createPlot("Travelled Distances", "travelled distance [m]",
            "unshared ride distance [m]", distances);
    ChartSaveUtils.saveAsPNG(chart, fileName + "_distancePlot", 1500, 1500);

    final JFreeChart chart2 = DensityScatterPlots.createPlot("Travel Times", "travel time [s]",
            "unshared ride time [s]", travelTimes,
            Pair.of(drtCfg.getMaxTravelTimeAlpha(), drtCfg.getMaxTravelTimeBeta()));
    ChartSaveUtils.saveAsPNG(chart2, fileName + "_travelTimePlot", 1500, 1500);

    final JFreeChart chart3 = DensityScatterPlots.createPlot("Ride Times", "ride time [s]",
            "unshared ride time [s]", rideTimes,
            Pair.of(drtCfg.getMaxTravelTimeAlpha(), drtCfg.getMaxTravelTimeBeta()));
    ChartSaveUtils.saveAsPNG(chart3, fileName + "_rideTimePlot", 1500, 1500);
}

From source file:net.sf.mzmine.chartbasics.HistogramChartFactory.java

private static void addDPToSeries(XYSeries series, int[] bins, int i, double binwidth, double min, double max,
        DoubleFunction<Double> function) {
    // adds a data point to the series
    double x = min + (binwidth / 2.0) + i * binwidth;
    if (function != null)
        x = function.apply(x);/*from w  w  w. j av  a2  s  .  co m*/
    series.add(x, bins[i]);
}

From source file:dbseer.gui.chart.DBSeerChartFactory.java

public static XYSeriesCollection getCustomXYSeriesCollection(String xAxisName, String yAxisName)
        throws Exception {
    StatisticalPackageRunner runner = DBSeerGUI.runner;

    runner.eval("[Xdata Ydata] = plotter.plotCustom('" + DBSeerPlotControlPanel.axisMap.get(xAxisName) + "', '"
            + DBSeerPlotControlPanel.axisMap.get(yAxisName) + "');");

    Object[] xCellArray = (Object[]) runner.getVariableCell("Xdata");
    Object[] yCellArray = (Object[]) runner.getVariableCell("Ydata");

    XYSeriesCollection dataSet = new XYSeriesCollection();

    int numXCellArray = xCellArray.length;
    int numYCellArray = yCellArray.length;

    if (numXCellArray != numYCellArray) {
        JOptionPane.showMessageDialog(null, "The number of X dataset and Y dataset does not match.",
                "The number of X dataset and Y dataset does not match.", JOptionPane.ERROR_MESSAGE);
        System.out.println(numXCellArray + " : " + numYCellArray);
        return null;
    }//from  w  w w . j  av a2s.  c o m

    for (int i = 0; i < numYCellArray; ++i) {
        double[] xArray = (double[]) xCellArray[i];

        runner.eval("yArraySize = size(Ydata{" + (i + 1) + "});");
        runner.eval("yArray = Ydata{" + (i + 1) + "};");
        double[] yArraySize = runner.getVariableDouble("yArraySize");
        double[] yArray = runner.getVariableDouble("yArray");

        int xLength = xArray.length;
        int row = (int) yArraySize[0];
        int col = (int) yArraySize[1];

        for (int c = 0; c < col; ++c) {
            XYSeries series = new XYSeries(yAxisName);

            for (int r = 0; r < row; ++r) {
                int xRow = (r >= xLength) ? xLength - 1 : r;
                series.add(xArray[xRow], yArray[r + c * row]);
            }
            dataSet.addSeries(series);
        }
    }

    return dataSet;
}

From source file:eu.cassandra.utils.Utils.java

/**
 * This function is used for the visualization of a Line Diagram.
 * //from w w  w. j a  va2s .c o  m
 * @param title
 *          The title of the chart.
 * @param x
 *          The unit on the X axis of the chart.
 * @param y
 *          The unit on the Y axis of the chart.
 * @param data
 *          The array of values.
 * @return a chart panel with the graphical representation.
 */
public static void createLineDiagram(String title, String x, String y, ArrayList<Double> data) {

    XYSeries series1 = new XYSeries("Active Power");
    for (int i = 0; i < data.size(); i++) {
        series1.add(i, data.get(i));
    }

    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series1);

    PlotOrientation orientation = PlotOrientation.VERTICAL;
    boolean show = true;
    boolean toolTips = false;
    boolean urls = false;

    JFreeChart chart = ChartFactory.createXYLineChart(title, x, y, dataset, orientation, show, toolTips, urls);

    int width = 1024;
    int height = 768;

    try {
        ChartUtilities.saveChartAsPNG(new File(Constants.chartFolder + title + ".PNG"), chart, width, height);
    } catch (IOException e) {
    }

}