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-262...@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]] ______________________________________________ R-help@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.