[R] FW: plot legend outside the grid
Uwe Ligges
ligges at statistik.uni-dortmund.de
Fri Jul 1 15:04:10 CEST 2005
In principle you are there, just after opening the device set par(mar)
appropriate (large margin to place the legend in) before starting with
plotting.
In the legend, specify points which virtually are in the margin you have
already expanded...
Uwe Ligges
Ghosh, Sandeep wrote:
>
> -----Original Message-----
> From: Ghosh, Sandeep
> Sent: Thursday, June 30, 2005 5:43 PM
> To: 'Berton Gunter'
> Subject: plot legend outside the grid
>
>
> Thanks for the pointers... I managed to get everything to look and feel the way I want except for the legend to plot outside the grid... Thanks for the note on the par, but I'm not able to it to plot outside the plot grid..
>
> dataFrame <- as.data.frame(t(structure(c(
> 64,'wt',
> 62,'wt',
> 66,'wt',
[SNIP]
> 63,'hom',
> 64,'hom',
> 67,'hom'), .Dim=c(2,98))));
>
> colnames(dataFrame) <- c('marbles_buried', 'genotype');
>
> png('mb.png', width=400, height=400, pointsize=8);
>
> dataFrame[c("marbles_buried")] <- lapply(dataFrame[c("marbles_buried")], function(x) as.numeric(levels(x)[x]));
>
> par(xpd=FALSE)
>
> with (dataFrame, stripchart(marbles_buried ~ genotype, method="jitter", vertical=TRUE, col = c('blue', 'red', 'green'), xlab='Genotype', ylab = "Marbles Buried", main='MBA WTs Vs HOMs', pch=c(1,4,2), jitter=1/3.5, cex=1))
>
> meds <- as.vector(with(dataFrame, by(marbles_buried, genotype, mean)))
> segments((1:3)-0.25, meds, (1:3)+0.25, meds, col = c('blue', 'red', 'green'));
>
> dataWt <- subset(dataFrame, genotype=='wt', select=c(marbles_buried,genotype));
> dataHet <- subset(dataFrame, genotype=='het', select=c(marbles_buried,genotype));
> dataHom <- subset(dataFrame, genotype=='hom', select=c(marbles_buried,genotype));
>
> wtCount <- length(dataWt$marbles_buried);
> hetCount <- length(dataHet$marbles_buried);
> homCount <- length(dataHom$marbles_buried);
> wtLegend <- paste ("wt, (n=", wtCount, ")");
> hetLegend <- paste ("het, (n=", hetCount, ")");
> homLegend <- paste ("hom, (n=", homCount, ")");
>
> par(xpd=TRUE)
> legend(1, max(as.vector(dataFrame$marbles_buried)), c(wtLegend, hetLegend, homLegend), col=c('blue', 'red', 'green'), pch=c(1,4,2));
>
> -Thanks
> Sandeep.
>
> -----Original Message-----
> From: Berton Gunter [mailto:gunter.berton at gene.com]
> Sent: Thursday, June 30, 2005 2:55 PM
> To: Ghosh, Sandeep
> Subject: RE: [R] Help with stripplot
>
>
> Of course!
>
> stripchart() is a base graphics function and tehrefore has available to it
> the base graphics functionality, like (the base graphics function, **not**
> the lattice argument) legend(). See ?legend in the graphics package. Note
> the use of locator() for positioning the legend.
>
> Note: By default the legend will be clipped to the plot region. If you wish
> to have a legend outside the plot region set the xpd parameter of par to
> TRUE or NA prior to plotting.
>
> -- Bert
>
>
>>-----Original Message-----
>>From: r-help-bounces at stat.math.ethz.ch
>>[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Ghosh, Sandeep
>>Sent: Thursday, June 30, 2005 12:22 PM
>>To: Deepayan Sarkar; r-help at stat.math.ethz.ch
>>Subject: Re: [R] Help with stripplot
>>
>>Another question, in stripchart is there a way to draw a
>>legends. I need legends that gives the mice count for each
>>genotype wt/het/hom, something like the xyplot plot support
>>for key/auto.key.
>>
>>-Sandeep
>
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list