如何在ggplot2中绘制两条线

发布于 2024-10-20 13:19:38 字数 435 浏览 3 评论 0原文

这似乎与 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 绘制另一条穿过最后四个点的线。然而我最终得到的是一条红色和蓝色交替的线段。

为什么?!

This seems to be a similar example to some of Hadley's examples in his ggplot2 book, but I can't seem to make this work.
Given:

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

I think this should plot these eight points and draw ONE line through the first four points with col = 1 and another line through the last four points with col = 2. Yet what I end up with is one line with alternating red and blue segments.

Why?!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ぃ弥猫深巷。 2024-10-27 13:19:38

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

Because col is numeric. Grouping is set to the interaction of factor variables, but since there are none the line is plotted as a single group. You can either change col to a factor,

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

or manually set the grouping

ggplot(datf, aes(off, tim, color=col, group=col)) + geom_point() + geom_line()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文