| geom_pointpath {lemon} | R Documentation |
geom_pointpath combines geom_point and
geom_path, such that a) when jittering is used,
both lines and points stay connected, and b) provides a visual effect
by adding a small gap between the point and the end of line.
geom_pointline combines geom_point and
geom_line.
geom_pointpath(mapping = NULL, data = NULL, stat = "identity", position = "identity", na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, distance = unit(3, "pt"), lineend = "butt", linejoin = "round", linemitre = 1, linesize = 0.5, linecolour = waiver(), linecolor = waiver(), arrow = NULL, ...) geom_pointline(mapping = NULL, data = NULL, stat = "identity", position = "identity", na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, distance = unit(3, "pt"), lineend = "butt", linejoin = "round", linemitre = 1, linesize = 0.5, linecolour = waiver(), linecolor = waiver(), arrow = NULL, ...)
mapping |
|
data |
The data to be displayed in this layer. |
stat |
The statistical transformation to use on the data for this layer, as a string. |
position |
Position adjustment, either as a string, or the result of a
call to a position adjustment function
(e.g. |
na.rm |
If |
show.legend |
Logical. Should this layer be included in the legends?
|
inherit.aes |
If |
distance |
Gap size between point and end of lines;
use |
lineend |
Line end style (round, butt, square). |
linejoin |
Line join style (round, mintre, bevel). |
linemitre |
Line mitre limit (number greater than 1). |
linesize |
Width of of line. |
linecolour, linecolor |
When not |
arrow |
Arrow specification, as created by |
... |
other arguments passed on to |
geom_pointpath connects the observations in the same order in which
they appear in the data.
geom_pointline connects them in order of the variable on the x-axis.
Both geom_pointpath and geom_pointline will only
connect observations within the same group! However,
if linecolour is not waiver(), connections
will be made between groups, but possible in an incorrect order.
geom_pointline and geom_pointpath understands the following
aesthetics (required aesthetics are in bold):
x
y
alpha
colour – sets colour of point. Only affects line if linecolour=waiver().
stroke
shape
stroke
group
linetype
size – only affects point size. Width of line is set with
linesize and cannot be linked to an aesthetic.
# geom_point examples
library(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point() + geom_line()
p + geom_pointline()
p + geom_pointline(linecolour='brown')
# Add aesthetic mappings
p + geom_pointline(aes(colour = factor(cyl)))
# Using linecolour preserved groups.
p + geom_pointline(aes(colour = factor(cyl)), linecolour='brown')
## If you want to combine the pretty lines of pointline that do *not* respect
## grouping (or order), combine several layers with geom_point on top:
p + geom_pointline() + geom_point(aes(colour=factor(cyl)))
p + geom_point(aes(shape = factor(cyl)))
p + geom_pointline(aes(shape = factor(cyl)))
p + geom_point(aes(size = qsec))
p + geom_pointline(aes(size=qsec))
# Change scales
p + geom_pointline(aes(colour = cyl)) + scale_colour_gradient(low = "blue")
p + geom_pointline(aes(colour = cyl), linecolour='black') + scale_colour_gradient(low = "blue")
p + geom_pointline(aes(shape = factor(cyl))) + scale_shape(solid = FALSE)
# For shapes that have a border (like 21), you can colour the inside and
# outside separately. Use the stroke aesthetic to modify the width of the
# border
ggplot(mtcars, aes(wt, mpg)) +
geom_pointline(shape = 21, colour = "black", fill = "white",
size = 5, stroke = 5, distance = unit(10, 'pt'))
# geom_line() examples, updated to geom_pointline
# geom_line() is suitable for time series
ggplot(economics, aes(date, unemploy)) + geom_pointline()
ggplot(economics_long, aes(date, value01, colour = variable)) +
geom_pointline()
# geom_step() is useful when you want to highlight exactly when
# the y value chanes
recent <- economics[economics$date > as.Date("2013-01-01"), ]
ggplot(recent, aes(date, unemploy)) + geom_pointline()
ggplot(recent, aes(date, unemploy)) + geom_step()
# geom_pointstep is not implemented; no idea of what to expect.
# geom_path lets you explore how two variables are related over time,
# e.g. unemployment and personal savings rate
m <- ggplot(economics, aes(unemploy/pop, psavert))
m + geom_pointpath()
m + geom_pointpath(aes(colour = as.numeric(date)))
# NAs break the line. Use na.rm = T to suppress the warning message
df <- data.frame(
x = 1:5,
y1 = c(1, 2, 3, 4, NA),
y2 = c(NA, 2, 3, 4, 5),
y3 = c(1, 2, NA, 4, 5)
)
ggplot(df, aes(x, y1)) + geom_point() + geom_line()
ggplot(df, aes(x, y1)) + geom_pointline()
ggplot(df, aes(x, y3)) + geom_point() + geom_line()
#geom_pointline does not break where NA's are missing.
ggplot(df, aes(x, y3)) + geom_pointline()
# Setting line type vs colour/size
# Line type needs to be applied to a line as a whole, so it can
# not be used with colour or size that vary across a line
x <- seq(0.01, .99, length.out = 100)
df <- data.frame(
x = rep(x, 2),
y = c(qlogis(x), 2 * qlogis(x)),
group = rep(c("a","b"),
each = 100)
)
p <- ggplot(df, aes(x=x, y=y, group=group))
# These work
p + geom_pointline(linetype=2)
p + geom_pointline(aes(colour = group), linetype = 2)
p + geom_line(aes(colour = x))
p + geom_pointline(aes(colour = x))