View source: R/geom_central_region.R
geom_central_region | R Documentation |
geom_central_region
and stat_central_region
can be used to compute
and plot central_region
from data arranged in a data.frame
.
geom_central_region(
mapping = NULL,
data = NULL,
stat = "CentralRegion",
position = "identity",
...,
coverage = 0.5,
type = "erl",
filled = TRUE,
drawcenterline = TRUE,
colours = grey.colors(length(coverage), start = 0.9, end = 0.5),
na.rm = FALSE,
show.legend = NA,
inherit.aes = TRUE
)
stat_central_region(
mapping = NULL,
data = NULL,
position = "identity",
...,
coverage = 0.5,
type = "erl",
na.rm = FALSE,
show.legend = NA,
inherit.aes = TRUE
)
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
stat |
The statistical transformation to use on the data for this layer.
When using a
|
position |
A position adjustment to use on the data for this layer. This
can be used in various ways, including to prevent overplotting and
improving the display. The
|
... |
Other arguments passed on to
|
coverage |
A number between 0 and 1. The 100*coverage% central region will be calculated. A vector of values can also be provided, leading to the corresponding number of central regions. |
type |
The options and details for |
filled |
Boolean. Should the ribbon be filled? |
drawcenterline |
Boolean. Should the center line be drawn? |
colours |
Colours for different coverage levels |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
Plots of central regions (global envelopes) with the specified coverage
and type
(see central_region
).
When splitting the set of functions to groups by aesthetics or facets, see
examples, the central regions are constructed separately for each group,
each having the specified coverage
.
If Nfunc*(1-coverage) < 1, where Nfunc is the number of functions/curves, the curves are plotted instead of any region.
geom_central_region
requires x
, y
and curveid
.
Additionally geom_central_region
uses the same aesthetics as
geom_ribbon
if filled==TRUE
and
geom_line
otherwise.
For multiple coverage values additional aesthetics are not currently supported.
stat_central_region
computes
after_stat(ymax)
and after_stat(ymin)
for the high and low value of the central region.
For multiple coverages the variables use the same names as central_region
,
i.e. hi.95
and lo.95
for the region with 95% coverage.
central_region
for the basic computation and,
geom_ribbon
for the default base geom.
require("ggplot2")
## Generate some data
#------------------------------------------------------
# Simulate regression data according to the cubic model
# f(x) = 0.8x - 1.8x^2 + 1.05x^3 for x in [0,1]
par <- c(0,0.8,-1.8,1.05) # Parameters of the true polynomial model
res <- 100 # Resolution
x <- seq(0, 1, by=1/res); x2=x^2; x3=x^3;
f <- par[1] + par[2]*x + par[3]*x^2 + par[4]*x^3 # The true function
d <- f + rnorm(length(x), 0, 0.04) # Data
# Estimate polynomial regression model
reg <- lm(d ~ x + x2 + x3)
ftheta <- reg$fitted.values
resid0 <- reg$residuals
# Bootstrap regression
B <- 200 # Number of bootstrap samples
df <- NULL
for(i in 1:B) {
u <- sample(resid0, size=length(resid0), replace=TRUE)
reg1 <- lm((ftheta+u) ~ x + x2 + x3)
df <- rbind(df, data.frame(y=reg1$fitted.values, x=x, i=i,
g=ifelse(i<14, "A", "B"), g2=ifelse(i<100, "A", "B")))
}
ggplot(df) + geom_line(aes(x, y, group=i))
ggplot(df) + geom_central_region(aes(x=x, y=y, curveid=i), coverage=0.50)
ggplot(df) + geom_central_region(aes(x=x, y=y, curveid=i), coverage=0.50, filled=FALSE)
# Central regions for two groups as specified by 'g2'
ggplot(df) + geom_central_region(aes(x=x, y=y, curveid=i, col=g2), coverage=0.90, filled=FALSE)
ggplot(df) + geom_central_region(aes(x=x, y=y, curveid=i), coverage=0.90) + facet_wrap(vars(g2))
# Central regions with multiple coverage levels
ggplot(df) + geom_central_region(aes(x=x, y=y, curveid=i), coverage=c(0.2,0.4,0.6)) +
theme_minimal()
ggplot(df) + geom_central_region(aes(x=x, y=y, curveid=i), coverage=seq(0.1, 0.9, length=20),
colours=rainbow(20))
# Colors for multiregions are not supported
ggplot(df) + geom_central_region(aes(x=x, y=y+0.1*(g2=="B"),
curveid=i, col=as.factor(g2)), coverage=c(0.05, 0.2,0.4,0.6))
ggplot(df) + geom_central_region(aes(x=x, y=y, curveid=i),
coverage=c(0.05, 0.2,0.4,0.6)) + facet_wrap(vars(g2))
# Using stat_central_region with geom_linerange and geom_rect
ggplot(df) +
geom_linerange(aes(curveid=i, x=x, y=y, ymax=after_stat(ymax), ymin=after_stat(ymin),
group=g2, col=factor(g2)),
stat="central_region", coverage = 0.90, position=position_dodge(0.01))
ggplot(within(df, {x = x+0.004*(g2=="B")})) +
geom_rect(aes(curveid=i, x=x, y=y, xmax=after_stat(x), xmin=after_stat(x+0.004),
ymax=after_stat(ymax), ymin=after_stat(ymin), group=g2, fill=factor(g2)),
stat="central_region", coverage = 0.90)
# Non-finite values are not supported
ggplot(within(df, {y = ifelse(runif(length(y)) < 0.001, Inf, y)})) +
geom_central_region(aes(x=x, y=y, curveid=i))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.