2011-03-05 259 views
5

这似乎与哈利在ggplot2书中的一些例子类似,但我似乎无法完成这项工作。 考虑:如何在ggplot2中绘制两条线

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,另一条线= 2,但是,我结束了是交替红色和蓝色线段的一条线。

为什么?

回答

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() 
+0

由于土改,这样做的伎俩,并解释了一些事情我没有从哈德利的这本书里。 – Plsvn 2011-03-05 12:54:24