如何在ggplot2中绘制两条线

时间:2011-03-05 01:52:35

标签: 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

我认为这应该绘制这八个点,并在col = 1的前四个点绘制一条线,在col = 2的情况下在最后四个点绘制另一条线。但是我最终得到的是一条红色交替的线和蓝色部分。

为什么?!

1 个答案:

答案 0 :(得分:6)

因为col是数字。分组设置为因子变量的相互作用,但由于没有线条被绘制为单个组。您可以将col更改为系数

ggplot(datf, aes(off, tim, color=factor(col))) + geom_point() + geom_line()

或手动设置分组

ggplot(datf, aes(off, tim, color=col, group=col)) + geom_point() + geom_line()