From: Yoav F. <yf...@us...> - 2008-09-11 22:49:15
|
Update of /cvsroot/jboost/jboost/src/jboost/visualization In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv3536/src/jboost/visualization Modified Files: DataSet.java HistogramFrame.java Log Message: Put histogram and fluctuations bar in separate plots. Index: DataSet.java =================================================================== RCS file: /cvsroot/jboost/jboost/src/jboost/visualization/DataSet.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DataSet.java 11 Sep 2008 21:25:45 -0000 1.4 --- DataSet.java 11 Sep 2008 22:49:10 -0000 1.5 *************** *** 39,57 **** this.iterList = iterList; data = new ArrayList<ArrayList<DataElement>>(); - fluctBinSeries = new XYIntervalSeries[iterList.length]; - fluctRangeSeries = new XYIntervalSeries[iterList.length]; for(int i=0; i<iterList.length; i++) { data.add(new ArrayList<DataElement>()); fluctBinSeries[i] = new XYIntervalSeries("Bins"); fluctRangeSeries[i] = new XYIntervalSeries("Ranges"); } } - public DataSet(int size,int iterations) { data = new ArrayList<ArrayList<DataElement>>(); iterList = new String[iterations]; Random generator = new Random(12345678L); for (int iter = 0; iter<iterations; iter++) { iterList[iter] = "iteration "+iter; data.add(new ArrayList<DataElement>()); --- 39,68 ---- this.iterList = iterList; data = new ArrayList<ArrayList<DataElement>>(); for(int i=0; i<iterList.length; i++) { data.add(new ArrayList<DataElement>()); + } + initFluctSeries(iterList.length); + } + + private void initFluctSeries(int iterations) { + fluctBinSeries = new XYIntervalSeries[iterations]; + fluctRangeSeries = new XYIntervalSeries[iterations]; + for(int i=0; i<iterations; i++) { fluctBinSeries[i] = new XYIntervalSeries("Bins"); fluctRangeSeries[i] = new XYIntervalSeries("Ranges"); } + } public DataSet(int size,int iterations) { data = new ArrayList<ArrayList<DataElement>>(); iterList = new String[iterations]; + initFluctSeries(iterations); + Random generator = new Random(12345678L); for (int iter = 0; iter<iterations; iter++) { + for(int j=0; j<iter+1; j++) { + addFluctItems(iter,j*1.0,j*1.0,j*1.5+1.1,-j*1.0,-(j+1.0),-j*1.0); + } iterList[iter] = "iteration "+iter; data.add(new ArrayList<DataElement>()); Index: HistogramFrame.java =================================================================== RCS file: /cvsroot/jboost/jboost/src/jboost/visualization/HistogramFrame.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** HistogramFrame.java 11 Sep 2008 21:25:45 -0000 1.4 --- HistogramFrame.java 11 Sep 2008 22:49:10 -0000 1.5 *************** *** 32,35 **** --- 32,36 ---- import org.jfree.chart.event.PlotChangeEvent; import org.jfree.chart.event.PlotChangeListener; + import org.jfree.chart.plot.CombinedDomainXYPlot; import org.jfree.chart.plot.IntervalMarker; import org.jfree.chart.plot.Plot; *************** *** 85,88 **** --- 86,90 ---- private XYIntervalSeriesCollection histogramDataset; + private XYIntervalSeriesCollection fluctDataset; private int noOfBins=100; private JFreeChart histogramChart; *************** *** 155,159 **** System.out.printf("jList1.valueChanged, item index=%d, id=%s%n",iter,list.getSelectedValue()); rawData.setIteration(iter); //update the rawDataSet according to the new iteration. ! updateHistogramDataset(); //System.out.printf("histogramDataset has %d series%n",histogramDataset.getSeriesCount()); //histogramDataset.seriesChanged(null); --- 157,161 ---- System.out.printf("jList1.valueChanged, item index=%d, id=%s%n",iter,list.getSelectedValue()); rawData.setIteration(iter); //update the rawDataSet according to the new iteration. ! updateHistogramDatasets(); //System.out.printf("histogramDataset has %d series%n",histogramDataset.getSeriesCount()); //histogramDataset.seriesChanged(null); *************** *** 195,200 **** { histogramDataset = new XYIntervalSeriesCollection(); ! updateHistogramDataset(); ! histogramChart = createHistogramChart(histogramDataset); double initialLocation = (upper_limit+lower_limit)/2.0; --- 197,203 ---- { histogramDataset = new XYIntervalSeriesCollection(); ! fluctDataset = new XYIntervalSeriesCollection(); ! updateHistogramDatasets(); ! histogramChart = createHistogramChart(histogramDataset, fluctDataset); double initialLocation = (upper_limit+lower_limit)/2.0; *************** *** 286,293 **** ! private void updateHistogramDataset() { if(histogramDataset.getSeriesCount()>0) { histogramDataset.removeAllSeries(); } --- 289,297 ---- ! private void updateHistogramDatasets() { if(histogramDataset.getSeriesCount()>0) { histogramDataset.removeAllSeries(); + fluctDataset.removeAllSeries(); } *************** *** 308,332 **** x=x+step; } ! ! histogramDataset.addSeries(posSeries); histogramDataset.addSeries(negSeries); ! histogramDataset.addSeries(rawData.getFluctBins()); ! histogramDataset.addSeries(rawData.getFluctRanges()); } ! private static JFreeChart createHistogramChart(IntervalXYDataset dataset) { ! XYBarRenderer renderer = new XYBarRenderer(); ! renderer.setSeriesPaint(0,Color.blue); ! renderer.setSeriesPaint(1,Color.red); ! renderer.setSeriesPaint(2,Color.green); ! renderer.setSeriesPaint(3, Color.orange); ! renderer.setUseYInterval(true); ! XYPlot plot = new XYPlot(dataset, ! new NumberAxis("score"), new NumberAxis("count"), ! renderer); //plot.setBackgroundPaint(Color.lightGray); --- 312,344 ---- x=x+step; } ! histogramDataset.addSeries(posSeries); histogramDataset.addSeries(negSeries); ! fluctDataset.addSeries(rawData.getFluctBins()); ! fluctDataset.addSeries(rawData.getFluctRanges()); } ! private static JFreeChart createHistogramChart( ! IntervalXYDataset histogramDataset, ! IntervalXYDataset fluctDataset) { ! XYBarRenderer renderer1 = new XYBarRenderer(); ! renderer1.setSeriesPaint(0,Color.blue); ! renderer1.setSeriesPaint(1,Color.red); ! renderer1.setUseYInterval(true); ! XYPlot histPlot = new XYPlot(histogramDataset, ! null, new NumberAxis("count"), ! renderer1); ! ! XYBarRenderer renderer2 = new XYBarRenderer(); ! renderer2.setSeriesPaint(0,Color.green); ! renderer2.setSeriesPaint(1, Color.orange); ! renderer2.setUseYInterval(true); ! XYPlot fluctPlot = new XYPlot(fluctDataset, ! null, ! new NumberAxis("bin"), ! renderer2); //plot.setBackgroundPaint(Color.lightGray); *************** *** 334,341 **** //plot.setRangeGridlinePaint(Color.white); JFreeChart chart = new JFreeChart( "Histogram", JFreeChart.DEFAULT_TITLE_FONT, ! plot, false // legend ); --- 346,361 ---- //plot.setRangeGridlinePaint(Color.white); + CombinedDomainXYPlot combinedPlot = new CombinedDomainXYPlot(new NumberAxis("score")); + combinedPlot.setGap(10.0); + + // add the subplots... + combinedPlot.add(histPlot, 3); + combinedPlot.add(fluctPlot, 1); + combinedPlot.setOrientation(PlotOrientation.VERTICAL); + JFreeChart chart = new JFreeChart( "Histogram", JFreeChart.DEFAULT_TITLE_FONT, ! combinedPlot, false // legend ); |