Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
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: