2016-08-22 5 views
0

Как добавить строки, используя функцию ggplot2? Что-то подобным образом на то, что я хотел бы сделать в R.Добавление неизвестных нескольких строк в ggplot2

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 сделать расчет на основе некоторых точек, а затем добавить линии к каждой из точек, аналогичных приведенному выше графику.

Спасибо!

ответ

2

Imho, ваш лучший вариант сделать это «в» 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

Смежные вопросы