public static void writeROCCurves(File outputFile, TreeMap<String, HitStatistic> hits) throws Exception{ XYSeriesCollection dataset = new XYSeriesCollection(); for(Entry<String, HitStatistic> e:hits.entrySet()){ File txtFile=new File(outputFile.getAbsolutePath().replaceAll(".jpg","_"+e.getKey().split("-")[2]+".txt")); BufferedWriter bw=new BufferedWriter(new FileWriter(txtFile)); XYSeries series= new XYSeries(e.getKey()); bw.write("false positive rate\tsensitivity"); bw.newLine(); List<double[]> roc=e.getValue().getROCAverage(); for(double[] r:roc){ bw.write(r[0]+"\t"+r[1]); bw.newLine(); series.add(r[0],r[1]); } dataset.addSeries(series); bw.close(); } final JFreeChart chart =ChartFactory.createXYLineChart("ROCCurve", "false positive rate", "sensitivity", dataset); ChartUtilities.saveChartAsJPEG(outputFile, chart, 1000, 400); }
private void addSeries(double[][] data,String[] seriesLabel,int xcolumn,Paint[] color){ int length = data.length; int numberOfSeries = data[0].length-1; //int currentSize = seriesColor.size(); for (int j = 0; j < numberOfSeries+1; j++) { XYSeriesCollection seriesCollection = new XYSeriesCollection(); XYSeries series = new XYSeries(seriesLabel[0],false); if(j==xcolumn) continue; else{ seriesColor.add(color[(j>=xcolumn)?j-1:j]); for(int i=0;i<length;i++){ series.add( data[i][xcolumn], data[i][j] ,false); } seriesCollection.addSeries(series); } dataset.add(seriesCollection); } }
/** * Creates a dataset for testing. * * @return A dataset. */ private XYDataset createXYDataset1() { XYSeries series1 = new XYSeries("S1"); series1.add(1.0, 100.0); series1.add(2.0, 101.0); series1.add(3.0, 102.0); XYSeries series2 = new XYSeries("S2"); series2.add(1.0, 103.0); series2.add(2.0, null); series2.add(3.0, 105.0); XYSeriesCollection result = new XYSeriesCollection(); result.addSeries(series1); result.addSeries(series2); result.setIntervalWidth(0.0); return result; }
/** * Gets the sampling interval in milliseconds. * * @param series the series * @param from the sampling interval offset start value * @param to the the sampling interval offset end value * @return the sampling interval */ private double getSamplingIntervalMilliSeconds(XYSeries series, int from, int to){ double samplingInterval = this.getSimulationDurationMilliSeconds(); if(to > series.getItemCount()-1 || to < 0){ to = series.getItemCount()-1; } if(!(from < to)){ from = to; } if(this.threadInfoStorage != null && series.getItemCount() > from){ Number start = series.getX(from); //first value Number end = series.getX(to); //last value samplingInterval = end.doubleValue() - start.doubleValue(); } return samplingInterval; }
/** * Creates a sample dataset for testing purposes. * * @return A sample dataset. */ private TableXYDataset createTableXYDataset1() { DefaultTableXYDataset dataset = new DefaultTableXYDataset(); XYSeries s1 = new XYSeries("Series 1", true, false); s1.add(1.0, 1.0); s1.add(2.0, 2.0); dataset.addSeries(s1); XYSeries s2 = new XYSeries("Series 2", true, false); s2.add(1.0, -2.0); s2.add(2.0, -1.0); dataset.addSeries(s2); return dataset; }
protected void fillToXYSeriesPriv(XYSeries series, float[] spectrum){ series.clear(); /** * caching decreases GC usage */ boolean useCached = false; if (!useCached){ for (int i = 0; i < spectrum.length; i++) { double freq = (freqStartHz + fftBinSizeHz * i) / 1000000; series.add(freq, spectrum[i]); } } else{ ArrayList<XYDataItem> items = cachedDataItems.get(cachedDataItemsIndex); for (int i = 0; i < spectrum.length; i++) { XYDataItem item = items.get(i); item.setY(spectrum[i]); series.add(item); } cachedDataItemsIndex = (cachedDataItemsIndex+1)%cachedDataItems.size(); } }
private XYDataset createNumericalDataSet() { XYSeriesCollection dataSet = new XYSeriesCollection(); int translatedPlotColumn = translateToModelColumn(plotColumn); double start = model.getLowerBound(translatedPlotColumn); double end = model.getUpperBound(translatedPlotColumn); double stepSize = (end - start) / (NUMBER_OF_STEPS - 1); for (int classIndex : model.getClassIndices()) { XYSeries series = new XYSeries(model.getClassName(classIndex)); ContinuousDistribution distribution = (ContinuousDistribution) model.getDistribution(classIndex, translatedPlotColumn); for (double currentValue = start; currentValue < end; currentValue += stepSize) { double probability = distribution.getProbability(currentValue); if (!Double.isNaN(probability)) { series.add(currentValue, distribution.getProbability(currentValue)); } } dataSet.addSeries(series); } return dataSet; }
public static void generateThroughputPerformChart(String dbName,long performBatchId){ String path=getChartRootPath(dbName+"_ThroughputPerform"); System.out.println(path); XYSeries values = new XYSeries(dbName); List<Map<String, Object>> list = BizDBUtils.selectListBySqlAndParam("select success_times,timeout_avg from ts_timeout_perform where perform_batch_id=? and load_type=99",performBatchId); if(list!=null&&list.size()>0){ for(int i=0;i<list.size();i++){ Map<String, Object> map = list.get(i); double timeout=((Number)map.get("timeout_avg")).doubleValue(); double successTimes=((Number)map.get("success_times")).doubleValue(); if(successTimes==0){ values.add(i+1,0); }else{ values.add(i+1,successTimes*(TimeUnit.SECONDS.toMicros(1)/timeout)); } } } XYSeriesCollection mCollection = new XYSeriesCollection(); mCollection.addSeries(values); JFreeChart mChart= createXYLineChart("数据吞吐量折线图", "请求次数","吞吐量(requests/sec)",mCollection); //saveAsFile(mChart,path, 1200, 800); saveAsFile(mChart,path, 2400, 800); }
public XYPlot layerRaster(Collection<Spike> spikes,Layer lay) { // throw new UnsupportedOperationException("This is broken for now!"); // Add the data Iterator<Spike> itr=spikes.iterator(); XYSeries data=new XYSeries("Events"); for (int i=0; i<spikes.size(); i++) { Spike evt=itr.next(); if (evt.layer==lay.ixLayer) data.add((float)evt.time/1000,evt.addr); } XYDataset raster = new XYSeriesCollection(data); //SamplingXYLineAndShapeRenderer renderer = new SamplingXYLineAndShapeRenderer(false, true); XYDotRenderer renderer = new XYDotRenderer(); renderer.setDotWidth(2); renderer.setDotHeight(5); return new XYPlot(raster, null, new NumberAxis("Layer "+lay.ixLayer), renderer); }
protected XYDataset createDataset(BufferedImage img) { CalculadorDeHistograma calculadorDePixel = new CalculadorDeHistograma(); calculadorDePixel.calculaHistogramas(img); int[] qtdPixelsR = calculadorDePixel.getHistogramaR(); int[] qtdPixelsG = calculadorDePixel.getHistogramaG(); int[] qtdPixelsB = calculadorDePixel.getHistogramaB(); final XYSeries linhaR = new XYSeries("R"); final XYSeries linhaG = new XYSeries("G"); final XYSeries linhaB = new XYSeries("B"); for (int i = 0; i < qtdPixelsR.length; i++) { linhaR.add(i, qtdPixelsR[i]); linhaG.add(i, qtdPixelsG[i]); linhaB.add(i, qtdPixelsB[i]); } final XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(linhaR); dataset.addSeries(linhaB); dataset.addSeries(linhaG); return dataset; }
public static void main(String arg[]){ XYSeries series = new XYSeries("Average Weight"); series.add(20, 20); series.add(40, 25); series.add(55, 50); series.add(70, 65); // series.add(20.0, 20.0); // series.add(40.0, 25.0); // series.add(55.0, 50.0); // series.add(70.0, 65.0); XYDataset xyDataset = new XYSeriesCollection(series); JFreeChart chart = ChartFactory.createXYLineChart ("XYLine Chart using JFreeChart", "Age", "Weight", xyDataset, PlotOrientation.VERTICAL, true, true, false); ChartFrame frame1=new ChartFrame("XYLine Chart",chart); frame1.setVisible(true); frame1.setSize(300,300); }
@Override public void crearFicheroXMLTRealLlegadaVictimas(String name) throws Exception{ seriesTRLlegadaVictimas = new XYSeries("Notification Time"); try { PrintWriter xml = new PrintWriter( new FileOutputStream(name)); this.ficheroXMLTRealLlegadaVictimas = xml; this.ficheroXMLTRealLlegadaVictimas.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); this.ficheroXMLTRealLlegadaVictimas.println("<sequence>"); } catch (FileNotFoundException e) { e.printStackTrace(); } }
/** * Confirm that the equals method can distinguish all the required fields. */ public void testEquals() { XYSeries s1 = new XYSeries("Series"); s1.add(1.0, 1.1); XYSeries s2 = new XYSeries("Series"); s2.add(1.0, 1.1); assertTrue(s1.equals(s2)); assertTrue(s2.equals(s1)); s1.setKey("Series X"); assertFalse(s1.equals(s2)); s2.setKey("Series X"); assertTrue(s1.equals(s2)); }
/** * Create a horizontal bar chart with sample data in the range -3 to +3. * * @return the chart. */ private static JFreeChart createChart() { // create a dataset... XYSeries series1 = new XYSeries("Series 1"); series1.add(1.0, 1.0); series1.add(2.0, 2.0); series1.add(3.0, 3.0); XYDataset dataset = new XYSeriesCollection(series1); // create the chart... return ChartFactory.createScatterPlot( "Scatter Plot", // chart title "Domain", "Range", dataset, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips false // urls ); }
public void GenerateModel() throws IOException { XYPointCollection points = new XYPointCollection(); XYSeries series = new XYSeries("Peptide ions"); XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); for (PepIonID pepA : LCMSA.GetPepIonList().values()) { if (LCMSB.GetPepIonList().containsKey(pepA.GetKey())) { PepIonID pepB = LCMSB.GetPepIonList().get(pepA.GetKey()); points.AddPoint(pepA.GetRT(), pepB.GetRT()); series.add(new XYDataItem(pepA.GetRT(), pepB.GetRT())); } } regression = new PiecewiseRegression(parameter.MaxCurveRTRange, parameter.MaxCurveRTRange); regression.SetData(points); float R2 = regression.GetR2(); Logger.getRootLogger().info("Retention time prediction model:(" + FilenameUtils.getBaseName(LCMSA.mzXMLFileName) + "-" + FilenameUtils.getBaseName(LCMSB.mzXMLFileName) + ")..R2=" + R2 + "(No. of commonly identified peptide ions=" + points.PointCount() + ")"); GenerateRTMapPNG(xySeriesCollection, series, R2); }
/** * Creates a sample dataset. * * @return Series 2. */ private XYDataset createDataset2() { // create dataset 2... XYSeries series2 = new XYSeries("Series 3"); series2.add(10.0, 16853.2); series2.add(20.0, 19642.3); series2.add(30.0, 18253.5); series2.add(40.0, 15352.3); series2.add(50.0, 13532.0); series2.add(100.0, 12635.3); series2.add(110.0, 13998.2); series2.add(120.0, 11943.2); series2.add(130.0, 16943.9); series2.add(140.0, 17843.2); series2.add(150.0, 16495.3); series2.add(160.0, 17943.6); series2.add(170.0, 18500.7); series2.add(180.0, 19595.9); return new XYSeriesCollection(series2); }
/** * Tests the the lower and upper margin settings produce the expected results. */ public void testAxisMargins() { XYSeries series = new XYSeries("S1"); series.add(100.0, 1.1); series.add(200.0, 2.2); XYSeriesCollection dataset = new XYSeriesCollection(series); dataset.setIntervalWidth(0.0); JFreeChart chart = ChartFactory.createScatterPlot( "Title", "X", "Y", dataset, PlotOrientation.VERTICAL, false, false, false ); ValueAxis domainAxis = chart.getXYPlot().getDomainAxis(); Range r = domainAxis.getRange(); assertTrue(NumberUtils.equal(110.0, r.getLength())); domainAxis.setLowerMargin(0.10); domainAxis.setUpperMargin(0.10); r = domainAxis.getRange(); assertTrue(NumberUtils.equal(120.0, r.getLength())); }
/** * Creates a new {@link XYDataset} containing the moving averages of each series in the * <code>source</code> dataset. * * @param source the source dataset. * @param suffix the string to append to source series names to create target series names. * @param period the averaging period. * @param skip the length of the initial skip period. * * @return The dataset. */ public static XYDataset createMovingAverage(XYDataset source, String suffix, double period, double skip) { // check arguments if (source == null) { throw new IllegalArgumentException( "MovingAverage.createMovingAverage(...) : null source (XYDataset)." ); } final XYSeriesCollection result = new XYSeriesCollection(); for (int i = 0; i < source.getSeriesCount(); i++) { final XYSeries s = createMovingAverage(source, i, source.getSeriesName(i) + suffix, period, skip); result.addSeries(s); } return result; }
/** * Simple test for the remove() method. */ public void testRemove() { final XYSeries s1 = new XYSeries("Series 1"); s1.add(1.0, 1.0); s1.add(2.0, 2.0); s1.add(3.0, 3.0); assertEquals(3, s1.getItemCount()); s1.remove(new Double(2.0)); assertEquals(new Double(3.0), s1.getX(1)); s1.remove(0); assertEquals(new Double(3.0), s1.getX(0)); }
/** * Confirm that the equals method can distinguish all the required fields. */ public void testEquals() { final DefaultTableXYDataset d1 = new DefaultTableXYDataset(); final XYSeries s1 = new XYSeries("Series 1", true, false); s1.add(1.0, 1.1); s1.add(2.0, 2.2); d1.addSeries(s1); final DefaultTableXYDataset d2 = new DefaultTableXYDataset(); final XYSeries s2 = new XYSeries("Series 1", true, false); s2.add(1.0, 1.1); s2.add(2.0, 2.2); d2.addSeries(s2); assertTrue(d1.equals(d2)); assertTrue(d2.equals(d1)); s1.add(3.0, 3.3); assertFalse(d1.equals(d2)); s2.add(3.0, 3.3); assertTrue(d1.equals(d2)); }
/** * Some checks for the toArray() method. */ public void testToArray() { XYSeries s = new XYSeries("S1"); double[][] array = s.toArray(); assertEquals(2, array.length); assertEquals(0, array[0].length); assertEquals(0, array[1].length); s.add(1.0, 2.0); array = s.toArray(); assertEquals(1, array[0].length); assertEquals(1, array[1].length); assertEquals(2, array.length); assertEquals(1.0, array[0][0], EPSILON); assertEquals(2.0, array[1][0], EPSILON); s.add(2.0, null); array = s.toArray(); assertEquals(2, array.length); assertEquals(2, array[0].length); assertEquals(2, array[1].length); assertEquals(2.0, array[0][1], EPSILON); assertTrue(Double.isNaN(array[1][1])); }
/** * Checks the results of an OLS regression on sample dataset 1 AFTER converting it to * an XYSeries. */ public void testOLSRegression1b() { final double[][] data = createSampleData1(); final XYSeries series = new XYSeries("Test"); for (int i = 0; i < 11; i++) { series.add(data[i][0], data[i][1]); } final XYDataset ds = new XYSeriesCollection(series); final double[] result2 = Regression.getOLSRegression(ds, 0); assertEquals(.25680930, result2[0], 0.0000001); assertEquals(0.72792106, result2[1], 0.0000001); }
/** * Checks the results of a power regression on sample dataset 1 AFTER converting it to * an XYSeries. */ public void testPowerRegression1b() { final double[][] data = createSampleData1(); final XYSeries series = new XYSeries("Test"); for (int i = 0; i < 11; i++) { series.add(data[i][0], data[i][1]); } final XYDataset ds = new XYSeriesCollection(series); final double[] result = Regression.getPowerRegression(ds, 0); assertEquals(0.91045813, result[0], 0.0000001); assertEquals(0.88918346, result[1], 0.0000001); }
/** * Checks the results of a power regression on sample dataset 2 AFTER converting it to * an XYSeries. */ public void testPowerRegression2b() { final double[][] data = createSampleData2(); final XYSeries series = new XYSeries("Test"); for (int i = 0; i < 10; i++) { series.add(data[i][0], data[i][1]); } final XYDataset ds = new XYSeriesCollection(series); final double[] result = Regression.getPowerRegression(ds, 0); assertEquals(106.1241681, result[0], 0.0000001); assertEquals(-0.8466615, result[1], 0.0000001); }
/** * Checks that the auto-range for the domain axis on an XYPlot is * working as expected. */ public void testXYAutoRange1() { XYSeries series = new XYSeries("Series 1"); series.add(1.0, 1.0); series.add(2.0, 2.0); series.add(3.0, 3.0); XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(series); JFreeChart chart = ChartFactory.createScatterPlot( "Test", "X", "Y", dataset, PlotOrientation.VERTICAL, false, false, false ); XYPlot plot = (XYPlot) chart.getPlot(); NumberAxis axis = (NumberAxis) plot.getDomainAxis(); axis.setAutoRangeIncludesZero(false); assertEquals(0.9, axis.getLowerBound(), EPSILON); assertEquals(3.1, axis.getUpperBound(), EPSILON); }
/** * Create a horizontal bar chart with sample data in the range -3 to +3. * * @return The chart. */ private static JFreeChart createChart() { // create a dataset... XYSeries series1 = new XYSeries("Series 1"); series1.add(1.0, 1.0); series1.add(2.0, 2.0); series1.add(3.0, 3.0); XYDataset dataset = new XYSeriesCollection(series1); // create the chart... return ChartFactory.createTimeSeriesChart( "XY Line Chart", // chart title "Domain", "Range", dataset, // data true, // include legend true, // tooltips true // urls ); }
/** * Create a horizontal bar chart with sample data in the range -3 to +3. * * @return The chart. */ private static JFreeChart createChart() { // create a dataset... XYSeries series1 = new XYSeries("Series 1"); series1.add(1.0, 1.0); series1.add(2.0, 2.0); series1.add(3.0, 3.0); XYDataset dataset = new XYSeriesCollection(series1); // create the chart... return ChartFactory.createXYStepChart( "Step Chart", // chart title "Domain", "Range", dataset, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips true // urls ); }
/** * Create a horizontal bar chart with sample data in the range -3 to +3. * * @return The chart. */ private static JFreeChart createChart() { // create a dataset... XYSeries series1 = new XYSeries("Series 1"); series1.add(1.0, 1.0); series1.add(2.0, 2.0); series1.add(3.0, 3.0); XYDataset dataset = new XYSeriesCollection(series1); // create the chart... return ChartFactory.createXYAreaChart( "Area Chart", // chart title "Domain", "Range", dataset, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips true // urls ); }
/** * Replaces the dataset and checks that it has changed as expected. */ public void testReplaceDataset() { // create a dataset... XYSeries series1 = new XYSeries("Series 1"); series1.add(10.0, 10.0); series1.add(20.0, 20.0); series1.add(30.0, 30.0); XYDataset dataset = new XYSeriesCollection(series1); LocalListener l = new LocalListener(); this.chart.addChangeListener(l); XYPlot plot = (XYPlot) this.chart.getPlot(); plot.setDataset(dataset); assertEquals(true, l.flag); ValueAxis axis = plot.getRangeAxis(); Range range = axis.getRange(); assertTrue("Expecting the lower bound of the range to be around 10: " + range.getLowerBound(), range.getLowerBound() <= 10); assertTrue("Expecting the upper bound of the range to be around 30: " + range.getUpperBound(), range.getUpperBound() >= 30); }
/** * Some checks for the addOrUpdate() method. */ public void testAddOrUpdate() { XYSeries series = new XYSeries("S1"); XYDataItem old = series.addOrUpdate(new Long(1), new Long(2)); assertTrue(old == null); assertEquals(1, series.getItemCount()); assertEquals(new Long(2), series.getY(0)); old = series.addOrUpdate(new Long(2), new Long(3)); assertTrue(old == null); assertEquals(2, series.getItemCount()); assertEquals(new Long(3), series.getY(1)); old = series.addOrUpdate(new Long(1), new Long(99)); assertEquals(new XYDataItem(new Long(1), new Long(2)), old); assertEquals(2, series.getItemCount()); assertEquals(new Long(99), series.getY(0)); assertEquals(new Long(3), series.getY(1)); }
/** * Create a horizontal bar chart with sample data in the range -3 to +3. * * @return The chart. */ private static JFreeChart createChart() { // create a dataset... XYSeries series1 = new XYSeries("Series 1"); series1.add(1.0, 1.0); series1.add(2.0, 2.0); series1.add(3.0, 3.0); XYDataset dataset = new XYSeriesCollection(series1); // create the chart... return ChartFactory.createXYLineChart( "XY Line Chart", // chart title "Domain", "Range", dataset, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips true // urls ); }
/** * Create a horizontal bar chart with sample data in the range -3 to +3. * * @return The chart. */ private static JFreeChart createChart() { // create a dataset... XYSeries series1 = new XYSeries("Series 1"); series1.add(1.0, 1.0); series1.add(2.0, 2.0); series1.add(3.0, 3.0); IntervalXYDataset dataset = new XYBarDataset(new XYSeriesCollection( series1), 1.0); // create the chart... return ChartFactory.createXYBarChart( "XY Bar Chart", // chart title "Domain", false, "Range", dataset, // data PlotOrientation.VERTICAL, true, // include legend true, // tooltips true // urls ); }
/** * Tests the the lower and upper margin settings produce the expected * results. */ public void testAxisMargins() { XYSeries series = new XYSeries("S1"); series.add(100.0, 1.1); series.add(200.0, 2.2); XYSeriesCollection dataset = new XYSeriesCollection(series); dataset.setIntervalWidth(0.0); JFreeChart chart = ChartFactory.createScatterPlot( "Title", "X", "Y", dataset, PlotOrientation.VERTICAL, false, false, false ); ValueAxis domainAxis = ((XYPlot) chart.getPlot()).getDomainAxis(); Range r = domainAxis.getRange(); assertEquals(110.0, r.getLength(), EPSILON); domainAxis.setLowerMargin(0.10); domainAxis.setUpperMargin(0.10); r = domainAxis.getRange(); assertEquals(120.0, r.getLength(), EPSILON); }
/** * Checks the results of an OLS regression on sample dataset 1 AFTER * converting it to an XYSeries. */ public void testOLSRegression1b() { double[][] data = createSampleData1(); XYSeries series = new XYSeries("Test"); for (int i = 0; i < 11; i++) { series.add(data[i][0], data[i][1]); } XYDataset ds = new XYSeriesCollection(series); double[] result2 = Regression.getOLSRegression(ds, 0); assertEquals(.25680930, result2[0], 0.0000001); assertEquals(0.72792106, result2[1], 0.0000001); }
/** * Confirm that the equals method can distinguish all the required fields. */ public void testEquals() { DefaultTableXYDataset d1 = new DefaultTableXYDataset(); XYSeries s1 = new XYSeries("Series 1", true, false); s1.add(1.0, 1.1); s1.add(2.0, 2.2); d1.addSeries(s1); DefaultTableXYDataset d2 = new DefaultTableXYDataset(); XYSeries s2 = new XYSeries("Series 1", true, false); s2.add(1.0, 1.1); s2.add(2.0, 2.2); d2.addSeries(s2); assertTrue(d1.equals(d2)); assertTrue(d2.equals(d1)); s1.add(3.0, 3.3); assertFalse(d1.equals(d2)); s2.add(3.0, 3.3); assertTrue(d1.equals(d2)); }
/** * Simple test for the indexOf() method. */ public void testIndexOf() { XYSeries s1 = new XYSeries("Series 1"); s1.add(1.0, 1.0); s1.add(2.0, 2.0); s1.add(3.0, 3.0); assertEquals(0, s1.indexOf(new Double(1.0))); }