Draw horizontal diagonals
A diagonal is a bezier curve where the control points are moved
perpendicularly towards the center in either the x or y direction a fixed
amount. The versions provided here calculates horizontal diagonals meaning
that the x coordinate is moved to achieve the control point. The
geom_diagonal()
and stat_diagonal()
functions are simply helpers that
takes care of calculating the position of the control points and then
forwards the actual bezier calculations to geom_bezier()
.
stat_diagonal( mapping = NULL, data = NULL, geom = "path", position = "identity", n = 100, strength = 0.5, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, ... ) geom_diagonal( mapping = NULL, data = NULL, stat = "diagonal", position = "identity", n = 100, na.rm = FALSE, strength = 0.5, show.legend = NA, inherit.aes = TRUE, ... ) stat_diagonal2( mapping = NULL, data = NULL, geom = "path_interpolate", position = "identity", na.rm = FALSE, show.legend = NA, n = 100, strength = 0.5, inherit.aes = TRUE, ... ) geom_diagonal2( mapping = NULL, data = NULL, stat = "diagonal2", position = "identity", arrow = NULL, lineend = "butt", na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, n = 100, strength = 0.5, ... ) stat_diagonal0( mapping = NULL, data = NULL, geom = "bezier0", position = "identity", na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, strength = 0.5, ... ) geom_diagonal0( mapping = NULL, data = NULL, stat = "diagonal0", position = "identity", arrow = NULL, lineend = "butt", na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, strength = 0.5, ... )
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 display the data |
position |
Position adjustment, either as a string, or the result of a call to a position adjustment function. |
n |
The number of points to create for each segment |
strength |
The proportion to move the control point along the x-axis towards the other end of the bezier curve |
na.rm |
If |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
... |
Other arguments passed on to |
stat |
The statistical transformation to use on the data for this layer, as a string. |
arrow |
Arrow specification, as created by |
lineend |
Line end style (round, butt, square). |
geom_diagonal and geom_diagonal0 understand the following aesthetics (required aesthetics are in bold):
x
y
xend
yend
color
size
linetype
alpha
lineend
geom_diagonal2 understand the following aesthetics (required aesthetics are in bold):
x
y
group
color
size
linetype
alpha
lineend
The interpolated point coordinates
The progression along the interpolation mapped between 0 and 1
data <- data.frame( x = rep(0, 10), y = 1:10, xend = 1:10, yend = 2:11 ) ggplot(data) + geom_diagonal(aes(x, y, xend = xend, yend = yend)) # The standard version provides an index to create gradients ggplot(data) + geom_diagonal(aes(x, y, xend = xend, yend = yend, alpha = stat(index))) # The 0 version uses bezierGrob under the hood for an approximation ggplot(data) + geom_diagonal0(aes(x, y, xend = xend, yend = yend)) # The 2 version allows you to interpolate between endpoint aesthetics data2 <- data.frame( x = c(data$x, data$xend), y = c(data$y, data$yend), group = rep(1:10, 2), colour = sample(letters[1:5], 20, TRUE) ) ggplot(data2) + geom_diagonal2(aes(x, y, group = group, colour = colour)) # Use strength to control the steepness of the central region ggplot(data, aes(x, y, xend = xend, yend = yend)) + geom_diagonal(strength = 0.75, colour = 'red') + geom_diagonal(strength = 0.25, colour = 'blue')
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.