首页 文章

如何在ggplot2中绘制两条线

提问于
浏览
5

这似乎是他的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 回答

  • 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()
    

相关问题