View source: R/ggforce_bezier.R
geom_bezier | R Documentation |
This set of functionality is copied from ggforce package due to dependency issues on Bioconductor and is used internally (not exported) only. This set of geoms makes it possible to connect points creating either quadratic or cubic beziers. bezier works by calculating points along the bezier and connecting these to draw the curve.
stat_bezier(
mapping = NULL,
data = NULL,
geom = "path",
position = "identity",
na.rm = FALSE,
show.legend = NA,
n = 100,
inherit.aes = TRUE,
...
)
geom_bezier(
mapping = NULL,
data = NULL,
stat = "bezier",
position = "identity",
arrow = NULL,
lineend = "butt",
na.rm = FALSE,
show.legend = NA,
inherit.aes = TRUE,
n = 100,
...
)
mapping |
Set of aesthetic mappings created by |
data |
The data to be displayed in this layer. There are three options: If A A |
geom |
The geometric object to use to display the data, either as a
|
position |
Position adjustment, either as a string naming the adjustment
(e.g. |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
n |
The number of points to create for each segment |
inherit.aes |
If |
... |
Other arguments passed on to |
stat |
The statistical transformation to use on the data for this
layer, either as a |
arrow |
Arrow specification, as created by |
lineend |
Line end style (round, butt, square). |
Input data is understood as a sequence of data points the first being the start point, then followed by one or two control points and then the end point. More than 4 and less than 3 points per group will throw an error.
geom_link, geom_link2 and geom_lin0 understand the following aesthetics (required aesthetics are in bold):
- **x** - **y** - color - linewidth - linetype - alpha - lineend
The interpolated point coordinates
The progression along the interpolation mapped between 0 and 1
Thomas Lin Pedersen
beziers <- data.frame(
x = c(1, 2, 3, 4, 4, 6, 6),
y = c(0, 2, 0, 0, 2, 2, 0),
type = rep(c('cubic', 'quadratic'), c(3, 4)),
point = c('end', 'control', 'end', 'end', 'control', 'control', 'end')
)
help_lines <- data.frame(
x = c(1, 3, 4, 6),
xend = c(2, 2, 4, 6),
y = 0,
yend = 2
)
ggplot2::ggplot() + ggplot2::geom_segment(
ggplot2::aes(x = x, xend = xend, y = y, yend = yend),
data = help_lines,
arrow = ggplot2::arrow(length = ggplot2::unit(c(0, 0, 0.5, 0.5), 'cm')),
colour = 'grey') +
amplican:::geom_bezier(ggplot2::aes(x= x, y = y, group = type, linetype = type),
data = beziers) +
ggplot2::geom_point(ggplot2::aes(x = x, y = y, colour = point), data = beziers)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.