Hi Luigi Michael answered your question about printing
lattice and ggplot require their graphics to be in print() If you have problems in printing you may have to use trellis.device(device = pdf, # or what ever the actual device is file = ####, <remainder of script>) ? trellis.device for info I occasionally have to use it sometimes instead of pdf etc Duncan -----Original Message----- From: Luigi Marongiu [mailto:marongiu.lu...@gmail.com] Sent: Thursday, 23 April 2015 22:56 To: Duncan Mackay Subject: Re: [R] high density plots using lattice dotplot() Dear Duncan, many thanks for the precious help! I have rearranged what you sent me with a bit of stuff I wrote already for another project and the results seems to work fine. Best regards, Luigi >>> example DF <- data.frame(Y = rnorm(17280), X = rnorm(1:45), Y2 = rnorm(17280)+2, Z = 1:384) head(df,10) xyplot(Y ~ X | Z, data = DF, groups = Z, allow.multiple = TRUE, ylab= "Y VALUES", xlab="X VALUES", main="TITLE", scales = list( x = list(draw = FALSE), y = list(draw = FALSE), relation="same", alternating=TRUE), as.table = TRUE, layout = c(24,16), par.settings = list( strip.background=list(col="white"), axis.text = list(cex = 0.6), par.xlab.text = list(cex = 0.75), par.ylab.text = list(cex = 0.75), par.main.text = list(cex = 0.8), superpose.symbol = list(type = "l", cex = 1) ), strip = FALSE, type = "l", col = 3, panel = panel.superpose ) On Thu, Apr 23, 2015 at 3:08 AM, Duncan Mackay <dulca...@bigpond.com> wrote: > Hi Luigi > > Try > > set.seed(1) > > PLATE <- > data.frame(Delta.Rn = rnorm(500), > Cycle = rnorm(500), > Delta2 = rnorm(500)+1, > Well = rep(1:50, each = 10)) > head(PLATE,10) > > xyplot(Delta.Rn+Delta2 ~ Cycle | Well, > data = subset(PLATE, Well %in% 1:49), > allow.multiple = TRUE, > ylab="Fluorescence (Delta Rn)", > xlab="Cycles", > main="TITLE", > scales = list( > x = list(draw = FALSE), > y = list(draw = FALSE), > relation="same", > alternating=TRUE), > as.table = TRUE, > layout = c(10,5), > par.settings = list( > strip.background=list(col="white"), > # layout.heights = list(strip = 0.8), > axis.text = list(cex = 0.6), > par.xlab.text = list(cex = 0.75), > par.ylab.text = list(cex = 0.75), > par.main.text = list(cex = 0.8), > superpose.symbol = list(pch = ".", cex = 2, > col = c(2,4) ) > ), > strip = FALSE, > type = "p", > key = list(text = list(label = c("Delta.Rn","Delta2")), > points = list(cex = 0.6, pch = 16, col = c(2,4)), > cex = 0.6, > x = 0.9, > y = 0.1), > panel = panel.superpose, > panel.groups = function(x,y,...){ > > panel.xyplot(x,y,... ) > > # text argument can be a vector of values not > # necessarily the group name > pnl = panel.number() # needed as group.number if added is > now either 1 or 2 > > grid.text(c(LETTERS,letters)[pnl], > y = 0.93, x = 0.5, > default.units = "npc", > just = c("left", "bottom"), > gp = gpar(fontsize = 7) ) > > } > ) > > Remember to delete the group argument (I forgot to at first as the groups are > now Delta.Rn Delta2) > You may have 1+ empty panels so put the legend there where ever it is just > amend the x and y or fine tune them > you can have the pch = "." and increase cex but it will become as square > with large cex > Duncan > > > -----Original Message----- > From: Luigi Marongiu [mailto:marongiu.lu...@gmail.com] > Sent: Thursday, 23 April 2015 10:05 > To: Duncan Mackay > Subject: Re: [R] high density plots using lattice dotplot() > > Dear Duncan, > sorry to come back so soon, but i wanted to ask you whether it would > be possible to plot two sets of lines within each box, let's say a > main value A and a secondary value B. In normal plots I could use a > plot() followed by points(); what would be the strategy here? > Thank you again, > best regards, > Luigi > > > On Wed, Apr 22, 2015 at 6:46 AM, Duncan Mackay <dulca...@bigpond.com> wrote: >> >> Hi Luigi >> >> I should have made up an example to make things easier when I replied today >> >> This should get you going >> >> set.seed(1) >> >> PLATE <- >> data.frame(Delta.Rn = rnorm(500), >> Cycle = rnorm(500), >> Well = rep(1:50, each = 10)) >> head(PLATE) >> >> xyplot(Delta.Rn ~ Cycle | Well, >> data = PLATE, >> groups = Well, >> ylab="Fluorescence (Delta Rn)", >> xlab="Cycles", >> main="TITLE", >> scales = list( >> x = list(draw = FALSE), >> y = list(draw = FALSE), >> relation="same", >> alternating=TRUE), >> as.table = TRUE, >> layout = c(10,5), >> par.settings = list( >> strip.background=list(col="white"), >> # layout.heights = list(strip = 0.8), >> axis.text = list(cex = 0.6), >> par.xlab.text = list(cex = 0.75), >> par.ylab.text = list(cex = 0.75), >> par.main.text = list(cex = 0.8) >> superpose.symbol = list(pch = ".", cex = 2) >> ), >> strip = FALSE, >> type = "p", >> col = 1, >> panel = panel.superpose, >> panel.groups = function(x,y,...,group.number){ >> >> panel.xyplot(x,y,... ) >> >> # text argument can be a vector of values not >> # necessarily the group name >> grid.text(c(LETTERS,letters)[group.number], >> y = 0.93, x = 0.5, >> default.units = "npc", >> just = c("left", "bottom"), >> gp = gpar(fontsize = 7) ) >> >> } >> ) >> >> You could use panel.text instead of grid.text >> Duncan >> >> -----Original Message----- >> From: Luigi Marongiu [mailto:marongiu.lu...@gmail.com] >> Sent: Wednesday, 22 April 2015 08:24 >> To: Duncan Mackay >> Subject: Re: [R] high density plots using lattice dotplot() >> >> Dear Duncan, >> thank you for your reply. I tried to implement your suggestions but as >> is on your reply did not work (actually R crashed) and a slight >> elaboration returned the figure attached, which is essentially still >> displaying text and not drawing the data. Here is what I wrote: >> >> xyplot(Delta.Rn ~ Cycle | Well, >> data = PLATE, >> ylab="Fluorescence (Delta Rn)", >> xlab="Cycles", >> main=TITLE, >> scales = list( >> x = list(draw = FALSE), >> y = list(draw = FALSE), >> relation="same", >> alternating=TRUE), >> as.table = TRUE, >> layout = c(24,16), >> par.settings = list( >> strip.background=list(col="white"), >> axis.text = list(cex = 0.6), >> par.xlab.text = list(cex = 0.75), >> par.ylab.text = list(cex = 0.75), >> superpose.symbol = list(pch = ".", cex = 2) >> ), >> strip = FALSE, >> type = "p", >> layout.heights = list(strip = 0.8), >> panel = function(x,y, subscripts, groups,...){ >> panel.superpose(x,y,subscripts,groups,..., >> col = ...) >> panel.text(x,y,...,cex = 0.6) >> } >> ) >> >> >> How can I improve the script? >> Many thanks >> Luigi >> >> On Tue, Apr 21, 2015 at 12:35 AM, Duncan Mackay <dulca...@bigpond.com> wrote: >>> Hi Luigi >>> >>> Strips take up space so if you are willing to not have strip and put the >>> strip values within the plot area then >>> >>> xyplot(y ~ x|cond.factor, data = ..., >>> as.table = T, >>> groups = ..., >>> layout = ..., >>> drop.unused = T, >>> par.settings = list(axis.text = list(cex = 0.6), >>> par.xlab.text = list(cex = 0.75), >>> par.ylab.text = list(cex = 0.75) >>> superpose.symbol = list(pch = ".", cex = 2) >>> ), >>> strip = FALSE, >>> scales = list(x = list(alternating = 2), >>> y = list(alternating = FALSE) >>> ), >>> type = "p", >>> panel = function(x,y, subscripts, groups,...){ >>> panel.superpose(x,y,subscripts,groups,..., >>> col = ...) >>> panel.text(x,y,...,cex = 0.6) >>> } >>> ) >>> >>> if the text values are a vector >>> stext = ... >>> xyplot(y ~ x|cond.factor, data = ..., >>> as.table = T, >>> groups = ..., >>> layout = ..., >>> drop.unused = T, >>> par.settings = list(axis.text = list(cex = 0.6), >>> par.xlab.text = list(cex = 0.75), >>> par.ylab.text = list(cex = 0.75) >>> superpose.symbol = list(pch = ".", cex = 2) >>> ), >>> strip = FALSE, >>> scales = list(x = list(alternating = 2), >>> y = list(alternating = FALSE) >>> ), >>> type = "p", >>> panel = function(x,y, subscripts, groups,...){ >>> pnl = panel.number() >>> panel.superpose(x,y,subscripts,groups,..., >>> col = ...) >>> panel.text(x,y,stext[pnl],cex = 0.6) >>> } >>> ) >>> >>> you could also you group.number instead of pnl if it is needed elsewhere. >>> text position could be done in a similar fashion if needed to be in >>> different places for some panels. >>> >>> If you require the strip then an additional par.settings is >>> layout.heights = list(strip = 0.8) >>> or even untested in this situation >>> strip = FALSE >>> strip.left = TRUE >>> >>> Regards >>> >>> Duncan >>> >>> Duncan Mackay >>> Department of Agronomy and Soil Science >>> University of New England >>> Armidale NSW 2351 >>> Email: home: mac...@northnet.com.au >>> >>> -----Original Message----- >>> From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Luigi >>> Marongiu >>> Sent: Sunday, 19 April 2015 19:28 >>> To: r-help >>> Subject: [R] high density plots using lattice dotplot() >>> >>> Dear all, >>> I am trying to plot the results of a PCR experiments that involves 384 >>> individual plots. Admittedly the space for the plots will be tiny, but >>> I just nedd some icon to have a feeling of the layout of the >>> experiment and a quick comparison of the plots. >>> I believe that lattice would be the right tool, but when I tried to >>> implement i got an error. Specifically the output would be a A4 pdf, >>> so with about 600 cm2 of drawing space, which gives about 1.5 cm2 for >>> each plot; removing the labels that might just work. >>> So I have the y values = 'fluorescence', x 'values' = cycles and 384 >>> 'well' data. I implemented to begin with: >>> >>> xyplot(fluorescence ~ cycles | well, >>> ylab="Fluorescence", >>> xlab="Cycles", >>> main=list(draw = FALSE), >>> scales = list( >>> x = list(draw = FALSE), >>> y = list(draw = FALSE), >>> relation="same", >>> alternating=TRUE), >>> layout = c(24,16), >>> par.settings = list(strip.background=list(col="white")), >>> pch = "." >>> ) >>> >>> but the the individual graphs show only the writing "data" instead of >>> the actual plots. >>> How can I overcome this error? >>> Thank you >>> Best regards >>> Luigi >>> >>> ______________________________________________ >>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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. >>> >> > ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.