У меня есть несколько точек в R, которые перекрываются -> моя идея состоит в том, чтобы создать новый столбец координат, где я распределяю их по кругу.
Я не хочу дрожать; это выглядит некрасиво и вводит в заблуждение -> это заставляет зрителя думать, что данные на самом деле такие, а не просто так представлены для наглядности.
Я думаю, что разворот в виде круга, подсолнуха или звезды выглядит красиво, поэтому я хочу сделать это. То, что у меня есть, работает не очень хорошо, я думаю, из-за географических проекций:
Пример координат
(ВХОД):
Latitude Longitude
51.52328 -0.1570965
51.52328 -0.1570965
51.52328 -0.1570965
51.52328 -0.1570965
51.52328 -0.1570965
ВЫХОД:
new_lat new_lng
51.50815 -0.1545583
51.53691 -0.1620067
51.51205 -0.1501359
51.53138 -0.1656516
51.51884 -0.1475074
Мой код на данный момент:
#http://geepeeex.com/LongitudesAndLatitudes.htm
#UK (122/78)
radius_size = 0.001
lat_radius_size = radius_size*(122/78)
many_stations$new_lat <- many_stations$Latitude
many_stations$new_lng <- many_stations$Longitude
for (i in unique(many_stations$Station)) {
# Get group-length = N
group_length = length(which(many_stations$Station == i))
#Cos/Sin take degrees not radians
circle_chunk = (360/group_length)
angle = circle_chunk
# If duplicates:
if(group_length>1) {
print(paste('group_length: ',group_length))
# Loop within the group
for (j in which(many_stations$Station == i)) {
print(paste('row: ',j))
many_stations[j,]$new_lng <- many_stations[j,]$Longitude + sin(angle)*radius_size
many_stations[j,]$new_lat <- many_stations[j,]$Latitude + cos(angle)*lat_radius_size
angle = angle + circle_chunk
}
}
}
jitter
вдоль x или y или обоих? или, если вы склоняетесь к идее круга, подумайте о своих точках как о полярных координатах с центром в {0,0}, добавьте случайный шум к радиусу и тета, преобразуйте обратно в x, y, используя полярные координаты. это кажется довольно простым для реализации - person rawr   schedule 16.10.2015dput
образец данных, использованных для построения этого графика, т. е. воспроизводимый пример - person rawr   schedule 17.10.2015