Моя цель состоит в том, чтобы изобразить места с разным количеством траффиков c конфликтов на пересечении дорог. Мои данные состоят из всех конфликтов, которые мы наблюдали в данный период времени на перекрестке, закодированном в файл .CSV со следующими полями «время конфликта», «TT C» (означает «Время до столкновения»), «Lat» , "Lon" и "Тип конфликта". Я подумал, что лучший способ сделать это - использовать функцию 'ggmap + stat_density2d' в R. Я использую следующий код:
df = read.csv(filename, header = TRUE)
int.map = get_map(location = c(mean.long, mean.lat), zoom = 20, maptype = "satellite")
int.map = ggmap(int.map, extent ="device", legend = "right")'''
int.map +stat_density2d(data = new_xdf, aes(x, y, fill = ..levels.., alpha = ..levels..),
geom = "polygon")
int.map + scale_fill_gradientn(guide = "colourbar", colours = rev(brewer.pal(7,"Spectral")),
name = "Conflict Density")
В результате получается очень хорошая карта Safety Heat Map , который правильно отображает горячие точки конфликта. Моя проблема в том, что в легендах он дает значения «уровней», автоматически рассчитываемые функцией «stat_density2d ()». Я попытался найти способ отображения, скажем, количества всех точек конфликта внутри каждого уровня на панели легенды, но безрезультатно.
Я нашел ссылку ниже, которая обрабатывает аналогичный вопрос, но проблема в том, что он создает новый фрейм данных (new_xdf) с гораздо большим количеством точек, чем в исходных данных. Таким образом, подсчеты, определенные в этой программе, кажутся мне бесполезными, так как я хочу, чтобы точное число точек конфликта в моих исходных данных отображалось на панели легенд.
Как найти точки внутри контуров в R?
Заранее спасибо.
Редактировать: Ссылка на образец данных файл
https://docs.google.com/spreadsheets/d/11vc3lOhzQ-tgEiAXe-MNw2v3fsAqnadweVrvBdNyNuo/edit?usp=sharing