我想从0到20 \ pi绘制r = theta
,这应该是一个带有十个循环的螺旋。
这样可行:
data.frame(x=seq(0,20*pi, length.out=1000)) %>% mutate(theta=x %% (2*pi), r=x) %>%
ggplot() + aes(x=theta, y=r) + coord_polar(start=-pi/2, direction=-1) +
ggtitle("r=theta") + geom_line() + ylim(0,20*pi) + xlim(0, 2*pi)
但当我将geom_point
更改为geom_line
时,它会奇怪地连接这些点:
我该如何解决这个问题?
答案 0 :(得分:3)
要做的关键是设置group
审美以阻止使用geom_path
加倍的行。在这里,我设置的方式略有不同,以避免在θ= 0
data.frame(theta = rep(seq(0, 2 * pi, length = 100), 10)) %>%
mutate(r = seq(0, 20 * pi, length = 1000), z = rep(1:10, each = 100)) %>%
ggplot() + aes(x=theta, y=r, group = z) +
coord_polar(start = -pi/2, direction = -1) +
ggtitle("r = theta") +
geom_path() +
ylim(0, 20 * pi) + xlim(0, 2 * pi)