将未知的多行添加到ggplot2

时间:2016-08-22 11:36:15

标签: r plot ggplot2

如何使用函数向ggplot2添加行? 类似于我在R中做的事情。

x <- 1:10  ; y <- 1:10

MakeStar <- function(point , numLine , r = 0.5){ 
  for (i in 1:numLine) {
    segments(point[1] , point[2] , point[1] + r * sin(i / (2 * pi)) , point[2] + r * cos(i / (2 * pi)) )
  }
}

plot(y ~ x)
for (j in 1:10) {
  MakeStar(c(x[j],y[j]) , j)
}

enter image description here

为了澄清,我问ggplot2中是否有一个选项可以根据某些点进行计算,然后将线条添加到与上图类似的每个点。

谢谢!

1 个答案:

答案 0 :(得分:2)

Imho,你最好的选择&#34;在&#34; ggplot2,是预先准备一个数据帧然后绘制它。例如。在静脉中的东西:

library(ggplot2)
x <- 1:10  ; y <- 1:10
df <- data.frame(x=rep(x, 1:10), y=rep(y, 1:10))
df$i <- ave(1:nrow(df), df$x, df$y, FUN = seq_along)
df$r <- 0.5
p <- ggplot(df, aes(x, y)) + 
  geom_point() 
p + geom_segment(aes(xend=x + r * sin(i / (2 * pi)), yend=y + r * cos(i / (2 * pi)) ))

enter image description here