Example usage for org.jfree.data.xy XYSeriesCollection addSeries

List of usage examples for org.jfree.data.xy XYSeriesCollection addSeries

Introduction

In this page you can find the example usage for org.jfree.data.xy XYSeriesCollection addSeries.

Prototype

public void addSeries(XYSeries series) 

Source Link

Document

Adds a series to the collection and sends a DatasetChangeEvent to all registered listeners.

Usage

From source file:org.jfree.data.xy.junit.XYSeriesCollectionTest.java

/**
 * Serialize an instance, restore it, and check for equality.
 *//*from www. j  ava2 s. c o  m*/
public void testSerialization() {
    XYSeries s1 = new XYSeries("Series");
    s1.add(1.0, 1.1);
    XYSeriesCollection c1 = new XYSeriesCollection();
    c1.addSeries(s1);
    XYSeriesCollection c2 = null;

    try {
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        ObjectOutput out = new ObjectOutputStream(buffer);
        out.writeObject(c1);
        out.close();

        ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
        c2 = (XYSeriesCollection) in.readObject();
        in.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    assertEquals(c1, c2);
}

From source file:org.jfree.data.xy.junit.XYSeriesCollectionTest.java

/**
 * A test to cover bug 3445507.  The issue does not affact
 * XYSeriesCollection./*from   w w  w. j a  v a 2s .  com*/
 */
public void testBug3445507() {
    XYSeries s1 = new XYSeries("S1");
    s1.add(1.0, null);
    s1.add(2.0, null);

    XYSeries s2 = new XYSeries("S2");
    s1.add(1.0, 5.0);
    s1.add(2.0, 6.0);

    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(s1);
    dataset.addSeries(s2);

    Range r = dataset.getRangeBounds(false);
    assertEquals(5.0, r.getLowerBound(), EPSILON);
    assertEquals(6.0, r.getUpperBound(), EPSILON);
}

From source file:MSUmpire.DIA.MixtureModelKDESemiParametric.java

public void GeneratePlot(String pngfile) throws IOException {
    String modelfile = FilenameUtils.getFullPath(pngfile) + "/" + FilenameUtils.getBaseName(pngfile)
            + "_ModelPoints.txt";
    FileWriter writer = new FileWriter(modelfile);

    double[] IDObs = new double[IDEmpiricalDist.getN()];
    double[] DecoyObs = new double[DecoyEmpiricalDist.getN()];

    for (int i = 0; i < IDEmpiricalDist.getN(); i++) {
        IDObs[i] = IDEmpiricalDist.getObs(i);
    }//from   w  ww  .  j  a v  a 2  s .  c  o  m
    for (int i = 0; i < DecoyEmpiricalDist.getN(); i++) {
        DecoyObs[i] = DecoyEmpiricalDist.getObs(i);
    }

    XYSeries model1 = new XYSeries("Incorrect matches");
    XYSeries model2 = new XYSeries("Correct matches");
    XYSeries model3 = new XYSeries("All target hits");

    writer.write("UScore\tModel\tCorrect\tDecoy\n");
    for (int i = 0; i < NoBinPoints; i++) {
        model1.add(model_kde_x[i], decoy_kde_y[i]);
        model2.add(model_kde_x[i], correct_kde_y[i]);
        model3.add(model_kde_x[i], model_kde_y[i]);
        writer.write(model_kde_x[i] + "\t" + model_kde_y[i] + "\t" + correct_kde_y[i] + "\t" + decoy_kde_y[i]
                + "\n");
    }
    writer.close();

    MixtureModelProb = new float[NoBinPoints + 1][3];
    float positiveaccu = 0f;
    float negativeaccu = 0f;

    MixtureModelProb[0][0] = (float) model2.getMaxX() + Float.MIN_VALUE;
    MixtureModelProb[0][1] = 1f;
    MixtureModelProb[0][2] = 1f;

    for (int i = 1; i < NoBinPoints + 1; i++) {
        double positiveNumber = correct_kde_y[NoBinPoints - i];
        double negativeNumber = decoy_kde_y[NoBinPoints - i];
        MixtureModelProb[i][0] = (float) model_kde_x[NoBinPoints - i];
        positiveaccu += positiveNumber;
        negativeaccu += negativeNumber;
        MixtureModelProb[i][2] = 0.999999f * (float) (positiveNumber / (negativeNumber + positiveNumber));
        MixtureModelProb[i][1] = 0.999999f * (float) (positiveaccu / (negativeaccu + positiveaccu));
    }

    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(model1);
    dataset.addSeries(model2);
    dataset.addSeries(model3);

    HistogramDataset histogramDataset = new HistogramDataset();
    histogramDataset.setType(HistogramType.SCALE_AREA_TO_1);
    histogramDataset.addSeries("ID hits", IDObs, 100);
    histogramDataset.addSeries("Decoy hits", DecoyObs, 100);
    //histogramDataset.addSeries("Model hits", ModelObs, 100);

    JFreeChart chart = ChartFactory.createHistogram(FilenameUtils.getBaseName(pngfile), "Score", "Hits",
            histogramDataset, PlotOrientation.VERTICAL, true, false, false);
    XYPlot plot = chart.getXYPlot();

    NumberAxis domain = (NumberAxis) plot.getDomainAxis();
    domain.setRange(min, max);
    plot.setBackgroundPaint(Color.white);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    plot.setForegroundAlpha(0.8f);
    chart.setBackgroundPaint(Color.white);

    XYLineAndShapeRenderer render = new XYLineAndShapeRenderer();

    plot.setDataset(1, dataset);
    plot.setRenderer(1, render);
    plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
    try {
        ChartUtilities.saveChartAsPNG(new File(pngfile), chart, 1000, 600);
    } catch (IOException e) {
    }
}

From source file:playground.anhorni.crossborder.verification.TGZMCompare.java

public JFreeChart createChart(String actType) {

    XYSeriesCollection dataset0 = new XYSeriesCollection();
    XYSeries series0 = new XYSeries(actType + " Trips MATSim");
    XYSeries series1 = new XYSeries(actType + " Trips TGZM");

    for (int i = 0; i < 24; i++) {
        double realVal = this.aggregatedVolumePerHour[i];
        int calcVal = this.xTripsPerHour[i];
        series0.add(i, calcVal);/*w  w w .ja  v  a2  s  .c o m*/
        series1.add(i, realVal);
    }
    dataset0.addSeries(series0);
    dataset0.addSeries(series1);

    String title = "Compare TGZM and MATSim volumes per hour";
    this.chart = ChartFactory.createXYLineChart(title, "hour", // x axis label
            "Trips", // y axis label
            dataset0, // data
            PlotOrientation.VERTICAL, true, // include legend
            true, // tooltips
            false // urls
    );

    XYPlot plot = this.chart.getXYPlot();
    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setLinesVisible(true);
    renderer.setSeriesPaint(0, Color.blue);
    renderer.setSeriesShape(0, new Rectangle2D.Double(-1.5, -1.5, 3.0, 3.0));
    renderer.setSeriesPaint(1, Color.black);
    renderer.setSeriesShape(1, new Rectangle2D.Double(-1.5, -1.5, 3.0, 3.0));

    plot.setRenderer(0, renderer);

    return this.chart;
}

From source file:umberto.WeightedClusterCoefficient.WeightedClusterCoefficient.java

@Override
public String getReport() {
    /*/*from   w  w w .  jav a  2 s .  co m*/
     * SAVE IN FILE FOR MULTIPLE PLOT
     */
    //current directory
    boolean success;
    String currentDir = System.getProperty("user.dir");
    String saveDir = currentDir + "\\savedata";
    boolean exist = (new File(saveDir)).exists();
    if (!exist) {
        success = (new File(saveDir)).mkdir();
    } else {
        success = true;
    }
    Set<SortedMap.Entry<Float, Integer>> set_strenght2 = strenght_distribution.entrySet();
    for (SortedMap.Entry<Float, Integer> element : set_strenght2) {
        float cumulated = 0;
        for (SortedMap.Entry<Float, Integer> element2 : set_strenght2) {
            //F(s) = nodes fraction with (strenght/strenght max) >= s
            if (element2.getKey() >= element.getKey()) {
                cumulated += element2.getValue();
            }
        }
        cumulated_strenght_distribution.put(element.getKey(), (cumulated / strenght_distribution.lastKey()));
    }
    System.out.println(strenght_distribution);
    System.out.println(cumulated_strenght_distribution);

    //Transform to Map
    Map<Float, Float> strenght_distribution_map = new HashMap<Float, Float>();
    Set<SortedMap.Entry<Float, Float>> set_strenght = cumulated_strenght_distribution.entrySet();
    for (SortedMap.Entry<Float, Float> element : set_strenght) {
        Float num_occorrenze = element.getValue();
        Float strenght = element.getKey();
        strenght_distribution_map.put(strenght, num_occorrenze);
    }

    System.out.println(cc_distribution);

    Map<Float, Integer> cc_distribution_map = new HashMap<Float, Integer>();

    Set<SortedMap.Entry<Float, Integer>> set_cc = cc_distribution.entrySet();
    for (SortedMap.Entry<Float, Integer> element : set_cc) {
        Integer num_occorrenze = element.getValue();
        Float cc = element.getKey();
        //double prob = (double) num_occorrenze / N;
        cc_distribution_map.put(cc, num_occorrenze);
    }
    //Save file
    if (success) {
        String completeDirIntra = saveDir + "\\StrengthDistribution.txt";
        String finalDir = completeDirIntra.replace("\\", "\\\\");
        LOGGER.log(Level.INFO, "Intra path: {0}", new Object[] { finalDir });
        generateSaveFile(finalDir, strenght_distribution_map);
    } else {
        LOGGER.log(Level.INFO, "Don't create a new directory");
    }
    System.out.println(strenght_distribution_map);
    System.out.println(cc_distribution_map);
    //Distribution series
    XYSeries strenghtSeries = ChartUtils.createXYSeries(strenght_distribution_map, "Strength Distribution");
    XYSeries ccSeries = ChartUtils.createXYSeries(cc_distribution_map,
            "Weighted cluster coefficient Distribution");

    XYSeriesCollection dataset1 = new XYSeriesCollection();
    dataset1.addSeries(strenghtSeries);

    XYSeriesCollection dataset2 = new XYSeriesCollection();
    dataset2.addSeries(ccSeries);

    JFreeChart chart1 = ChartFactory.createXYLineChart("Strenght Distribution", "Strength", "F(Strength)",
            dataset1, PlotOrientation.VERTICAL, true, false, false);
    ChartUtils.decorateChart(chart1);
    ChartUtils.scaleLogChart(chart1, strenghtSeries, false);
    String strenghtImageFile = ChartUtils.renderChart(chart1, "Strength-distribution.png");

    JFreeChart chart2 = ChartFactory.createXYLineChart("Weighted Cluster Coefficient Distribution",
            "Weighted Cluster Coefficient", "# Nodes", dataset2, PlotOrientation.VERTICAL, true, false, false);

    ChartUtils.decorateChart(chart2);
    ChartUtils.scaleChart(chart2, ccSeries, false);
    String ccImageFile = ChartUtils.renderChart(chart2, "ccdistribution.png");

    NumberFormat f = new DecimalFormat("#0.000");

    return "<HTML> <BODY> <h1> Weighted Clustering Coefficient Metric Report </h1> " + "<hr>" + "<br />"
            + "<h2> Parameters: </h2>" + "Network Interpretation:  " + (isDirected ? "directed" : "undirected")
            + "<br />" + "<br>" + "<h2> Results: </h2>" + "Average Clustering Coefficient: "
            + f.format(avgClusteringCoeff) + "<br />"
            + "The Average Clustering Coefficient is the mean value of individual coefficients.<br /><br />"
            + ccImageFile + "<br /><br />" + "Average Node Strength: " + f.format(avgStrenght) + "<br />"
            + "The Average Node Strength is the mean value of individual node Strength.<br /><br />"
            + strenghtImageFile + "<br /><br />"
            + "Where F(Strength) = fraction of nodes with (Strength/Max Strength)>= Strength" + "<br />"
            + "<h2> Algorithm: </h2>" + "Simple and slow brute force.<br />"
            + "Reference: \"A. Barrat and M. Barthelemy and R. Pastor-Satorras and A. Vespignani (2004). \"The architecture of complex weighted networks\". Proceedings of the National Academy of Sciences 101 (11): 37473752."
            + "</BODY> </HTML>";
}

From source file:net.bioclipse.seneca.views.BestStructureView.java

public void updateViewTemp() {
    XYSeries series = new XYSeries("Temp");
    for (int i = 0; i < (maxSteps != 0 ? maxSteps : temps.size()); i++) {
        if (i < temps.size())
            series.add(i, temps.get(i));
        else// w ww.j a  va2  s  . co m
            series.add(i, 0);
    }

    XYSeriesCollection xyDataset = new XYSeriesCollection(series);
    XYSeries scoreseries = new XYSeries("Score");
    for (int i = 0; i < (maxSteps != 0 ? maxSteps : temps.size()); i++) {
        if (i < temps.size())
            scoreseries.add(i, scores.get(i));
        else
            scoreseries.add(i, 0);
    }
    xyDataset.addSeries(scoreseries);
    continuousChart.getXYPlot().setDataset(xyDataset);

}

From source file:AirplaneSettings.java

public void memFuncGraph() {
    // Create XY series for very low flight
    XYSeries veryLow = new XYSeries("Very Low");
    veryLow.add(0.5 * height, veryLow(0.5 * height));
    veryLow.add(0.7 * height, veryLow(0.7 * height));
    veryLow.add(0.8 * height, veryLow(0.8 * height));
    veryLow.add(1.5 * height, veryLow(1.5 * height));

    // Create XY series for low flight
    XYSeries low = new XYSeries("Low");
    low.add(0.5 * height, low(0.5 * height));
    low.add(0.7 * height, low(0.7 * height));
    low.add(0.8 * height, low(0.8 * height));
    low.add(0.9 * height, low(0.9 * height));
    low.add(1.0 * height, low(1.0 * height));
    low.add(1.5 * height, low(1.5 * height));

    // Create XY series for high flight
    XYSeries high = new XYSeries("High");
    high.add(0.5 * height, high(0.5 * height));
    high.add(1.0 * height, high(1.0 * height));
    high.add(1.1 * height, high(1.1 * height));
    high.add(1.2 * height, high(1.2 * height));
    high.add(1.3 * height, high(1.3 * height));
    high.add(1.5 * height, high(1.5 * height));

    // Create XY series for very high flight
    XYSeries veryHigh = new XYSeries("Very High");
    veryHigh.add(0.5 * height, veryHigh(0.5 * height));
    veryHigh.add(1.2 * height, veryHigh(1.2 * height));
    veryHigh.add(1.3 * height, veryHigh(1.3 * height));
    veryHigh.add(1.5 * height, veryHigh(1.5 * height));

    // Add the series to the data set
    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(veryLow);
    dataset.addSeries(low);/* w w  w  .j  a  v  a  2s  . c o m*/
    dataset.addSeries(high);
    dataset.addSeries(veryHigh);

    // Generate the graph
    JFreeChart memFunction = ChartFactory.createXYLineChart("Membership Functions", // Title
            "Plane Height", // x-axis Label
            "Degree", // y-axis Label
            dataset, // Dataset
            PlotOrientation.VERTICAL, // Plot Orientation
            true, // Show Legend
            true, // Use tooltips
            false // Configure chart to generate URLs?
    );

    ChartFrame frame = new ChartFrame("Membership Functions", memFunction);
    frame.pack();
    frame.setVisible(true);
}

From source file:org.jfree.data.xy.junit.XYSeriesCollectionTest.java

/**
 * Test that a series belonging to a collection can be renamed (in fact, 
 * because of a bug this was not possible in JFreeChart 1.0.14).
 *//*  w w w .java  2 s .co m*/
public void testSeriesRename() {
    // first check that a valid renaming works
    XYSeries series1 = new XYSeries("A");
    XYSeries series2 = new XYSeries("B");
    XYSeriesCollection collection = new XYSeriesCollection();
    collection.addSeries(series1);
    collection.addSeries(series2);
    series1.setKey("C");
    assertEquals("C", collection.getSeries(0).getKey());

    // next, check that setting a duplicate key fails
    try {
        series2.setKey("C");
    } catch (IllegalArgumentException e) {
        // expected
    }
    assertEquals("B", series2.getKey()); // the series name should not 
    // change because "C" is already the key for the other series in the
    // collection
}

From source file:org.gephi.statistics.plugin.DegreeDistribution.java

/**
 *
 * @return The undirected version of this report.
 *//*from  w ww .j a v a 2  s .co m*/
private String getUndirectedReport() {
    double max = 0;
    XYSeries series2 = new XYSeries("Series 2");
    for (int i = 1; i < combinedDistribution[1].length; i++) {
        if (combinedDistribution[1][i] > 0) {
            series2.add((Math.log(combinedDistribution[0][i]) / Math.log(Math.E)),
                    (Math.log(combinedDistribution[1][i]) / Math.log(Math.E)));
            max = (float) Math.max((Math.log(combinedDistribution[0][i]) / Math.log(Math.E)), max);
        }
    }
    double a = combinedAlpha;
    double b = combinedBeta;

    XYSeries series1 = new XYSeries(combinedAlpha + " ");
    series1.add(0, a);
    series1.add(max, a + b * max);

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

    JFreeChart chart = ChartFactory.createXYLineChart("Degree Distribution", "Degree", "Occurrence", dataset,
            PlotOrientation.VERTICAL, true, false, false);
    XYPlot plot = (XYPlot) chart.getPlot();
    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setSeriesLinesVisible(0, true);
    renderer.setSeriesShapesVisible(0, false);
    renderer.setSeriesLinesVisible(1, false);
    renderer.setSeriesShapesVisible(1, true);
    renderer.setSeriesShape(1, new java.awt.geom.Ellipse2D.Double(0, 0, 1, 1));
    plot.setBackgroundPaint(java.awt.Color.WHITE);
    plot.setDomainGridlinePaint(java.awt.Color.GRAY);
    plot.setRangeGridlinePaint(java.awt.Color.GRAY);

    plot.setRenderer(renderer);

    String imageFile = "";
    try {
        final ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
        TempDir tempDir = TempDirUtils.createTempDir();
        final String fileName = "distribution.png";
        final File file1 = tempDir.createFile(fileName);
        imageFile = "<IMG SRC=\"file:" + file1.getAbsolutePath() + "\" "
                + "WIDTH=\"600\" HEIGHT=\"400\" BORDER=\"0\" USEMAP=\"#chart\"></IMG>";
        ChartUtilities.saveChartAsPNG(file1, chart, 600, 400, info);

    } catch (IOException e) {
        System.out.println(e.toString());
    }

    String report = "<HTML> <BODY> <h1>Degree Distribution Metric Report </h1> " + "<hr>" + "<br>"
            + "<h2> Parameters: </h2>" + "Network Interpretation:  " + (isDirected ? "directed" : "undirected")
            + "<br>" + "<br> <h2> Results: </h2>" + "Degree Power Law: -" + combinedAlpha + "\n <BR>"
            + imageFile + "</BODY> </HTML>";
    return report;
}

From source file:org.jfree.data.xy.junit.XYSeriesCollectionTest.java

/**
 * Confirm that the equals method can distinguish all the required fields.
 *///from w  ww. java 2  s. c  o  m
public void testEquals() {
    XYSeries s1 = new XYSeries("Series");
    s1.add(1.0, 1.1);
    XYSeriesCollection c1 = new XYSeriesCollection();
    c1.addSeries(s1);
    XYSeries s2 = new XYSeries("Series");
    s2.add(1.0, 1.1);
    XYSeriesCollection c2 = new XYSeriesCollection();
    c2.addSeries(s2);
    assertTrue(c1.equals(c2));
    assertTrue(c2.equals(c1));

    c1.addSeries(new XYSeries("Empty Series"));
    assertFalse(c1.equals(c2));
    c2.addSeries(new XYSeries("Empty Series"));
    assertTrue(c1.equals(c2));

    c1.setIntervalWidth(5.0);
    assertFalse(c1.equals(c2));
    c2.setIntervalWidth(5.0);
    assertTrue(c1.equals(c2));

    c1.setIntervalPositionFactor(0.75);
    assertFalse(c1.equals(c2));
    c2.setIntervalPositionFactor(0.75);
    assertTrue(c1.equals(c2));

    c1.setAutoWidth(true);
    assertFalse(c1.equals(c2));
    c2.setAutoWidth(true);
    assertTrue(c1.equals(c2));

}