geom_segment(mapping = NULL, data = NULL,
stat = "identity", position = "identity", arrow = NULL,
...)
aes
or aes_string
. Only
needs to be set at the layer level if you are overriding
the plot defaults.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) }
# 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")))
geom_path
and geom_line
for
multi- segment lines and paths.