如何在ggplot2中绘制两条线

Pls*_*svn 5 r ggplot2

这似乎是他的ggplot2书中Hadley的一些例子的类似例子,但我似乎无法做到这一点.鉴于:

off = c(0, 2000, 4000, 6000, 25, 3000, 6050, 9000)
tim = c( 0, -100, -200, -300 -25, -125, -225, -325)
col = c( 1, 1, 1, 1, 2, 2, 2, 2)
dataf = data.frame(off, tim, col)
p = ggplot(dataf, aes(off, tim, color=col)) + geom_point() + geom_line()
p
Run Code Online (Sandbox Code Playgroud)

我认为这应该绘制这八个点并绘制一行通过前四个点col = 1,另一行绘制最后四个点col = 2.然而我最终得到的是一条红色和蓝色交替的线.

为什么?!

Ist*_*sta 6

因为col是数字.分组设置为因子变量的相互作用,但由于没有线条被绘制为单个组.你可以改成col一个因子,

ggplot(datf, aes(off, tim, color=factor(col))) + geom_point() + geom_line()
Run Code Online (Sandbox Code Playgroud)

或手动设置分组

ggplot(datf, aes(off, tim, color=col, group=col)) + geom_point() + geom_line()
Run Code Online (Sandbox Code Playgroud)