如何在ggplot2中绘制参数曲线

How to draw a parametric curve in ggplot2

我想在 ggplot2 中绘制参数曲线。当只绘制点时,顺序无关紧要,它可以正常工作:

library(ggplot2)
phi = seq(0, 2*pi, length.out=100)
df1 = data.frame(x=(phi+3)*cos(phi), y=(phi+3)*sin(phi))
ggplot(data=df1, aes(x, y)) + geom_point()

不幸的是,ggplot2 隐式地对点进行排序,所以当我尝试画一条线时

ggplot(data=df1, aes(x, y)) + geom_line()

我明白了

这不是我想要的。这些点的连接顺序应与它们在数据框中的顺序相同。有没有办法在 ggplot2 中做到这一点?

(我阅读了 Plot a heart in R 中的答案,但我的问题是关于 ggplot2 的,使用极坐标不是一个选项)。

尝试以下操作:

library(ggplot2)
phi = seq(0, 2*pi, length.out=100)
df1 = data.frame(x=(phi+3)*cos(phi), y=(phi+3)*sin(phi))
ggplot(data=df1, aes(x, y)) + geom_point() + geom_path()