The
**forestplot**
package doesn’t easily support advanced coloring of each point, specifically
to flag significance levels.

It does however supported custom coloring via a moderately complicated custom function, so here’s an example of how to color by significance.

First, create the following function:

```
fn <- local({
i <- 0
clrs <- ifelse(dat$pv < .05, "darkgreen",
-ifelse(dat$pv < .1, "blue", "darkgrey"))
function(..., clr.line, clr.marker) {
i <<- i + 1
fpDrawNormalCI(...,
clr.line = clrs[i],
clr.marker = clrs[i])
}
})
```

Inside `local()`

so that `i`

isn’t manipulated
elsewhere.

The `clrs`

object defined in lines 3-4 returns a specific color
based upon the p-value, here stored in `dat$pv`

. For context,
“darkgreen” is used for p-values below .05, “blue” for p-values below .10 (but
above .05), and “darkgrey” for p-values above .10.

If you want different colors for the points and the lines, define two
different vectors similar to `clrs`

, and change lines 9-10 to point
to the differing vectors.

Following the creation of `fn`

, you can add it to your
`forestplot()`

via:

```
forestplot(...,
fn.ci_norm = fn,
...)
```

Home |
Back to blog
This work is licensed under CC BY-NC 4.0