NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Celine- When you create the LogCoordinateSystem, you need to specify a different RealType as the reference for the system. Using x for both the RealTupleType and the reference will not work because X is in the domain and in the reference, thus the error about occurring more than once. Try something like: double base = 10; RealType x = RealType.getRealType(xAxis); RealType logX RealType.getRealType("LogX", CommonUnit.promiscuous); RealTupleType reference = new RealTupleType(logX); CoordinateSystem logCS = new LogCoordinateSystem(reference, base); RealTupleType range = new RealTupleType(x, logCS, null); Don Murray Celine Gestas wrote:
Hi all, I am working on displaying a logarithm scale on xAxis but I have the following error : " Single DisplayRealType DisplayXAxis occurs more than once: ShadowType.testIndices"and I don't understand why... I get X and Y values from a Class but I d liketo have a logarithm scale just for the xAxis. My code is : float xMin, xMax, yMax; xMax = getMax(_linePlot.getValues(xAxis)); xMin = getMin(_linePlot.getValues(xAxis)); yMax = getMax(_linePlot.getValues((String)yAxis.get(0))); for(i=1; i<yAxis.size(); i++) { if (getMax(_linePlot.getValues((String)yAxis.get(i))) > yMax) yMax = getMax(_linePlot.getValues((String)yAxis.get(i))); } /*************************/ /* Create the quantities */ /*************************/ // create the ScalarMaps : quantity x is to be _displayed along XAxis and y along YAxis RealType x = RealType.getRealType(xAxis); xMap = new ScalarMap( x, Display.XAxis ); RealType y = RealType.getRealType("Y"); yMap = new ScalarMap( y, Display.YAxis ); yMap.setScaleEnable(true); yMap.setRange(0, yMax); CoordinateSystem logCoord = new LogCoordinateSystem(new RealTupleType(x)); RealTupleType logX = new RealTupleType(x, logCoord, null); // add them to the display _display.addMap( xMap ); _display.addMap( yMap ); /*************************/ /* Create the quantities */ /*************************/ // our actual x and y values float[][] x_vals = _linePlot.getValues(xAxis); // rank the x values for( i = (x_vals[0].length - 1); i > 0; i--) { for( int j=0; j < i; j++) { if (x_vals[0][j] > x_vals[0][j+1]) { float L_iTemp= x_vals[0][j]; x_vals[0][j]= x_vals[0][j+1]; x_vals[0][j+1]= L_iTemp; } } } // create the index x_set = new Gridded1DSet(logX, x_vals, x_vals[0].length, logCoord, null, null); float[][] y_vals = _linePlot.getValues((String) yAxis.get(i)); /******************************/ /* Code for setting LINE data */ /******************************/ // create the function to draw the line func_x_y = new FunctionType(logX, y); // associate the function (func_x_y) to the values (x_set) line_ff = new FlatField( func_x_y, x_set); // and put the y values above in it line_ff.setSamples( y_vals ); /**************************/ /* Initialize the display */ /**************************/ // create data references and set the FlatFields (association function/values) as our datas line_ref = new DataReferenceImpl("line_ref"); line_ref.setData( line_ff ); _display.addReference( line_ref , lineCMap); If someone could help me fixing this .... Celine Gestas
-- ************************************************************* Don Murray UCAR Unidata Program dmurray@xxxxxxxxxxxxxxxx P.O. Box 3000 (303) 497-8628 Boulder, CO 80307 http://www.unidata.ucar.edu/staff/donm ************************************************************* ============================================================================== To unsubscribe visad, visit: http://www.unidata.ucar.edu/mailing-list-delete-form.html ==============================================================================
visad
archives: