Combined point + multiple interval geoms with default aesthetics
designed for use with output from point_interval().
Wrapper around geom_slabinterval().
geom_pointinterval(
mapping = NULL,
data = NULL,
stat = "identity",
position = "identity",
...,
side = "both",
orientation = "vertical",
show_slab = FALSE,
show.legend = c(size = FALSE)
)geom_pointintervalh(
mapping = NULL,
data = NULL,
stat = "identity",
position = "identity",
...,
side = "both",
orientation = "horizontal",
show_slab = FALSE,
show.legend = c(size = FALSE)
)
The data to be displayed in this layer. There are three options:
If NULL, the default, the data is inherited from the plot
data as specified in the call to ggplot().
A data.frame, or other object, will override the plot
data. All objects will be fortified to produce a data frame. See
fortify() for which variables will be created.
A function will be called with a single argument,
the plot data. The return value must be a data.frame, and
will be used as the layer data. A function can be created
from a formula (e.g. ~ head(.x, 10)).
The statistical transformation to use on the data for this layer, as a string.
The position adjustment to use for overlapping points on this layer. Setting this equal to
"dodge" or "dodgev" (if the ggstance package is loaded) can be useful if you have
overlapping intervals.
Arguments passed on to geom_slabinterval
scaleWhat proportion of the region allocated to this geom to use to draw the slab. If scale = 1,
slabs that use the maximum range will just touch each other. Default is 0.9 to leave some space.
justificationJustification of the interval relative to the slab, where 0 indicates bottom/left
justification and 1 indicates top/right justification (depending on orientation). If justification
is NULL (the default), then it is set automatically based on the value of side: when side is
"top"/"right" justification is set to 0, when side is "bottom"/"left"
justification is set to 1, and when side is "both" justification is set to
0.5.
normalizeHow to normalize heights of functions input to the thickness aesthetic. If "all"
(the default), normalize so that the maximum height across all data is 1; if "panels", normalize within
panels so that the maximum height in each panel is 1; if "xy", normalize within
the x/y axis opposite the orientation of this geom so that the maximum height at each value of the
opposite axis is 1; if "groups", normalize within values of the opposite axis and within
groups so that the maximum height in each group is 1; if "none", values are taken as is with no
normalization (this should probably only be used with functions whose values are in [0,1], such as CDFs).
interval_size_domainThe minimum and maximum of the values of the size aesthetic that will be translated into actual
sizes for intervals drawn according to interval_size_range (see the documentation for that argument.)
interval_size_rangeThis geom scales the raw size aesthetic values when drawing interval and point sizes, as
they tend to be too thick when using the default settings of scale_size_continuous(), which give sizes
with a range of c(1, 6). The interval_size_domain value indicates the input domain of raw size values
(typically this should be equal to the value of the range argument of the scale_size_continuous()
function), and interval_size_range indicates the desired output range of the size values (the min and max of
the actual sizes used to draw intervals).
fatten_pointA multiplicative factor used to adjust the size of the point relative to the size of the
thickest interval line. If you wish to specify point sizes directly, you can also use the point_size
aesthetic and scale_point_size_continuous() or scale_point_size_discrete(); sizes
specified with that aesthetic will not be adjusted using fatten_point.
show_pointShould the point portion of the geom be drawn? Default TRUE.
show_intervalShould the interval portion of the geom be drawn? Default TRUE.
na.rmIf FALSE, the default, missing values are removed with a warning. If TRUE, missing
values are silently removed.
inherit.aesIf FALSE, overrides the default aesthetics,
rather than combining with them. This is most useful for helper functions
that define both data and aesthetics and shouldn't inherit behaviour from
the default plot specification, e.g. borders().
Which side to draw the slab on. "topright", "top", and "right" are synonyms
which cause the slab to be drawn on the top or the right depending on if orientation is "horizontal"
or "vertical". "bottomleft", "bottom", and "left" are synonyms which cause the slab
to be drawn on the bottom of the left depending on if orientation is "horizontal" or
"vertical". "both" draws the slab mirrored on both sides (as in a violin plot).
Whether this geom is drawn horizontally ("horizontal") or
vertically ("vertical"). When horizontal (resp. vertical), the geom uses the y (resp. x)
aesthetic to identify different groups, then for each group uses the x (resp. y) aesthetic and the
thickness aesthetic to draw a function as an slab, and draws points and intervals horizontally
(resp. vertically) using the xmin, x, and xmax (resp. ymin, y, and ymax)
aesthetics.
Should the slab portion of the geom be drawn? Default TRUE.
Should this layer be included in the legends? Default is c(size = FALSE), unlike most geoms,
to match its common use cases. FALSE hides all legends, TRUE shows all legends, and NA shows only
those that are mapped (the default for most geoms).
These geoms support the following aesthetics:
datatype
alpha
colour
linetype
fill
shape
stroke
point_colour
point_fill
point_alpha
point_size
size
interval_colour
interval_alpha
interval_size
interval_linetype
slab_size
slab_colour
slab_fill
slab_alpha
slab_linetype
y
ymin
ymax
x
xmin
xmax
width
height
thickness
group
See examples of some of these aesthetics in action in vignette("slabinterval").
Learn more about the sub-geom aesthetics (like interval_color) in the scales documentation.
Learn more about basic ggplot aesthetics in vignette("ggplot2-specs").
These geoms are wrappers around geom_slabinterval() with defaults designed to produce
points+interval plots. These geoms set some default aesthetics equal
to the .lower, .upper, and .width columns generated by the point_interval family
of functions, making them often more convenient than vanilla geom_pointrange() when used with
functions like median_qi(), mean_qi(), mode_hdi(), etc.
Specifically, geom_pointinterval acts as if its default aesthetics are
aes(ymin = .lower, ymax = .upper, size = -.width). geom_pointintervalh acts as if its default
aesthetics are aes(xmin = .lower, xmax = .upper, size = -.width).
See geom_slabinterval() for the geom that these geoms wrap. All parameters of that geom are
available to these geoms.
See stat_pointinterval() / stat_pointintervalh() for the stat versions, intended
for use on samples from a distribution.
See geom_interval() / geom_intervalh() for a similar stat intended for intervals without
point summaries.
See stat_sample_slabinterval() for a variety of other
stats that combine intervals with densities and CDFs.
See geom_slabinterval() for the geom that these geoms wrap. All parameters of that geom are
available to these geoms.
# NOT RUN {
library(magrittr)
library(ggplot2)
data(RankCorr, package = "tidybayes")
RankCorr %>%
spread_draws(u_tau[i]) %>%
median_qi(.width = c(.8, .95)) %>%
ggplot(aes(y = i, x = u_tau)) +
geom_pointintervalh()
RankCorr %>%
spread_draws(u_tau[i]) %>%
median_qi(.width = c(.8, .95)) %>%
ggplot(aes(x = i, y = u_tau)) +
geom_pointinterval()
# }
Run the code above in your browser using DataLab