From: Nathaniel G. A. <nat...@us...> - 2004-10-28 21:03:11
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29471/src/java/org/krysalis/jcharts/axisChart Modified Files: RegressionChart.java Log Message: Index: RegressionChart.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/RegressionChart.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RegressionChart.java 27 Oct 2004 20:44:13 -0000 1.3 --- RegressionChart.java 28 Oct 2004 21:02:59 -0000 1.4 *************** *** 48,53 **** /************************************************************************************** * ! * @author Nathan Feger * @version $Id$ ************************************************************************************/ --- 48,54 ---- /************************************************************************************** + * Regression Chart * ! * @author Nathan Feger, Nathaniel Auvil * @version $Id$ ************************************************************************************/ *************** *** 64,72 **** double Sxx, Sxy, Syy; double a, b; //regression coefficients ! ArrayList v = new ArrayList(); //vector of points ! ArrayList residuals = new ArrayList(); //vector of residuals ! private double figureY( YAxis yAxis, double num ) { --- 65,78 ---- double Sxx, Sxy, Syy; double a, b; //regression coefficients ! ArrayList v = new ArrayList(); ! ArrayList residuals = new ArrayList(); + /************************************************************************************** + * + * @param yAxis + * @param num + * @return + *************************************************************************************/ private double figureY( YAxis yAxis, double num ) { *************** *** 91,95 **** //---cache the computed values ! float[][] yAxisCoordinates = new float[iAxisChartDataSet.getNumberOfDataSets()][iAxisChartDataSet.getNumberOfDataItems()]; //---need this for image map calculation --- 97,101 ---- //---cache the computed values ! float[][] yAxisCoordinates = new float[ iAxisChartDataSet.getNumberOfDataSets() ][ iAxisChartDataSet.getNumberOfDataItems() ]; //---need this for image map calculation *************** *** 102,111 **** for( int i = 0; i < yAxisCoordinates.length; i++ ) { if( iAxisChartDataSet.getValue( i, j ) != Double.NaN ) { ! yAxisCoordinates[i][j] = axisChart.getYAxis().computeAxisCoordinate( axisChart.getYAxis().getOrigin(), iAxisChartDataSet.getValue( i, j ), axisChart.getYAxis().getScaleCalculator().getMinValue() ); ! addLoc( new Loc( j, iAxisChartDataSet.getValue( i, j ) ) ); --- 108,118 ---- for( int i = 0; i < yAxisCoordinates.length; i++ ) { + //TODO how does this affect things? Need to test Double.NaN if( iAxisChartDataSet.getValue( i, j ) != Double.NaN ) { ! /* yAxisCoordinates[i][j] = axisChart.getYAxis().computeAxisCoordinate( axisChart.getYAxis().getOrigin(), iAxisChartDataSet.getValue( i, j ), axisChart.getYAxis().getScaleCalculator().getMinValue() ); ! */ addLoc( new Loc( j, iAxisChartDataSet.getValue( i, j ) ) ); *************** *** 124,131 **** axisChart.getImageMap().addImageMapArea( new CircleMapArea( xMapCoordinate, ! yAxisCoordinates[i][j], ! iAxisChartDataSet.getValue( i, j ), ! label, ! iAxisChartDataSet.getLegendLabel( i ) ) ); } } --- 131,138 ---- axisChart.getImageMap().addImageMapArea( new CircleMapArea( xMapCoordinate, ! yAxisCoordinates[i][j], ! iAxisChartDataSet.getValue( i, j ), ! label, ! iAxisChartDataSet.getLegendLabel( i ) ) ); } } *************** *** 139,187 **** } - // AffineTransform originalTransform = null; - // double[] cornerXOffset = null; - // double[] cornerYOffset = null; - //---check if there are any points to display if( lineChartProperties.getShapes() != null ) { - //---when centering the shapes on the points, need x and y offset to do this - // cornerXOffset = new double[iAxisChartDataSet.getNumberOfDataSets()]; - // cornerYOffset = new double[iAxisChartDataSet.getNumberOfDataSets()]; - - //---get the original transform so can reset it. - // originalTransform = g2d.getTransform(); - - // Rectangle2D rectangle; - //LOOP for( int i = 0; i < iAxisChartDataSet.getNumberOfDataSets(); i++ ) { ! // if( lineChartProperties.getShapes()[i] != null ) ! { ! // rectangle = lineChartProperties.getShapes()[i].getBounds2D(); ! // cornerXOffset[i] = rectangle.getWidth() / 2; ! // cornerYOffset[i] = rectangle.getHeight() / 2; ! ! ArrayList v = regress(); ! // round to 5 places ! double yoffset = (Math.round( 1.0E5 * a )) * 1.0E-5; ! double slope = (Math.round( 1.0E5 * b )) * 1.0E-5; ! g2d.setPaint( iAxisChartDataSet.getPaint( i ) ); ! //g2d.fill( lineChartProperties.getShapes()[ i ] ); ! g2d.setStroke( lineChartProperties.getLineStrokes()[i] ); ! Line2D.Double line = new Line2D.Double( axisChart.getXAxis().getTickStart(), ! figureY( axisChart.getYAxis(), (yoffset + slope * 0) ), ! axisChart.getXAxis().getTickStart() ! + axisChart.getXAxis().getScalePixelWidth() * (v.size()-2), ! figureY( axisChart.getYAxis(), (yoffset + slope * v.size()) ) ); ! //g2d.fill( line ); ! g2d.draw( line ); ! // g2d.setTransform( originalTransform ); ! } } } --- 146,170 ---- } //---check if there are any points to display if( lineChartProperties.getShapes() != null ) { //LOOP for( int i = 0; i < iAxisChartDataSet.getNumberOfDataSets(); i++ ) { ! ArrayList v = regress(); ! // round to 5 places ! double yoffset = (Math.round( 1.0E5 * a )) * 1.0E-5; ! double slope = (Math.round( 1.0E5 * b )) * 1.0E-5; ! g2d.setPaint( iAxisChartDataSet.getPaint( i ) ); ! g2d.setStroke( lineChartProperties.getLineStrokes()[i] ); ! Line2D.Double line = new Line2D.Double( axisChart.getXAxis().getTickStart(), ! figureY( axisChart.getYAxis(), yoffset ), ! axisChart.getXAxis().getTickStart() + axisChart.getXAxis().getScalePixelWidth() * (v.size()-1), ! figureY( axisChart.getYAxis(), (yoffset + slope * v.size()) ) ); ! g2d.draw( line ); } } *************** *** 189,192 **** --- 172,179 ---- + /************************************************************************************ + * + * @return + ************************************************************************************/ private ArrayList regress() { *************** *** 201,204 **** --- 188,192 ---- a = (sumy - b * sumx) / n; + //LOOP for( int i=0; i < v.size(); i++ ) { *************** *** 213,216 **** --- 201,208 ---- + /*************************************************************************************** + * + * @param numLocs + **************************************************************************************/ private void calculate( int numLocs ) { *************** *** 222,225 **** --- 214,221 ---- + /*************************************************************************************** + * + * @param p + **************************************************************************************/ private void addLoc( Loc p ) { |