Как мне построить круг с точками внутри него в R? - PullRequest
2 голосов
/ 12 декабря 2011

Мне нужно построить окружность с центром в (0,0) в R. Затем я хотел бы построить точки в этом круге, указанном в радиусе и градусах. Кто-нибудь может указать мне правильное направление для этой задачи?

Ответы [ 3 ]

3 голосов
/ 12 декабря 2011

В базовой графике:

r <- 3*runif(10)
degs <- 360*runif(10)

# First you want to convert the degrees to radians

theta <- 2*pi*degs/360

# Plot your points by converting to cartesian

plot(r*sin(theta),r*cos(theta),xlim=c(-max(r),max(r)),ylim=c(-max(r),max(r)))

# Add a circle around the points

polygon(max(r)*sin(seq(0,2*pi,length.out=100)),max(r)*cos(seq(0,2*pi,length.out=100)))

Обратите внимание, что хотя бы одна из точек будет на границе круга, поэтому, если вы этого не хотите, вы должны заменить max(r) характеристики начто-то вроде 1.1*max(r)

2 голосов
/ 12 декабря 2011

Чтобы сделать это с ggplot2, вам нужно использовать coord_polar, ggplot2 сделает все преобразования за вас.Пример в коде:

library(ggplot2)
# I use the builtin dataset 'cars'
# Normal points plot
ggplot(aes(x = speed, y = dist), data = cars) + geom_point() 

enter image description here

# With polar coordinates
ggplot(aes(x = speed, y = dist), data = cars) + geom_point() + 
     coord_polar(theta = "dist")

enter image description here

0 голосов
/ 12 декабря 2011

Использовать полярную систему координат. ( ссылка на вики ).

затем перевести в декартову систему координат ( ссылка )

, а затем перевести в координаты экрана (например, 0,0 - центр вашего монитора)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...