【问题标题】:How to plot two lines in ggplot2如何在ggplot2中绘制两条线
【发布时间】:2011-03-05 01:52:34
【问题描述】:

这似乎与 Hadley 在他的 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 的前四个点上画一条线,在 col = 2 的最后四个点上画另一条线。但我最终得到的是一条交替的红色和蓝色段。

为什么?!

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    因为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()
    

    【讨论】:

    • 感谢 Ista,这可以解决问题并解释了一些我没有从 Hadley 的书中学到的东西。
    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 2020-02-11
    • 2019-09-05
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多