[R] R: Multi-line texts in plots
Greg Snow
Greg.Snow at imail.org
Mon Mar 23 17:06:18 CET 2009
Look at the textplot function in the gplots package and the addtable2plot function in the plotrix package. Either of those make it easy to 'plot' a matrix.
Hope this helps,
--
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
801.408.8111
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of mauede at alice.it
> Sent: Friday, March 20, 2009 11:41 PM
> To: baptiste auguie
> Cc: r-help at r-project.org
> Subject: [R] R: Multi-line texts in plots
>
> Now that I have my list of flags with theri respective values (thanks
> to all those who posted their suggestions):
>
> Flags Values
> 1 TrendOff 0
> 2 MOdwt 1
> 3 ZeroPadding 1
> 4 Step1HSOff 1
> 5 Step1NumHSOff 4
> 6 Step1NumHSOff 1
> 7 Step1ExtOff 1
> 8 Step2HSOff 1
> 9 Step2NumHSOff 4
> 10 Step2NumHSOff 1
> 11 Step2ExtOff 1
> 12 Step3HSOff 1
> 13 Step3NumHSOff 4
> 14 Step3NumHSOff 1
> 15 Step3ExtOff 1
> 16 Step4HSOff 1
> 17 Step4NumHSOff 4
> 18 Step4NumHSOff 1
> 19 Step4ExtOff 1
>
> The next step is to insert the above list in a composite plot made up
> of 4 quadrants. The top 2 quadrants are filled with a barplot, the
> bottom left quadrant is filled with a 2-tracks plot. I would like to
> place the flags list in the bottom right quadrant.
> Hiow can I do that ? Maybe through using the text command recursively
> (once for each flag pairlist) ?
> Please, notice taht what none of the graphs represent the flags value.
> Therefore a legend is unappropriate here.
> Here is a sketched incomplete and undebugged script to generate the
> composite plot I mentioned:
>
> alpha <- matrix(nrow=21,ncol=2,byrow=T)
> zm <- matrix(nrow=10,ncol=2,byrow=T)
> colnames(alpha) <- c("MEM","SpAn")
> colnames(zm) <- c("MEM","SpAn")
>
> alpha[,1] <- c( 0.9453125,
> 1,
> 1,
> 1,
> 0.9765625,
> 0.9973958,
> 0.9375,
> 0.9921671,
> 0.9765625,
> 0.9322917,
> 0.96875,
> 0.8645833,
> 0.8723958,
> 0.9270833,
> 0.9791667,
> 0.9869792,
> 0.9661458,
> 0.9895833,
> 1,
> 1,
> 0.9713542 )
>
> alpha[,2] <- c( 0.7265625,
> 0.8828125,
> 0.7734375,
> 0.7734375,
> 0.6875,
> 0.8359375,
> 0.6484375,
> 0.8046875,
> 0.71875,
> 0.734375,
> 0.71875,
> 0.7265625,
> 0.6796875,
> 0.7265625,
> 0.6953125,
> 0.6953125,
> 0.703125,
> 0.7890625,
> 0.828125,
> 0.8359375,
> 0.8515625 )
>
> zm[,1] <- c( 0.857, 0, 0, 0, 0.0476, 0, 0.0476, 0, 0, 0.0476 )
>
> zm[,2] <- c( 0, 0, 0, 0.762, 0, 0.0476, 0.1904, 0, 0, 0 )
>
> flags_val <- c( 0,1,1,1,4,1,1,1,4,1,1,1,4,1,1,1,4,1,1)
> flags_nam <- c("TrendOff","MOdwt","ZeroPadding",
>
> "Step1HSOff","Step1NumHSOff","Step1NumHSOff","Step1ExtOff",
>
> "Step2HSOff","Step2NumHSOff","Step2NumHSOff","Step2ExtOff",
>
> "Step3HSOff","Step3NumHSOff","Step3NumHSOff","Step3ExtOff",
>
> "Step4HSOff","Step4NumHSOff","Step4NumHSOff","Step4ExtOff" )
>
> flags <- data.frame(Flags=flags_nam,
> Values=flags_val,stringsAsFactors=FALSE)
>
> par(mfrow=c(2,2))
>
> barplot(zm[,1],width=1,space=0,horiz=FALSE,axes=FALSE,main="MEM
> Vanishing Moments Distribution",cex.main=0.95)
> xxLab <- seq(0,11,1)
> axis(1,at=xxLab-
> 0.5,labels=as.character(xxLab),col="red",col.axis="red",font.axis=1,xpd
> =TRUE,
> cex.lab=1)
> yyLab <- seq(0,1,0.14)
>
> axis(2,at=yyLab,labels=as.character(yyLab),col="red",col.axis="red",fon
> t.axis=1,xpd=TRUE,
> cex.lab=0.8,cex.axis=0.8)
> barplot(zm[,2],width=1,space=0,horiz=TRUE,axes=FALSE)
> text(x=25.5,y=15.6,pos=4,"SpAn Vanishing Moments
> Distribution",cex=1.2,font=2)
> axis(2,at=xxLab-
> 1,labels=as.character(xxLab),col="red",col.axis="red",font.axis=1,xpd=T
> RUE,
> cex.lab=1)
> axis(3,at=yyLab-
> 1,labels=as.character(yyLab),col="red",col.axis="red",font.axis=1,xpd=T
> RUE,
> cex.lab=0.8,cex.axis=0.8)
> cycle <- seq(1,21,1)
> plot(cycle, alpha[,1], pch=1, type = "l", col=3, lty=2, main="Alpha")
> points(cycle, alpha[,2], pch=3, type="b", lty=1, pch=4, col=6)
> legend("topright", legend=c("MEM","SpAn"),
> col=c(3,6),text.col="green4",lty=c(2,1), pch=c(1,3),merge=FALSE,
> bg='gray90')
>
> Thank tyou so much.
> Maura
>
>
>
>
>
>
>
>
>
>
> -----Messaggio originale-----
> Da: baptiste auguie [mailto:ba208 at exeter.ac.uk]
> Inviato: ven 20/03/2009 12.56
> A: mauede at alice.it
> Cc: r-help at r-project.org
> Oggetto: Re: [R] Multi-line texts in plots
>
> Hi,
>
> it would help if you provided a minimal example.
>
> Here is one approach I often use with the plotting package ggplot2,
>
> parameters <- expand.grid(m=c(0, 1), s=seq(0.1, 1,length=10))
>
> x <- seq(-5, 5, length=300)
>
> foo <- function(m, s){
> data.frame(x=x, y=dnorm(x, m, s), m=factor(m), s=factor(s))
> }
>
> # construct a data.frame with all the data
> results <- do.call(rbind, mapply(foo, m=parameters$m, s=parameters$s,
> SIMPLIFY=F))
>
> library(ggplot2)
>
> p1 <- qplot(x, y, data=results, geom="line", colour=s, linetype=m)
>
> p2 <- p1 + facet_grid(m~.)
>
> results2 <- within(results, f <- factor(paste("m=", m,"; s=", s)))
>
> p3 <- qplot(x, y, data=results2, geom="line", colour=f)
>
> p1 # note how the legend is constructed for you
>
> p2 # clearest imho
>
> p3 # with 20 levels it's not very readable
>
>
> Hope this helps,
>
> baptiste
>
> On 20 Mar 2009, at 10:59, mauede at alice.it wrote:
>
> > I am running a simulation many times changing one parameter each
> > time and recording the outcome.
> > I have to produce a plot to make a sense of the bunch of numbers I
> > get from every run.
> > My problem is to insert a multi-line text to keep track of which
> > result correspond to which parameter values.
> > A legend does not work in this case because I will plot 2 variables
> > and the corresponding experimental values.
> > So two curves on the same drawing as a result of the combination of
> > 20 parameters.
> > I may decide to place two plots on the same canvas but if so I will
> > have to find the space for two 20-line texts ....
> > In short, I wonder how I can insert a 20-line text on each plot. I
> > browsed through the documentation of the par command
> > but I could not find any helpful option.
> > Thank you in advance for any suggestion.
> > Maura
> >
> >
> > tutti i telefonini TIM!
> >
> >
> > [[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.
>
> _____________________________
>
> Baptiste Auguié
>
> School of Physics
> University of Exeter
> Stocker Road,
> Exeter, Devon,
> EX4 4QL, UK
>
> Phone: +44 1392 264187
>
> http://newton.ex.ac.uk/research/emag
> ______________________________
>
>
>
>
>
> tutti i telefonini TIM!
>
>
> [[alternative HTML version deleted]]
More information about the R-help
mailing list