Hello Wolfgang, The same message as Antoine, but in other words: According to the help file, in Matplot1(M,rect), the values of int(M) are used as entries in the current colormap. If the colormap indices run from 1 to Nc and M has values from z1 to z2, then in order to use the full color scale with Matplot1, we need to linearly transform M has indicated. I.e., we need to find the straight line equation that maps the (z1,z2) range into (1,Nc).
Regarding the solution provided, please note that it works only for matrices with X and Y entries that are equally spaced. With this proviso, you may add grids manually to Matplot1 as shown here below: // START OF CODE // plot a regular matrix with Matplot1 clf(); clear; Nc= 128; // number of colors dxp=0:5:10; // Points must be equispaced dyp=0:10:20; // Points must be equispaced x1=min(dxp); y1=min(dyp); M= [64 30 2; 4 5 6; 7 8 33] // M can have any real numbers z1 = min(M); z2 = max(M); Mcol = 1+(Nc-1)*(M-z1)/(z2-z1); // scale data to colors indexes ax = gca();//get current axes handle ax.data_bounds = [min(dxp),min(dyp); max(dxp),max(dyp)]; //set the data_bounds Matplot1(Mcol,[min(dxp),min(dyp), max(dxp),max(dyp)]) drawaxis(x=dxp,y=y1,dir='d',tics='v') drawaxis(x=x1,y=dyp,dir='l',tics='v') f = gcf(); f.color_map = jetcolormap(Nc); colorbar(z1,z2,[1 Nc]); Nx= length(dxp); Ny= length(dyp); for i=1:Nx-1 yi= i*(dyp($)-dyp(1))/Ny; xpoly([dxp(1);dxp($)],[yi;yi]); e=gce(); e.thickness = 3; e.line_style=8; e.foreground= color("black"); end for i=1:Ny-1 xi= i*(dxp($)-dxp(1))/Nx; xpoly([xi;xi],[dyp(1);dyp($)]); e=gce(); e.thickness = 3; e.line_style=8; e.foreground= color("black"); end // END OF CODE As for the default axes labels, as xlabel, they are placed poorly in this case and you will need to do it manually. Regards, Rafael _______________________________________________ users mailing list users@lists.scilab.org http://lists.scilab.org/mailman/listinfo/users