Rolf Turner
2016-Feb-12 04:52 UTC
[R] Separating point symbols and line types in a legend.
I would like to have a legend given in the manner legend("topleft",pch=c(20,8,1),lty=1:3,bty="n", legend=c("clyde","irving","melvin")) but with the point symbol *NOT* being superimposed on the line segments that are plotted. I saw that I can specify "merge=FALSE" in the call to legend() but this gives results like unto ----* irving with the plot symbol being immediately juxtaposed to the plotted line segment. I would like a space between them, like so: ---- * irving (See the difference?) I can see no arguments to legend that allow me to effect this. I can adjust positioning of the legend text, but not of the plotted point character or line segment. Is there any way to effect the desired result? Or is there a "simple" adjustment that one could make to the code for legend() that would allow me to accomplish what I want? Ta. cheers, Rolf Turner -- Technical Editor ANZJS Department of Statistics University of Auckland Phone: +64-9-373-7599 ext. 88276
One option is to call `legend` twice and do some manual positioning. This worked for me: plot(1:10) legend('topleft', lty=1:3, bty="n", legend=c('','','') ) legend('topleft', pch=c(20,8,1), bty="n", legend=c('clyde','irving','melvin'), inset=c(0.1,0)) You may need to fiddle with the amount of inset for your particular plot and device combination. On Thu, Feb 11, 2016 at 9:52 PM, Rolf Turner <r.turner at auckland.ac.nz> wrote:> > I would like to have a legend given in the manner > > legend("topleft",pch=c(20,8,1),lty=1:3,bty="n", > legend=c("clyde","irving","melvin")) > > but with the point symbol *NOT* being superimposed on the line segments that > are plotted. > > I saw that I can specify "merge=FALSE" in the call to legend() but this > gives results like unto > > ----* irving > > with the plot symbol being immediately juxtaposed to the plotted line > segment. I would like a space between them, like so: > > ---- * irving > > (See the difference?) > > I can see no arguments to legend that allow me to effect this. I can adjust > positioning of the legend text, but not of the plotted point character or > line segment. Is there any way to effect the desired result? Or is there a > "simple" adjustment that one could make to the code for legend() that would > allow me to accomplish what I want? > > Ta. > > cheers, > > Rolf Turner > > -- > Technical Editor ANZJS > Department of Statistics > University of Auckland > Phone: +64-9-373-7599 ext. 88276 > > ______________________________________________ > R-help at 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.-- Gregory (Greg) L. Snow Ph.D. 538280 at gmail.com
Rolf Turner
2016-Feb-12 21:29 UTC
[R] Separating point symbols and line types in a legend.
Thanks Greg. Worked perfectly!!! cheers, Rolf On 13/02/16 09:22, Greg Snow wrote:> One option is to call `legend` twice and do some manual positioning. > This worked for me: > > plot(1:10) > legend('topleft', lty=1:3, bty="n", legend=c('','','') ) > legend('topleft', pch=c(20,8,1), bty="n", > legend=c('clyde','irving','melvin'), inset=c(0.1,0)) > > You may need to fiddle with the amount of inset for your particular > plot and device combination. > > > > On Thu, Feb 11, 2016 at 9:52 PM, Rolf Turner <r.turner at auckland.ac.nz> wrote: >> >> I would like to have a legend given in the manner >> >> legend("topleft",pch=c(20,8,1),lty=1:3,bty="n", >> legend=c("clyde","irving","melvin")) >> >> but with the point symbol *NOT* being superimposed on the line segments that >> are plotted. >> >> I saw that I can specify "merge=FALSE" in the call to legend() but this >> gives results like unto >> >> ----* irving >> >> with the plot symbol being immediately juxtaposed to the plotted line >> segment. I would like a space between them, like so: >> >> ---- * irving >> >> (See the difference?) >> >> I can see no arguments to legend that allow me to effect this. I can adjust >> positioning of the legend text, but not of the plotted point character or >> line segment. Is there any way to effect the desired result? Or is there a >> "simple" adjustment that one could make to the code for legend() that would >> allow me to accomplish what I want? >> >> Ta.-- Technical Editor ANZJS Department of Statistics University of Auckland Phone: +64-9-373-7599 ext. 88276