The stretching of plot two occurs because you are allotting more space for
plot two.
You set
Plot 1: mar=c(0,4,4,2)
Plot 2: mar=c(0,4,0,2)
Plot 3: mar=c(4,4,0,2)
In plot one your are dedicating 4 lines to the top margin, in plot three you
are dedicating 4 lines to the bottom margin. In plot two, you are not
dedicating any lines to either the top or bottom margin. It follows that
plot 2 is 4 lines taller than the other plots. The cheapest solution is:
Before the plots: par(oma=c(4,0,4,0))
Plot 1: mar=c(0,4,0,2)
Plot 2: mar=c(0,4,0,2)
Plot 3: mar=c(0,4,0,2)
-tgs
On Tue, Apr 20, 2010 at 8:58 AM, Kay Cichini <Kay.Cichini@uibk.ac.at>
wrote:
>
> hello,
>
> i try to plot 3 graphs which have the same x.axis underneath each other.
> i'd
> like the plots to be aligned without margings between the boxes and draw a
> single x axis beneath the lowest plot.
>
> i managed to get the alignment by setting par(mar), but the middle box is
> stretched
> and i cant't figure out how to get around this. par(pin) was my guess,
but
> this doesn't do the job because it seems to be overridden by par(mar).
>
> sorry for the long example data, but this was quick at hand..
>
> mydata:
> ###################################################################
> ad<-data.frame(
> list(structure(list(pos = structure(c(1L, 1L, 1L, 1L, 2L, 2L,
> 2L, 2L), .Label = c("Gaps", "Surroundings"), class =
"factor"),
> stage = structure(c(4L, 2L, 3L, 1L, 4L, 2L, 3L, 1L), .Label >
c("Alpine_Grassl.",
> "Early", "Late", "Pioneer"), class =
"factor"), mw = c(12.06293707,
> 26.09265735, 37.12287713, 81.53846154, 28.88005449, 68.44004261,
> 97.61124961, 100)), .Names = c("pos", "stage",
"mw"), class > "data.frame", row.names = c(NA,
> -8L))))
>
> seedl<-data.frame(
> list(structure(list(pos = structure(c(1L, 1L, 1L, 1L, 2L, 2L,
> 2L, 2L), .Label = c("Gaps", "Surroundings"), class =
"factor"),
> stage = structure(c(4L, 2L, 3L, 1L, 4L, 2L, 3L, 1L), .Label >
c("Alpine_Grassl.",
> "Early", "Late", "Pioneer"), class =
"factor"), mw = c(24.52797203,
> 17.20571096, 41.68401043, 34.03846154, 13.92056379, 9.955734802,
> 23.54039945, 26.11543325)), .Names = c("pos",
"stage", "mw"
> ), class = "data.frame", row.names = c(NA, -8L))))
>
> rich<-data.frame(
> list(structure(list(pos = structure(c(1L, 1L, 1L, 1L, 2L, 2L,
> 2L, 2L), .Label = c("Gaps", "Surroundings"), class =
"factor"),
> stage = structure(c(4L, 2L, 3L, 1L, 4L, 2L, 3L, 1L), .Label >
c("Alp._Grassl.",
> "Early", "Late", "Pioneer"), class =
"factor"), n = c(44L,
> 44L, 45L, 10L, 44L, 44L, 45L, 10L), mw = c(1.93, 3.59, 4.24,
> 6.8, 1.84, 5.61, 7.2, 10.6)), .Names = c("pos",
"stage",
> "n", "mw"), class = "data.frame", row.names =
c(NA, -8L))))
> ###################################################################
> windows(5,15)
> par(ps=8,mgp=c(2.25,1,0),mfrow=c(3,1))
> ###################################################################
> par(mar=c(0,4,4,2))
>
> attach(seedl)
>
plot(c(1:4),mw[1:4],type="o",xaxt="n",xlab="",
> ylab="Abundance
>
(%)",ylim=c(0,100),xlim=c(0.7,4.3),pch=22,bg="white",cex=0.75,las=1)
> par(new=T)
>
plot(c(1:4),mw[5:8],type="o",xaxt="n",xlab="",yaxt="n",
> ylab="",ylim=c(0,100),xlim=c(0.7,4.3),pch=15,cex=0.75)
> text(0.7,90,adj=0,"Seedlings",font=2)
>
legend("topright",c("Surr.","Gaps"),bty="n",pch=c(15,0))
>
> ###################################################################
> par(ps=8,mgp=c(2.25,1,0),mar=c(0,4,0,2))
>
> attach(ad)
>
plot(c(1:4),mw[1:4],type="o",xaxt="n",xlab="",
> ylab="Abundance
>
(%)",ylim=c(0,100),xlim=c(0.7,4.3),pch=22,bg="white",cex=0.75,las=1)
> par(new=T)
>
plot(c(1:4),mw[5:8],type="o",xaxt="n",xlab="",yaxt="n",
> ylab="",ylim=c(0,100),xlim=c(0.7,4.3),pch=15,cex=0.75)
>
> text(0.7,90,adj=0,"Adults",font=2)
> ###################################################################
> par(ps=8,mgp=c(2.25,1,0),mar=c(4,4,0,2))
>
> attach(rich)
>
plot(c(1:4),mw[1:4],type="o",xaxt="n",xlab="",
> ylab="Abundance
>
(%)",ylim=c(0,12),xlim=c(0.7,4.3),pch=22,bg="white",cex=0.75,las=1)
> par(new=T)
>
plot(c(1:4),mw[5:8],type="o",xaxt="n",xlab="",yaxt="n",
> ylab="",ylim=c(0,12),xlim=c(0.7,4.3),pch=15,cex=0.75)
> axis(1,at=c(1:4),labels=c(rep("",4)))
> axis(1,at=c(1:4),line=1.2,lwd=0,adj=0,hadj=0.5,padj=0.5,las=2,
>
labels=c("Pioneer","Early","Late","Alpine\nGrassland"))
> text(0.7,11,adj=0,"Richness",font=2)
> ###################################################################
> dev.off()
> --
> View this message in context:
> http://n4.nabble.com/multiple-plots-problem-tp2017326p2017326.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>
[[alternative HTML version deleted]]