I am attempting to create a plot that includes boxplots of the response of a variable (a0) to changes in two factors as two vertical panels (data set pasted at end and included as attachment, though should not be necessary). I am able to combine the two plots using the c.trellis function in latticeExtra, which I then update to include a title and any other desired changes, but cannot determine how to include a label for the x axis in the top plot. ##habitat amount graph a0.Habitat<-bwplot(a0~Habitat.Amt, data =PCB.hab.dist.paramaters.sub, par.settings = list(plot.symbol = list(pch = 2, col "black"),col=1,box.umbrella=list(lty=1, col="black"), box.rectangle=list(lty=1, col="black")), ylab=list("Asymptote (a)",cex=1.5), xlab=list("Habitat Amount (% of Landscape)", cex=1.5)) ##patch graph a0.Patches<-bwplot(a0~Patches, data =PCB.hab.dist.paramaters.sub, par.settings = list(plot.symbol = list(pch = 2, col "black"),col=1,box.umbrella=list(lty=1, col="black"), box.rectangle=list(lty=1, col="black")), ylab=list("Asymptote (a)",cex=1.5), xlab=list("Number of Habitat Patches", cex=1.5)) ####combine two graphs combined.a0<-c( "Response_to_Fragmentation"=a0.Patches, "Response_to_Habitat_Amount"=a0.Habitat, layout=c(1,2), x.same=FALSE) ###update update(combined.a0, main="TL Landscape", scales=list(y=list(alternating=FALSE),x=list(alternating=TRUE ))) This feels like it shoull have a really simple answer but I have been unable to find any solutions on this or other R help forums to this problem. I have attempted to not define the xlab when the initial plots are drawn and specify it at the update step, but this leads to the labels being spread across the bottom, I assume since the Update funtion is working on the plot object as a single panel. Using xlab.top to put the lable above the upper graph looks odd. ###attempt to specify 2 labels with xlab update(combined.a0, main="TL Landscape", scales=list(y=list(alternating=FALSE),x=list(alternating=TRUE) ), xlab=c("Habitat Amount (% of Landscape)", "Patches")) There are plenty of discussion regarding how to manipulate the scale that axis are drawn at, which is how I arrived at combining plots using latticeExtra as opposed to drawing the two plots together with the extended lattice interface which had somw quiriky behaviour in ordering factor levels across the x axis. bwplot(a0~(Patches)+(Habitat.Amt), outer=TRUE, data=PCB.hab.dist.paramaters.sub, par.settings = list(plot.symbol = list(pch = 2, col = "black"),col=1, box.umbrella=list(lty=1, col="black"),box.rectangle=list(lty=1, col="black")), ylab=list("Asymptote (a)",cex=1.5), xlab=c("Hab", "Patches"), layout=c(1,2),scales=list(relation="free" )) Any help would how I could either specify for the Xaxis labels of both graphs to be included when combined, or ways to specify seperate axis labels after combination would be extremely helpful. Thanks for your time. a0 b0 c0 Index Distribution REP Habitat.Amt Patches 1 0.04914389 -0.86892828 0.0003944847 PCB 2 Patches 1 5 2 2 0.09828646 -0.86809873 0.0003945627 PCB 2 Patches 2 10 2 3 0.14743004 -0.86819141 0.0003945485 PCB 2 Patches 3 15 2 4 0.19650279 -0.87080033 0.0004640310 PCB 2 Patches 4 20 2 5 0.24562863 -0.87083379 0.0004640277 PCB 2 Patches 5 25 2 6 0.29475427 -0.87079976 0.0004640311 PCB 2 Patches 6 30 2 7 0.34321628 -0.88677178 0.0005741337 PCB 2 Patches 7 35 2 8 0.39224708 -0.88675509 0.0005741361 PCB 2 Patches 8 40 2 9 0.43964930 -0.91339697 0.0007836726 PCB 2 Patches 9 45 2 10 0.48849916 -0.91338693 0.0007836736 PCB 2 Patches 10 50 2 16 0.04822307 0.01662903 0.0004875154 PCB 4 Patches 1 5 4 17 0.09644467 0.01777045 0.0004877006 PCB 4 Patches 2 10 4 18 0.14466705 0.01821094 0.0004877409 PCB 4 Patches 3 15 4 19 0.19265015 0.01109928 0.0005715912 PCB 4 Patches 4 20 4 20 0.24081446 0.01112177 0.0005715677 PCB 4 Patches 5 25 4 21 0.28897841 0.01117924 0.0005715650 PCB 4 Patches 6 30 4 22 0.33559511 -0.01359166 0.0007090505 PCB 4 Patches 7 35 4 23 0.38114791 -0.04000038 0.0009754073 PCB 4 Patches 8 40 4 24 0.42879180 -0.04000463 0.0009754005 PCB 4 Patches 9 45 4 25 0.47643549 -0.04000530 0.0009753990 PCB 4 Patches 10 50 4 31 0.04780828 0.22108929 0.0004442073 PCB 5 Patches 1 5 5 32 0.09551991 0.22315344 0.0003972545 PCB 5 Patches 2 10 5 33 0.14323731 0.22140675 0.0003926791 PCB 5 Patches 3 15 5 34 0.19111263 0.21089745 0.0005427425 PCB 5 Patches 4 20 5 35 0.23918126 0.22255320 0.0004810829 PCB 5 Patches 5 25 5 36 0.28702280 0.22276860 0.0004810596 PCB 5 Patches 6 30 5 37 0.33432429 0.20244000 0.0005802950 PCB 5 Patches 7 35 5 38 0.38066666 0.17712990 0.0006780412 PCB 5 Patches 8 40 5 39 0.42687761 0.15966148 0.0007653099 PCB 5 Patches 9 45 5 40 0.47430651 0.15952135 0.0007652945 PCB 5 Patches 10 50 5 46 0.04692786 0.68334412 0.0005052207 PCB 9 Patches 1 5 9 47 0.09382041 0.69342727 0.0004937250 PCB 9 Patches 2 10 9 48 0.14073030 0.69065706 0.0005042077 PCB 9 Patches 3 15 9 49 0.18771848 0.68153656 0.0005905591 PCB 9 Patches 4 20 9 50 0.23465733 0.68206868 0.0005905449 PCB 9 Patches 5 25 9 51 0.28160051 0.68258821 0.0005905167 PCB 9 Patches 6 30 9 52 0.32733840 0.64959219 0.0006951437 PCB 9 Patches 7 35 9 53 0.37086396 0.60372670 0.0008839044 PCB 9 Patches 8 40 9 54 0.41724004 0.60415490 0.0008837397 PCB 9 Patches 9 45 9 55 0.46361589 0.60449739 0.0008836109 PCB 9 Patches 10 50 9 PCB_hab_dist_paramaters_sub.txt <http://r.789695.n4.nabble.com/file/n4646514/PCB_hab_dist_paramaters_sub.txt> -- View this message in context: http://r.789695.n4.nabble.com/Retaining-X-axis-labels-when-combining-lattice-graphs-tp4646514.html Sent from the R help mailing list archive at Nabble.com.
Duncan Mackay
2012-Oct-18 01:14 UTC
[R] Retaining X axis labels when combining lattice graphs
Hi I am not sure what you want but this works. dput(PCB.hab.dist.paramaters.sub, "clipboard") structure(list(a0 = c(0.04914389, 0.09828646, 0.14743004, 0.19650279, 0.24562863, 0.29475427, 0.34321628, 0.39224708, 0.4396493, 0.48849916, 0.04822307, 0.09644467, 0.14466705, 0.19265015, 0.24081446, 0.28897841, 0.33559511, 0.38114791, 0.4287918, 0.47643549, 0.04780828, 0.09551991, 0.14323731, 0.19111263, 0.23918126, 0.2870228, 0.33432429, 0.38066666, 0.42687761, 0.47430651, 0.04692786, 0.09382041, 0.1407303, 0.18771848, 0.23465733, 0.28160051, 0.3273384, 0.37086396, 0.41724004, 0.46361589 ), b0 = c(-0.86892828, -0.86809873, -0.86819141, -0.87080033, -0.87083379, -0.87079976, -0.88677178, -0.88675509, -0.91339697, -0.91338693, 0.01662903, 0.01777045, 0.01821094, 0.01109928, 0.01112177, 0.01117924, -0.01359166, -0.04000038, -0.04000463, -0.0400053, 0.22108929, 0.22315344, 0.22140675, 0.21089745, 0.2225532, 0.2227686, 0.20244, 0.1771299, 0.15966148, 0.15952135, 0.68334412, 0.69342727, 0.69065706, 0.68153656, 0.68206868, 0.68258821, 0.64959219, 0.6037267, 0.6041549, 0.60449739), c0 = c(0.0003944847, 0.0003945627, 0.0003945485, 0.000464031, 0.0004640277, 0.0004640311, 0.0005741337, 0.0005741361, 0.0007836726, 0.0007836736, 0.0004875154, 0.0004877006, 0.0004877409, 0.0005715912, 0.0005715677, 0.000571565, 0.0007090505, 0.0009754073, 0.0009754005, 0.000975399, 0.0004442073, 0.0003972545, 0.0003926791, 0.0005427425, 0.0004810829, 0.0004810596, 0.000580295, 0.0006780412, 0.0007653099, 0.0007652945, 0.0005052207, 0.000493725, 0.0005042077, 0.0005905591, 0.0005905449, 0.0005905167, 0.0006951437, 0.0008839044, 0.0008837397, 0.0008836109), Index = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "PCB", class = "factor"), Distribution = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("2 Patches", "4 Patches", "5 Patches", "9 Patches"), class = "factor"), REP = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L), Habitat.Amt = c(5L, 10L, 15L, 20L, 25L, 30L, 35L, 40L, 45L, 50L, 5L, 10L, 15L, 20L, 25L, 30L, 35L, 40L, 45L, 50L, 5L, 10L, 15L, 20L, 25L, 30L, 35L, 40L, 45L, 50L, 5L, 10L, 15L, 20L, 25L, 30L, 35L, 40L, 45L, 50L), Patches = c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L)), .Names = c("a0", "b0", "c0", "Index", "Distribution", "REP", "Habitat.Amt", "Patches"), class = "data.frame", row.names = c(NA, -40L)) ##habitat amount graph a0.Habitat<- bwplot(Habitat.Amt~a0, data =PCB.hab.dist.paramaters.sub, par.settings = list(plot.symbol = list(pch = 2, col = "black"), col=1, box.umbrella=list(lty=1, col="black"), box.rectangle=list(lty=1, col="black")), ylab=list("Asymptote (a)",cex=1.5), xlab=list("Habitat Amount (% of Landscape)", cex=1.5)) ##patch graph a0.Patches<- bwplot(Patches~a0, data =PCB.hab.dist.paramaters.sub, par.settings = list(plot.symbol = list(pch = 2, col = "black"), col=1, box.umbrella=list(lty=1, col="black"), box.rectangle=list(lty=1, col="black")), # horizontal = F, ylab=list("Asymptote (a)",cex=1.5), xlab=list("Number of Habitat Patches", cex=1.5)) ####combine two graphs combined.a0<-c( "Response_to_Fragmentation"=a0.Patches, "Response_to_Habitat_Amount"=a0.Habitat, layout=c(1,2), x.same=FALSE) ###update update(combined.a0, main="TL Landscape", scales=list(y=list(alternating=FALSE),x=list(alternating=TRUE ))) This gives you bwplots as the lattice function formula you had only produced points. Please in future use dput. for your data as it took extra time to work out what was going on. I am not sure what you want as I could not get the bwplots first up. This may help you You may have to specify axis limits but it is a while since I have done something like this. Not sure if ? trellis.focus is a help Regards Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England Armidale NSW 2351 Email: home: mackay at northnet.com.au At 05:54 18/10/2012, you wrote:>I am attempting to create a plot that includes boxplots of the response of a >variable (a0) to changes in two factors as two vertical panels (data set >pasted at end and included as attachment, though should not be necessary). >I am able to combine the two plots using the c.trellis function in >latticeExtra, which I then update to include a title and any other desired >changes, but cannot determine how to include a label for the x axis in the >top plot. > >##habitat amount graph >a0.Habitat<-bwplot(a0~Habitat.Amt, data =PCB.hab.dist.paramaters.sub, > par.settings = list(plot.symbol = list(pch = 2, col >"black"),col=1,box.umbrella=list(lty=1, col="black"), > box.rectangle=list(lty=1, col="black")), > ylab=list("Asymptote (a)",cex=1.5), > xlab=list("Habitat Amount (% of Landscape)", cex=1.5)) > >##patch graph >a0.Patches<-bwplot(a0~Patches, data =PCB.hab.dist.paramaters.sub, > par.settings = list(plot.symbol = list(pch = 2, col >"black"),col=1,box.umbrella=list(lty=1, col="black"), > box.rectangle=list(lty=1, col="black")), > ylab=list("Asymptote (a)",cex=1.5), > xlab=list("Number of Habitat Patches", cex=1.5)) > >####combine two graphs >combined.a0<-c( "Response_to_Fragmentation"=a0.Patches, >"Response_to_Habitat_Amount"=a0.Habitat, layout=c(1,2), x.same=FALSE) > >###update >update(combined.a0, main="TL Landscape", >scales=list(y=list(alternating=FALSE),x=list(alternating=TRUE ))) > >This feels like it shoull have a really simple answer but I have been unable >to find any solutions on this or other R help forums to this problem. I have >attempted to not define the xlab when the initial plots are drawn and >specify it at the update step, but this leads to the labels being spread >across the bottom, I assume since the Update funtion is working on the plot >object as a single panel. Using xlab.top to put the lable above the upper >graph looks odd. > >###attempt to specify 2 labels with xlab >update(combined.a0, main="TL Landscape", >scales=list(y=list(alternating=FALSE),x=list(alternating=TRUE) ), >xlab=c("Habitat Amount (% of Landscape)", "Patches")) > > > There are plenty of discussion regarding how to manipulate the scale that >axis are drawn at, which is how I arrived at combining plots using >latticeExtra as opposed to drawing the two plots together with the extended >lattice interface which had somw quiriky behaviour in ordering factor levels >across the x axis. > >bwplot(a0~(Patches)+(Habitat.Amt), outer=TRUE, >data=PCB.hab.dist.paramaters.sub, > par.settings = list(plot.symbol = list(pch = 2, col = "black"),col=1, > box.umbrella=list(lty=1, col="black"),box.rectangle=list(lty=1, >col="black")), > ylab=list("Asymptote (a)",cex=1.5), > xlab=c("Hab", "Patches"), layout=c(1,2),scales=list(relation="free" )) > >Any help would how I could either specify for the Xaxis labels of both >graphs to be included when combined, or ways to specify seperate axis labels >after combination would be extremely helpful. >Thanks for your time. > > > a0 b0 c0 Index Distribution REP Habitat.Amt >Patches >1 0.04914389 -0.86892828 0.0003944847 PCB 2 >Patches 1 5 >2 >2 0.09828646 -0.86809873 0.0003945627 PCB 2 >Patches 2 10 >2 >3 0.14743004 -0.86819141 0.0003945485 PCB 2 >Patches 3 15 >2 >4 0.19650279 -0.87080033 0.0004640310 PCB 2 >Patches 4 20 >2 >5 0.24562863 -0.87083379 0.0004640277 PCB 2 >Patches 5 25 >2 >6 0.29475427 -0.87079976 0.0004640311 PCB 2 >Patches 6 30 >2 >7 0.34321628 -0.88677178 0.0005741337 PCB 2 >Patches 7 35 >2 >8 0.39224708 -0.88675509 0.0005741361 PCB 2 >Patches 8 40 >2 >9 0.43964930 -0.91339697 0.0007836726 PCB 2 >Patches 9 45 >2 >10 0.48849916 -0.91338693 0.0007836736 PCB 2 >Patches 10 50 >2 >16 0.04822307 0.01662903 0.0004875154 PCB 4 >Patches 1 5 >4 >17 0.09644467 0.01777045 0.0004877006 PCB 4 >Patches 2 10 >4 >18 0.14466705 0.01821094 0.0004877409 PCB 4 >Patches 3 15 >4 >19 0.19265015 0.01109928 0.0005715912 PCB 4 >Patches 4 20 >4 >20 0.24081446 0.01112177 0.0005715677 PCB 4 >Patches 5 25 >4 >21 0.28897841 0.01117924 0.0005715650 PCB 4 >Patches 6 30 >4 >22 0.33559511 -0.01359166 0.0007090505 PCB 4 >Patches 7 35 >4 >23 0.38114791 -0.04000038 0.0009754073 PCB 4 >Patches 8 40 >4 >24 0.42879180 -0.04000463 0.0009754005 PCB 4 >Patches 9 45 >4 >25 0.47643549 -0.04000530 0.0009753990 PCB 4 >Patches 10 50 >4 >31 0.04780828 0.22108929 0.0004442073 PCB 5 >Patches 1 5 >5 >32 0.09551991 0.22315344 0.0003972545 PCB 5 >Patches 2 10 >5 >33 0.14323731 0.22140675 0.0003926791 PCB 5 >Patches 3 15 >5 >34 0.19111263 0.21089745 0.0005427425 PCB 5 >Patches 4 20 >5 >35 0.23918126 0.22255320 0.0004810829 PCB 5 >Patches 5 25 >5 >36 0.28702280 0.22276860 0.0004810596 PCB 5 >Patches 6 30 >5 >37 0.33432429 0.20244000 0.0005802950 PCB 5 >Patches 7 35 >5 >38 0.38066666 0.17712990 0.0006780412 PCB 5 >Patches 8 40 >5 >39 0.42687761 0.15966148 0.0007653099 PCB 5 >Patches 9 45 >5 >40 0.47430651 0.15952135 0.0007652945 PCB 5 >Patches 10 50 >5 >46 0.04692786 0.68334412 0.0005052207 PCB 9 >Patches 1 5 >9 >47 0.09382041 0.69342727 0.0004937250 PCB 9 >Patches 2 10 >9 >48 0.14073030 0.69065706 0.0005042077 PCB 9 >Patches 3 15 >9 >49 0.18771848 0.68153656 0.0005905591 PCB 9 >Patches 4 20 >9 >50 0.23465733 0.68206868 0.0005905449 PCB 9 >Patches 5 25 >9 >51 0.28160051 0.68258821 0.0005905167 PCB 9 >Patches 6 30 >9 >52 0.32733840 0.64959219 0.0006951437 PCB 9 >Patches 7 35 >9 >53 0.37086396 0.60372670 0.0008839044 PCB 9 >Patches 8 40 >9 >54 0.41724004 0.60415490 0.0008837397 PCB 9 >Patches 9 45 >9 >55 0.46361589 0.60449739 0.0008836109 PCB 9 >Patches 10 50 >9 PCB_hab_dist_paramaters_sub.txt ><http://r.789695.n4.nabble.com/file/n4646514/PCB_hab_dist_paramaters_sub.txt> > > > > >-- >View this message in context: >http://r.789695.n4.nabble.com/Retaining-X-axis-labels-when-combining-lattice-graphs-tp4646514.html >Sent from the R help mailing list archive at Nabble.com. > >______________________________________________ >R-help at 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.