Для целей воспроизводства, рассмотрим следующие данные:ggplot2/ГИС Заговор внутри полигона области
library(rgdal)
library(ggplot2)
library(rgeos)
download.file("http://spatialanalysis.co.uk/wp-content/uploads/2010/09/London_Sport.zip",
destfile = "London_Sport.zip")
unzip("London_Sport.zip")
projection="+proj=merc"
london_shape = readOGR("./", layer="london_sport")
# Create random points
set.seed(1)
points = data.frame(long=rnorm(10000, mean=-0.1, sd=0.1), lat=rnorm(10000, mean=51.5, sd=0.1))
points = SpatialPoints(points, proj4string=CRS("+proj=latlon"))
# Transform data to our projection
london = spTransform(london_shape, CRS(projection))
points = spTransform(points, CRS(projection))
# Keeps only points inside London
intersection = gIntersects(points, london, byid = T)
outside = apply(intersection == FALSE, MARGIN = 2, all)
points = points[which(!outside), ]
# Blank theme
new_theme_empty <- theme_bw()
new_theme_empty$line <- element_blank()
new_theme_empty$rect <- element_blank()
new_theme_empty$strip.text <- element_blank()
new_theme_empty$axis.text <- element_blank()
new_theme_empty$plot.title <- element_blank()
new_theme_empty$axis.title <- element_blank()
new_theme_empty$plot.margin <- structure(c(0, 0, -1, -1), unit = "lines", valid.unit = 3L, class = "unit")
# Prepare data to ggplot
london = fortify(london)
points = as.data.frame(points)
Я хочу построить карту плотности точек. Я могу сделать это с помощью stat_bin2d
:
ggplot() +
geom_polygon(data=london, aes(x=long,y=lat,group=group), fill="black") +
stat_bin2d(data=points, aes(x=long,y=lat), bins=40) +
geom_path(data=london, aes(x=long,y=lat,group=id), colour='white') +
coord_equal() +
new_theme_empty
Но что приводит в некоторых частях квадратов плотности будет быть построены за пределами Лондона:
Как я могу построить только карту плотности в Лондоне?
Если все вещи вы хотите построить уже внутри многоугольника, вы можете просто установить * цвет * линий многоугольника на белый и сюжет как есть. Если это не так, см. Функцию 'gDifference' в пакете [rgeos] (http://cran.r-project.org/web/packages/rgeos/index.html). Как всегда, если вы предоставляете небольшой воспроизводимый пример того, где вы находитесь, это помогает другим. –
Просто поместите небольшой воспроизводимый пример :) –
Эта ссылка может быть полезна: http://spatial.ly/2013/12/introduction-spatial-data-ggplot2/ – tonytonov