Hi Jim, thanks for the answer! I toyed around as you said and now they look cool and sexy! many thanks!
Do you know if there is a way to compress a bit the output? The image type of functions have the useRaster parameter to set to have a "compressed" output. Right now the produced plots are around 400kBytes which is a lot and I am looking for ways to reduce image size. I would like to thank you for you reply Alex On Monday, November 4, 2013 11:59 AM, Jim Lemon <j...@bitwrit.com.au> wrote: On 11/04/2013 08:09 PM, Alaios wrote: > Hi Jim Lemon, > thanks for the help, I appreciate this. > > right now my code looks like. > > > par(mar=c(5,4,4,5)) > color2D.matplot(data,1,c(0,1),0,xlab="",ylab="Spans", > main="color.scale",xrange=c(-110,-50),border=NA,axes=F) > color.legend(357,30,370,100,seq(-110,-50,length.out=13), > align="rb",rect.col=color.scale(1:13,1,c(0,1),0), > gradient="y") > > > my major problem now is that the > a. text in the color bar is squeezed so -50 overlaps with -60 and so on > b. for some reason the color bar sometimes (the same code is called for > all the data matrices I have) is misaligned in different positions each time > > Could you please also help me with those two? > Hi Alex, For your first question, I would simply extend the color legend vertically: color.legend(357,30,370,150,seq(-110,-50,length.out=13), align="rb",rect.col=color.scale(1:13,1,c(0,1),0), gradient="y") For the second one, you obviously have different dimensions for the data matrices. So, let's step through a method for getting the legend position and size from the plot itself. As I have written a few times previously, par("usr") gives you the dimensions of the plot in user units. For the example above, the dimensions were: x - 0->351 y - 0->200 With a bit of arithmetic, you can work out that the legend positions in the above are: xylim<-par("usr") # x position of lower left corner of legend xl<-xylim[2]+diff(xylim[1:2])*0.017 # y position of lower left corner yb<-xylim[3]+diff(xylim[3:4])*0.15 # x position of upper right corner of legend xr<-xylim[2]+diff(xylim[1:2])*0.054 # y position of upper right corner yt<-xylim[3]+diff(xylim[3:4])*0.75 Having these lines means that you can get the position and size of the legend about right from the information provided by par("usr") even if you change the number of cells in the matrix passed to color2D.matplot. Then you would call: color.legend(xl,yb,xr,yt,seq(-110,-50,length.out=13), align="rb",rect.col=color.scale(1:13,1,c(0,1),0), gradient="y") unless of course you wanted to change the values in the scale markings. I'll leave that for you to work out. Jim [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.