极坐标中的ggplot geom_line奇怪地连接起来

时间:2016-08-03 19:28:29

标签: r ggplot2 polar-coordinates

我想从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)

With points

但当我将geom_point更改为geom_line时,它会奇怪地连接这些点:

enter image description here

我该如何解决这个问题?

1 个答案:

答案 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)