Hi All, BG: Will try be brief. I'd like 3 graphs on a page (below each other mfrow=c(3,1)), saved to pdf. The three plot data on the same subject so I'm having one legend, to the right of the center graph. I'm using mar=c(5,15,4,15) to bring the sides in so that the graphs are square and not stretched wide. To have the graph to the side I'm thinking xpd=T. Each graph has a number of points and lines overlaid, so plot ();lines(),lines(),lines() etc. The data is somewhat of a subset of a larger set, so I'm limiting what is being displayed. The lines plot trends of the wider data. P: With xpd=T, the lines are going right out of the graph boxes to the outer limit of the plot boundaries, as would be the intended behaviour of xpd. Goes without saying that this is undesirable. Q: Is there a better way to achieve what I want? At this stage I have xpd=T in the par(), and xpd=F in the plot() commands and all the line commands, just so I can get the legend to actually print... Aside: Given the way I've done this, the lines() are all clipped RIGHT at the limit of the plot box. So given the plot is called first these lines leave little coloured dashes on the black of the plot box. To sort this I've called box() at the end. This all seems very redundant? Thanks Matt -- mattcstats@gmail.com [[alternative HTML version deleted]]
On Feb 6, 2011, at 2:41 AM, Matt Cooper wrote:> Hi All, > > BG: Will try be brief. I'd like 3 graphs on a page (below each other > mfrow=c(3,1)), saved to pdf. The three plot data on the same subject > so I'm > having one legend, to the right of the center graph. I'm using > mar=c(5,15,4,15) to bring the sides in so that the graphs are square > and not > stretched wide. To have the graph to the side I'm thinking xpd=T. > Each graph > has a number of points and lines overlaid, so plot > ();lines(),lines(),lines() etc. > > The data is somewhat of a subset of a larger set, so I'm limiting > what is > being displayed. The lines plot trends of the wider data. > > P: With xpd=T, the lines are going right out of the graph boxes to > the outer > limit of the plot boundaries, as would be the intended behaviour of > xpd. > Goes without saying that this is undesirable. > > Q: Is there a better way to achieve what I want? At this stage I > have xpd=T > in the par(), and xpd=F in the plot() commands and all the line > commands, > just so I can get the legend to actually print...Why not just use xpd=T inside legend()?> > Aside: Given the way I've done this, the lines() are all clipped > RIGHT at > the limit of the plot box. So given the plot is called first these > lines > leave little coloured dashes on the black of the plot box. To sort > this I've > called box() at the end. This all seems very redundant? > > Thanks > Matt > > > -- > mattcstats at gmail.com > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.David Winsemius, MD West Hartford, CT
you can use layout to setup 4 plot areas; 3 for the graphs and then along one on the right for the legend Sent from my iPad On Feb 6, 2011, at 2:41, Matt Cooper <mattcstats at gmail.com> wrote:> Hi All, > > BG: Will try be brief. I'd like 3 graphs on a page (below each other > mfrow=c(3,1)), saved to pdf. The three plot data on the same subject so I'm > having one legend, to the right of the center graph. I'm using > mar=c(5,15,4,15) to bring the sides in so that the graphs are square and not > stretched wide. To have the graph to the side I'm thinking xpd=T. Each graph > has a number of points and lines overlaid, so plot > ();lines(),lines(),lines() etc. > > The data is somewhat of a subset of a larger set, so I'm limiting what is > being displayed. The lines plot trends of the wider data. > > P: With xpd=T, the lines are going right out of the graph boxes to the outer > limit of the plot boundaries, as would be the intended behaviour of xpd. > Goes without saying that this is undesirable. > > Q: Is there a better way to achieve what I want? At this stage I have xpd=T > in the par(), and xpd=F in the plot() commands and all the line commands, > just so I can get the legend to actually print... > > Aside: Given the way I've done this, the lines() are all clipped RIGHT at > the limit of the plot box. So given the plot is called first these lines > leave little coloured dashes on the black of the plot box. To sort this I've > called box() at the end. This all seems very redundant? > > Thanks > Matt > > > -- > mattcstats at gmail.com > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.