Dear Prof. Viechtbauer,
thank you so much for your help and kindness.

Clearly graphs are the minor problem in our work, and the parameters and
options that can vary in R are so many that it is obvious that you can
not expect
to change everything you want!

Your suggestions are very helpuf, but I have one last question. I'm trying
to copy the style of a forest plot that I've seen and I like (the one in the
attached file, page 1034): can I do this in R?

Best wishes,

*Paola*



2011/8/25 Viechtbauer Wolfgang (STAT)-2 [via R] <
ml-node+3768683-1225159815-262246@n4.nabble.com>

> The color of the squares is also currently hard coded.
>
> The thing is, there are so many different elements to a forest plot
> (squares, lines, polygons, text, axes, axis labels, etc.), if I would add
> arguments to set the color of each element, things would really get out of
> hand (as far as I am concerned, there are already too many arguments to
> begin with). I can think of one possibility: I could allow the col argument
> to accept a vector of colors and then apply the different elements of that
> vector to the various elements in the plot. Of course, there is also a limit
> to how far that can be taken. For example, what if somebody wants to have a
> different color for *one* of the squares and a different color for the other
> squares?
>
> Another possibility is to do some post-processing with other software. One
> can create the forest plot in R, save it for example as a postscript file,
> and the edit the plot in other software. Yes, I prefer it if I can create
> the plot in R and have it exactly the way I want it (without having to do
> any post-processing), but sometimes that may not be possible.
>
> Note that you can always add whatever you want to a plot created by the
> forest() function after it has been drawn. You can add text, lines, squares,
> polygons, whatever in any color you desire (e.g., with the text(),
> segments(), points(), polygon() functions). So, you could also just plot
> over the squares with:
>
> points(yi, 4:1, pch=15, col="red")
>
> To get rid of the black squares that are drawn by the forest function, add
> psize=0 as an argument in forest() (this will make the size of squares equal
> to 0, so essentially, they are invisible).
>
> If you want to make the size of the points inversely proportional to some
> function of the precision of the estimates, use points() together with the
> cex argument. For example:
>
> wi <- 1/sqrt(vi)
> psize <- wi/sum(wi)
> psize <- (psize - min(psize)) / (max(psize) - min(psize))
> psize <- (psize * 1.0) + 0.5
> points(yi, 4:1, pch=15, col="red", cex=psize)
>
> Best,
>
> Wolfgang
>
> > -----Original Message-----
> > From: Paola Tellaroli [mailto:[hidden email]<http://user/SendEmail.jtp?type=node&node=3768683&i=0>]
>
> > Sent: Thursday, August 25, 2011 10:57
> > To: Viechtbauer Wolfgang (STAT)
> > Cc: [hidden email]<http://user/SendEmail.jtp?type=node&node=3768683&i=1>;
> Bernd Weiss
> > Subject: Re: [R] Change color in forest.rma (metafor)
> >
> > Thank you for your attention and help!
> >
> > In this way I get the diamond coloured, but actually I would have the
> > squares representing the values of the individual studies coloured. Is it
>
> > somehow possible?
> >
> > Paola
> >
> >
> > 2011/8/24 Viechtbauer Wolfgang (STAT)
> > <[hidden email] <http://user/SendEmail.jtp?type=node&node=3768683&i=2>>
> > Thank you, Bernd, for looking into this.
> >
> > Yes, at the moment, the color of the summary estimate for models without
> > moderators is hard-coded (as black). I didn't think people may want to
> > change that. I guess I was wrong =)
> >
> > A dirty solution for the moment is to add:
> >
> > addpoly(dfs, efac=6, row=-1, col="red", border="red", annotate=F,
> mlab="")
> >
> > after the call to forest(). You will get a warning message (since the
> > border argument gets passed to the text() function inside addpoly() and
> > that's not a par for text), but you can just ignore that.
> >
> > Best,
> >
> > --
> > Wolfgang Viechtbauer
> > Department of Psychiatry and Neuropsychology
> > School for Mental Health and Neuroscience
> > Maastricht University, P.O. Box 616
> > 6200 MD Maastricht, The Netherlands
> > Tel: +31 (43) 368-5248
> > Fax: +31 (43) 368-8689
> > Web: http://www.wvbauer.com
> >
> >
> > > -----Original Message-----
> > > From: Bernd Weiss [mailto:[hidden email]<http://user/SendEmail.jtp?type=node&node=3768683&i=3>]
>
> > > Sent: Wednesday, August 24, 2011 16:22
> > > To: Paola Tellaroli
> > > Cc: [hidden email]<http://user/SendEmail.jtp?type=node&node=3768683&i=4>;
> [hidden email] <http://user/SendEmail.jtp?type=node&node=3768683&i=5>
> > > Subject: Re: [R] Change color in forest.rma (metafor)
> > >
> > > Am 24.08.2011 07:50, schrieb Paola Tellaroli:
> > > > My script is the following:
> > > >
> > > > library(metafor)
> > > >
> > > > yi<-c(-0.1, 0.2, 0.3, 0.4)
> > > > sei<-c(0.4, 0.2, 0.6, 0.1)
> > > > vi<-sei^2
> > > > studi<-c("A", "B", "C", "D")
> > > > eventi.c<-c(10, 5, 7, 6)
> > > > n.c<-c(11, 34, 25, 20)
> > > > eventi.a<-c(2, 7, 6, 5)
> > > > n.a<-c(11, 35, 25, 15)
> > > > dfs<-rma(yi, vi, method="DL")
> > > > dfs
> > > >
> > > > windows(height=6, width=10, pointsize=10)
> > > > windowsFonts(B=windowsFont("Bookman Old Style"))
> > > >
> > > > forest.rma(dfs, slab=studi, xlim=c(-15, 10), ilab=cbind(eventi.c,
> n.c,
> > > > eventi.a, n.a), ilab.xpos=c(-9.5, -8, -6, -4.5), cex=1.2, at=c(-2,
> -1,
> > > 0, 1,
> > > > 2), family="B", xlab="Hazard Ratio (log scale)", mlab="Random Effects
>
> > > > Model", efac=5, col="red", border="red")
> > > > text(-10, -1.3, paste("Heterogeneity: I-squared=",
> > > paste(paste(round(dfs$I2,
> > > > 2), "%", sep=""), paste("p", round(dfs$QEp, 4), sep="="), sep=", "),
> > > > sep=""), font=4, cex=1.2, family="B")
> > > >
> > > > op<-par(cex=1.2, font=2, family="B", oma=c(0.5, 0.5, 0.5, 0.5),
> > > mar=c(0.5,
> > > > 0.5, 0.5, 0.5))
> > > > text(x=c(-9.5, -8, -6, -4.5), 6, c("Events", "N", "Events", "N"),
> > > cex=1.2 )
> > > > text(c(-8.7, -5.5, 8), 6.5, c("S", "A", "Log"))
> > > > text(-15, 6, "Trials", pos=4)
> > > > text(10, 6, "Hazard Ratio [95% CI]", pos=2)
> > > > par(op)
> > > >
> > > > Even if I have specified "col="red", border="red"", color of squares
> > and
> > > > diamond rests black! Why?
> > >
> > > As far as I know, "col" and "border" do only affect the fitted values
> > > ("diamonds"), i.e. the FEM/REM estimators (see ?forest.rma: "col:
> > > character string specifying the name of a color to use for _the fitted_
>
> > > values ('"darkgray"' by default).")
> > >
> > > Furthermore, I had a quick look at the source code and it might be a
> > > bug. If I replace in line 2770 the line
> > >
> > > cex * efac), col = "black", ...)
> > >
> > > with
> > >
> > > cex * efac), col = col, ...)
> > >
> > > you can at least specify your own colour. Changing the border color
> > > seems a bit more tricky...
> > >
> > > However, Wolfgang Viechbauer (the package author) is always a very
> > > responsive and helpful person and I suggest you better wait for his
> > > answer.
> > >
> > > Bernd
>
> ______________________________________________
> [hidden email] <http://user/SendEmail.jtp?type=node&node=3768683&i=6>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.
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://r.789695.n4.nabble.com/Change-color-in-forest-rma-metafor-tp3765090p3768683.html
>  To unsubscribe from Change color in forest.rma (metafor), click here<http://r.789695.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3765090&code=cGFvbGEudGVsbGFyb2xpQGdtYWlsLmNvbXwzNzY1MDkwfDQzMzczMjk1Ng==>.
>
>


--
View this message in context: http://r.789695.n4.nabble.com/Change-color-in-forest-rma-metafor-tp3765090p3770728.html
Sent from the R help mailing list archive at Nabble.com.
	[[alternative HTML version deleted]]

