geom_segment
draws a straight line between points (x, y) and
(xend, yend). geom_curve
draws a curved line. See the underlying
drawing function curveGrob
for the parameters that
control the curve.
1 2 3 4 5 6 7 8  geom_segment(mapping = NULL, data = NULL, stat = "identity",
position = "identity", ..., arrow = NULL, lineend = "butt",
na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
geom_curve(mapping = NULL, data = NULL, stat = "identity",
position = "identity", ..., curvature = 0.5, angle = 90, ncp = 5,
arrow = NULL, lineend = "butt", na.rm = FALSE, show.legend = NA,
inherit.aes = TRUE)

mapping 
Set of aesthetic mappings created by 
data 
The data to be displayed in this layer. There are three options: If A A 
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. 
... 
other arguments passed on to 
arrow 
specification for arrow heads, as created by arrow(). 
lineend 
Line end style (round, butt, square). 
na.rm 
If 
show.legend 
logical. Should this layer be included in the legends?

inherit.aes 
If 
curvature 
A numeric value giving the amount of curvature. Negative values produce lefthand curves, positive values produce righthand curves, and zero produces a straight line. 
angle 
A numeric value between 0 and 180, giving an amount to skew the control points of the curve. Values less than 90 skew the curve towards the start point and values greater than 90 skew the curve towards the end point. 
ncp 
The number of control points used to draw the curve. More control points creates a smoother curve. 
Both geoms draw a single segment/curve per case. See geom_path
if you
need to connect points across multiple cases.
geomsegment
geom_path
and geom_line
for multi
segment lines and paths.
geom_spoke
for a segment parameterised by a location
(x, y), and an angle and radius.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28  b < ggplot(mtcars, aes(wt, mpg)) +
geom_point()
df < data.frame(x1 = 2.62, x2 = 3.57, y1 = 21.0, y2 = 15.0)
b +
geom_curve(aes(x = x1, y = y1, xend = x2, yend = y2, colour = "curve"), data = df) +
geom_segment(aes(x = x1, y = y1, xend = x2, yend = y2, colour = "segment"), data = df)
b + geom_curve(aes(x = x1, y = y1, xend = x2, yend = y2), data = df, curvature = 0.2)
b + geom_curve(aes(x = x1, y = y1, xend = x2, yend = y2), data = df, curvature = 1)
b + geom_curve(
aes(x = x1, y = y1, xend = x2, yend = y2),
data = df,
arrow = arrow(length = unit(0.03, "npc"))
)
ggplot(seals, aes(long, lat)) +
geom_segment(aes(xend = long + delta_long, yend = lat + delta_lat),
arrow = arrow(length = unit(0.1,"cm"))) +
borders("state")
# 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))
ggplot(counts, aes(x, Freq)) +
geom_segment(aes(xend = x, yend = 0), size = 10, lineend = "butt")

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.