geom_segment(mapping = NULL, data = NULL, stat = "identity", position = "identity", arrow = NULL, lineend = "butt", na.rm = FALSE, ...)
aes or aes_string. Only
needs to be set at the layer level if you are overriding
the plot defaults.FALSE (the default), removes
missing values with a warning. If TRUE silently
removes missing values.layer. This can include aesthetics whose
values you want to set, not map. See layer
for more details.Single line segments.
geom_segment understands the following aesthetics (required aesthetics are in bold):
x
xend
y
yend
alpha
colour
linetype
size
library(grid) # needed for arrow function p <- ggplot(seals, aes(x = long, y = lat)) (p <- p + geom_segment(aes(xend = long + delta_long, yend = lat + delta_lat), arrow = arrow(length = unit(0.1,"cm"))))
if (require("maps")) { xlim <- range(seals$long) ylim <- range(seals$lat) usamap <- data.frame(map("world", xlim = xlim, ylim = ylim, plot = FALSE)[c("x","y")]) usamap <- rbind(usamap, NA, data.frame(map('state', xlim = xlim, ylim = ylim, plot = FALSE)[c("x","y")])) names(usamap) <- c("long", "lat") p + geom_path(data = usamap) + scale_x_continuous(limits = xlim) }Warning message: Removed 21 rows containing missing values (geom_segment).
# You can also use geom_segment to recreate plot(type = "h") : counts <- as.data.frame(table(x = rpois(100,5))) counts$x <- as.numeric(as.character(counts$x)) with(counts, plot(x, Freq, type = "h", lwd = 10))
qplot(x, Freq, data = counts, geom = "segment", yend = 0, xend = x, size = I(10))
# Adding line segments library(grid) # needed for arrow function b <- ggplot(mtcars, aes(wt, mpg)) + geom_point() b + geom_segment(aes(x = 2, y = 15, xend = 2, yend = 25))
b + geom_segment(aes(x = 2, y = 15, xend = 3, yend = 15))
b + geom_segment(aes(x = 5, y = 30, xend = 3.5, yend = 25), arrow = arrow(length = unit(0.5, "cm")))