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