# sample data d <- data.frame(expand.grid(x=letters[1:4], g=factor(1:2)), y=rnorm(8)) # Figure 1a, 1b, and 1c. ggplot(d, aes(x=x, y=y, colour=g)) + opts(title="Figure 1a") + geom_line() + geom_point() ggplot(d, aes(x=x, y=y, colour=g, group=g)) + opts(title="Figure 1b") + geom_line() + geom_point() ggplot(d, aes(x=x, y=y, colour=g, group=1)) + opts(title="Figure 1c") + geom_line() + geom_point()
The figure 1a does not draw any lines, while the figure 1b works well.
The key concept is “group” in aes.
The rule is simple:
- geom_line() tries to connect data points that belong to same group.
- different levels of factor variable belong to different group.
So, by specifying group=g in aes, the lines appear in Figure 1b.
Figure 1c would help to understand more.
In Figure 1c, all data points belong to group=1, hence all data points are connected.
REF:
https://kohske.wordpress.com/2010/12/27/faq-geom_line-doesnt-draw-lines/