Re: [R] How to do a pretty panel plot?
Ajay Shah wrote: Here's my best version of your code: ## Data M - structure(list(date = structure(c(13634, 13665, 13695, 13726, 13757, 13787, 13818, 13848, 13879, 13910, 13939, 13970, 14000, 14031, 14061, 14092, 14123, 14153, 14184, 14214, 14245, 14276, 14304, 14335), class = Date), cospi = c(1987.31, 2033.37, 2140.13, 2120.66, 2427.09, 2917.7, 2915.28, 3262.06, 2616.26, 2617.75, 2277.69, 2538.13, 2374.09, 1911.22, 2063.73, 2081.28, 1813.58, 1304.96, 1219.73, 1361.74, 1299.2, 1242.74, 1339.18, 1557.29), cospi.PE = c(19.2, 19.69, 20.13, 24.08, 27.61, 30.9, 30.69, 34.92, 26.95, 27.63, 23.86, 26.14, 23.72, 19.5, 23.43, 23.73, 20.69, 16.4, 16.12, 18.04, 18.46, 18.86, 20.24, 23.53)), .Names = c(date, cospi, cospi.PE), row.names = 209:232, class = data.frame) ## Set up par's to make 2 panel chart par(bty=l); par(ps=10) par(mfrow=c(2,1)) # try to get two plots, one above the other par(mar=c(0,4,0,1)) ## Set par(mar) to eliminate X axis gap par(oma=c(2,2,2,2)) ## Make Plot 1 plot(M$date, M$cospi, type=l, log=y, xaxs=i, yaxs=i, axes=F, lwd=2, ylab=Cospi level) axis(1, col=grey, at=NULL, labels=FALSE) axis(2, col=black, labels=TRUE) axis(3, col=grey, labels=TRUE) grid(col = lightgrey, lty=1) box(col = grey) ## Adjust par(mar) for 2nd plot par(mar=c(2,4,0,1)) ## Second plot plot(M$date, M$cospi.PE, type=l, col=black, log=y, xaxs=i, yaxs=i, axes=F, lwd=2, ylab=Cospi P/E) axis(2, col=black, at=NULL, labels=T) axis(1, col=lightgrey, at=NULL, labels=T) grid(col = lightgrey, lty=1) box(col = grey) I think it's better if the lines are above the grid: ## Data M - structure(list(date = structure(c(13634, 13665, 13695, 13726, 13757, 13787, 13818, 13848, 13879, 13910, 13939, 13970, 14000, 14031, 14061, 14092, 14123, 14153, 14184, 14214, 14245, 14276, 14304, 14335), class = Date), cospi = c(1987.31, 2033.37, 2140.13, 2120.66, 2427.09, 2917.7, 2915.28, 3262.06, 2616.26, 2617.75, 2277.69, 2538.13, 2374.09, 1911.22, 2063.73, 2081.28, 1813.58, 1304.96, 1219.73, 1361.74, 1299.2, 1242.74, 1339.18, 1557.29), cospi.PE = c(19.2, 19.69, 20.13, 24.08, 27.61, 30.9, 30.69, 34.92, 26.95, 27.63, 23.86, 26.14, 23.72, 19.5, 23.43, 23.73, 20.69, 16.4, 16.12, 18.04, 18.46, 18.86, 20.24, 23.53)), .Names = c(date, cospi, cospi.PE), row.names = 209:232, class = data.frame) ## Set up par's to make 2 panel chart par(bty=l) par(ps=10) par(mfrow=c(2,1)) # try to get two plots, one above the other par(mar=c(0,4,0,1)) ## Set par(mar) to eliminate X axis gap par(oma=c(2,2,2,2)) ## Make Plot 1 plot(M$date, M$cospi, type=l, log=y, xaxs=i, yaxs=i, axes=F, lwd=0, ylab=Cospi level) grid(col = lightgrey, lty=1) lines(M$date, M$cospi, type=l, lwd=2) axis(1, col=grey, at=NULL, labels=FALSE) axis(2, col=black, labels=TRUE) axis(3, col=grey, labels=TRUE) box(col = grey) ## Adjust par(mar) for 2nd plot par(mar=c(2,4,0,1)) ## Second plot plot(M$date, M$cospi.PE, type=l, col=black, log=y, xaxs=i, yaxs=i, axes=F, lwd=0, ylab=Cospi P/E) grid(col = lightgrey, lty=1) lines(M$date, M$cospi.PE, col=black, lwd=2) axis(2, col=black, at=NULL, labels=T) __ 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.
Re: [R] How to do a pretty panel plot?
M - (structure(list(date = structure(c(13634, 13665, 13695, 13726, 13757, 13787, 13818, 13848, 13879, 13910, 13939, 13970, 14000, 14031, 14061, 14092, 14123, 14153, 14184, 14214, 14245, 14276, 14304, 14335), class = Date), cospi = c(1987.31, 2033.37, 2140.13, 2120.66, 2427.09, 2917.7, 2915.28, 3262.06, 2616.26, 2617.75, 2277.69, 2538.13, 2374.09, 1911.22, 2063.73, 2081.28, 1813.58, 1304.96, 1219.73, 1361.74, 1299.2, 1242.74, 1339.18, 1557.29), cospi.PE = c(19.2, 19.69, 20.13, 24.08, 27.61, 30.9, 30.69, 34.92, 26.95, 27.63, 23.86, 26.14, 23.72, 19.5, 23.43, 23.73, 20.69, 16.4, 16.12, 18.04, 18.46, 18.86, 20.24, 23.53)), .Names = c(date, cospi, cospi.PE), row.names = 209:232, class = data.frame)) library(ggplot2) a - melt.data.frame(M, id.var=date) qplot(date, value, data=a, geom=line)+facet_wrap(~variable, ncol=1, scales=free) how about this and much simpler code. If you add the theme_bw argument it looks more similar to your plot, but there are some bugs. Stephen Sefick On Fri, May 15, 2009 at 6:12 AM, Jakson Alves de Aquino jaksonaqu...@gmail.com wrote: Ajay Shah wrote: Here's my best version of your code: ## Data M - structure(list(date = structure(c(13634, 13665, 13695, 13726, 13757, 13787, 13818, 13848, 13879, 13910, 13939, 13970, 14000, 14031, 14061, 14092, 14123, 14153, 14184, 14214, 14245, 14276, 14304, 14335), class = Date), cospi = c(1987.31, 2033.37, 2140.13, 2120.66, 2427.09, 2917.7, 2915.28, 3262.06, 2616.26, 2617.75, 2277.69, 2538.13, 2374.09, 1911.22, 2063.73, 2081.28, 1813.58, 1304.96, 1219.73, 1361.74, 1299.2, 1242.74, 1339.18, 1557.29), cospi.PE = c(19.2, 19.69, 20.13, 24.08, 27.61, 30.9, 30.69, 34.92, 26.95, 27.63, 23.86, 26.14, 23.72, 19.5, 23.43, 23.73, 20.69, 16.4, 16.12, 18.04, 18.46, 18.86, 20.24, 23.53)), .Names = c(date, cospi, cospi.PE), row.names = 209:232, class = data.frame) ## Set up par's to make 2 panel chart par(bty=l); par(ps=10) par(mfrow=c(2,1)) # try to get two plots, one above the other par(mar=c(0,4,0,1)) ## Set par(mar) to eliminate X axis gap par(oma=c(2,2,2,2)) ## Make Plot 1 plot(M$date, M$cospi, type=l, log=y, xaxs=i, yaxs=i, axes=F, lwd=2, ylab=Cospi level) axis(1, col=grey, at=NULL, labels=FALSE) axis(2, col=black, labels=TRUE) axis(3, col=grey, labels=TRUE) grid(col = lightgrey, lty=1) box(col = grey) ## Adjust par(mar) for 2nd plot par(mar=c(2,4,0,1)) ## Second plot plot(M$date, M$cospi.PE, type=l, col=black, log=y, xaxs=i, yaxs=i, axes=F, lwd=2, ylab=Cospi P/E) axis(2, col=black, at=NULL, labels=T) axis(1, col=lightgrey, at=NULL, labels=T) grid(col = lightgrey, lty=1) box(col = grey) I think it's better if the lines are above the grid: ## Data M - structure(list(date = structure(c(13634, 13665, 13695, 13726, 13757, 13787, 13818, 13848, 13879, 13910, 13939, 13970, 14000, 14031, 14061, 14092, 14123, 14153, 14184, 14214, 14245, 14276, 14304, 14335), class = Date), cospi = c(1987.31, 2033.37, 2140.13, 2120.66, 2427.09, 2917.7, 2915.28, 3262.06, 2616.26, 2617.75, 2277.69, 2538.13, 2374.09, 1911.22, 2063.73, 2081.28, 1813.58, 1304.96, 1219.73, 1361.74, 1299.2, 1242.74, 1339.18, 1557.29), cospi.PE = c(19.2, 19.69, 20.13, 24.08, 27.61, 30.9, 30.69, 34.92, 26.95, 27.63, 23.86, 26.14, 23.72, 19.5, 23.43, 23.73, 20.69, 16.4, 16.12, 18.04, 18.46, 18.86, 20.24, 23.53)), .Names = c(date, cospi, cospi.PE), row.names = 209:232, class = data.frame) ## Set up par's to make 2 panel chart par(bty=l) par(ps=10) par(mfrow=c(2,1)) # try to get two plots, one above the other par(mar=c(0,4,0,1)) ## Set par(mar) to eliminate X axis gap par(oma=c(2,2,2,2)) ## Make Plot 1 plot(M$date, M$cospi, type=l, log=y, xaxs=i, yaxs=i, axes=F, lwd=0, ylab=Cospi level) grid(col = lightgrey, lty=1) lines(M$date, M$cospi, type=l, lwd=2) axis(1, col=grey, at=NULL, labels=FALSE) axis(2, col=black, labels=TRUE) axis(3, col=grey, labels=TRUE) box(col = grey) ## Adjust par(mar) for 2nd plot par(mar=c(2,4,0,1)) ## Second plot plot(M$date, M$cospi.PE, type=l, col=black, log=y, xaxs=i, yaxs=i, axes=F, lwd=0, ylab=Cospi P/E) grid(col = lightgrey, lty=1) lines(M$date, M$cospi.PE, col=black, lwd=2) axis(2, col=black, at=NULL, labels=T) __ 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. -- Stephen Sefick Let's not spend our time and resources thinking about things that are so little or so large that all they really do for
[R] How to do a pretty panel plot?
The pretty picture that I saw at: http://chartsgraphs.wordpress.com/2009/02/09/r-panel-chart-beats-excel-chart/#more-1096 inspired me to try something similar. The code that I wrote is: --snipsnip- M - structure(list(date = structure(c(13634, 13665, 13695, 13726, 13757, 13787, 13818, 13848, 13879, 13910, 13939, 13970, 14000, 14031, 14061, 14092, 14123, 14153, 14184, 14214, 14245, 14276, 14304, 14335), class = Date), cospi = c(1987.31, 2033.37, 2140.13, 2120.66, 2427.09, 2917.7, 2915.28, 3262.06, 2616.26, 2617.75, 2277.69, 2538.13, 2374.09, 1911.22, 2063.73, 2081.28, 1813.58, 1304.96, 1219.73, 1361.74, 1299.2, 1242.74, 1339.18, 1557.29), cospi.PE = c(19.2, 19.69, 20.13, 24.08, 27.61, 30.9, 30.69, 34.92, 26.95, 27.63, 23.86, 26.14, 23.72, 19.5, 23.43, 23.73, 20.69, 16.4, 16.12, 18.04, 18.46, 18.86, 20.24, 23.53)), .Names = c(date, cospi, cospi.PE), row.names = 209:232, class = data.frame) par(mfrow=c(2,1)) # try to get two plots, one above the other plot(M$date, M$cospi, type=l, col=darkgrey, log=y, xaxs=i, yaxs=i, axes=FALSE, ylab=Cospi level) axis(1, col=lightgrey, at=NULL, labels=FALSE) axis(2, col=lightgrey, labels=TRUE) plot(M$date, M$cospi.PE, type=l, col=darkgrey, log=y, xaxs=i, yaxs=i, axes=FALSE, ylab=Cospi P/E) axis(2, col=lightgrey, at=NULL, labels=TRUE) axis(1, col=lightgrey, at=NULL, labels=TRUE) --snipsnip- and this is clearly all wrong. * It's supposed to look like one rectangle inside which are two plots. Instead it looks like two separate plots. * The x axis is Dates and the axis labelling doesn't get that. How do I set about making a pretty panel plot of these two series, both of which share a common time axis? -- Ajay Shah http://www.mayin.org/ajayshah ajays...@mayin.org http://ajayshahblog.blogspot.com *(:-? - wizard who doesn't know the answer. __ 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.
Re: [R] How to do a pretty panel plot?
Ajay Shah wrote: The pretty picture that I saw at: http://chartsgraphs.wordpress.com/2009/02/09/r-panel-chart-beats-excel-chart/#more-1096 inspired me to try something similar. The code that I wrote is: --snipsnip- M - structure(list(date = structure(c(13634, 13665, 13695, 13726, 13757, 13787, 13818, 13848, 13879, 13910, 13939, 13970, 14000, 14031, 14061, 14092, 14123, 14153, 14184, 14214, 14245, 14276, 14304, 14335), class = Date), cospi = c(1987.31, 2033.37, 2140.13, 2120.66, 2427.09, 2917.7, 2915.28, 3262.06, 2616.26, 2617.75, 2277.69, 2538.13, 2374.09, 1911.22, 2063.73, 2081.28, 1813.58, 1304.96, 1219.73, 1361.74, 1299.2, 1242.74, 1339.18, 1557.29), cospi.PE = c(19.2, 19.69, 20.13, 24.08, 27.61, 30.9, 30.69, 34.92, 26.95, 27.63, 23.86, 26.14, 23.72, 19.5, 23.43, 23.73, 20.69, 16.4, 16.12, 18.04, 18.46, 18.86, 20.24, 23.53)), .Names = c(date, cospi, cospi.PE), row.names = 209:232, class = data.frame) par(mfrow=c(2,1)) # try to get two plots, one above the other plot(M$date, M$cospi, type=l, col=darkgrey, log=y, xaxs=i, yaxs=i, axes=FALSE, ylab=Cospi level) axis(1, col=lightgrey, at=NULL, labels=FALSE) axis(2, col=lightgrey, labels=TRUE) plot(M$date, M$cospi.PE, type=l, col=darkgrey, log=y, xaxs=i, yaxs=i, axes=FALSE, ylab=Cospi P/E) axis(2, col=lightgrey, at=NULL, labels=TRUE) axis(1, col=lightgrey, at=NULL, labels=TRUE) --snipsnip- and this is clearly all wrong. * It's supposed to look like one rectangle inside which are two plots. Instead it looks like two separate plots. * The x axis is Dates and the axis labelling doesn't get that. How do I set about making a pretty panel plot of these two series, both of which share a common time axis? -- Ajay Shah http://www.mayin.org/ajayshah ajays...@mayin.org http://ajayshahblog.blogspot.com *(:-? - wizard who doesn't know the answer. __ 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. -- View this message in context: http://www.nabble.com/How-to-do-a-pretty-panel-plot--tp23548798p23551270.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.
Re: [R] How to do a pretty panel plot?
On Thu, May 14, 2009 at 05:09:59PM -0700, ko...@processtrends.com wrote: Ajay I have added a few minor adjustments to your code to make the panel chart you want. You need to adjust the par(mar) to control space between 1st and 2nd plot. Thanks! This is a step forward for me. But now: * The dates on the x axis are wrongly labelled * The boxes look incomplete - the right hand side is open. Here's my best version of your code: ## Data M - structure(list(date = structure(c(13634, 13665, 13695, 13726, 13757, 13787, 13818, 13848, 13879, 13910, 13939, 13970, 14000, 14031, 14061, 14092, 14123, 14153, 14184, 14214, 14245, 14276, 14304, 14335), class = Date), cospi = c(1987.31, 2033.37, 2140.13, 2120.66, 2427.09, 2917.7, 2915.28, 3262.06, 2616.26, 2617.75, 2277.69, 2538.13, 2374.09, 1911.22, 2063.73, 2081.28, 1813.58, 1304.96, 1219.73, 1361.74, 1299.2, 1242.74, 1339.18, 1557.29), cospi.PE = c(19.2, 19.69, 20.13, 24.08, 27.61, 30.9, 30.69, 34.92, 26.95, 27.63, 23.86, 26.14, 23.72, 19.5, 23.43, 23.73, 20.69, 16.4, 16.12, 18.04, 18.46, 18.86, 20.24, 23.53)), .Names = c(date, cospi, cospi.PE), row.names = 209:232, class = data.frame) ## Set up par's to make 2 panel chart par(bty=l); par(ps=10) par(mfrow=c(2,1)) # try to get two plots, one above the other par(mar=c(0,4,0,1)) ## Set par(mar) to eliminate X axis gap par(oma=c(2,2,2,2)) ## Make Plot 1 plot(M$date, M$cospi, type=l, log=y, xaxs=i, yaxs=i, axes=F, lwd=2, ylab=Cospi level) axis(1, col=grey, at=NULL, labels=FALSE) axis(2, col=black, labels=TRUE) axis(3, col=grey, labels=TRUE) grid(col = lightgrey, lty=1) box(col = grey) ## Adjust par(mar) for 2nd plot par(mar=c(2,4,0,1)) ## Second plot plot(M$date, M$cospi.PE, type=l, col=black, log=y, xaxs=i, yaxs=i, axes=F, lwd=2, ylab=Cospi P/E) axis(2, col=black, at=NULL, labels=T) axis(1, col=lightgrey, at=NULL, labels=T) grid(col = lightgrey, lty=1) box(col = grey) -- Ajay Shah http://www.mayin.org/ajayshah ajays...@mayin.org http://ajayshahblog.blogspot.com *(:-? - wizard who doesn't know the answer. __ 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.