Как изменить «чувствительность» тепловой карты с stat_density2d - PullRequest
0 голосов
/ 15 апреля 2020

Я не мог придумать лучшего слова, чем чувствительность, поэтому позвольте мне объяснить.

Я хочу создать тепловую карту, которая зависит от количества точек на карте. Чем больше точек в области, тем выше значение на тепловой карте. Вот код, который я пытался сделать:

smaort_filter_koordinat = structure(list(x_koordinat = c(19.3756286555615, 17.369008653288, 
18.593656246169, 13.7913336083517, 15.8725639320889, 16.5410420769161, 
18.1687048712039, 14.1637823221516, 17.6584830962626, 17.8003635052903, 
16.1647491651192, 15.9807421329166, 17.0174729474138, 18.5218530309867, 
17.0748929177929, 11.9751794876198, 23.3116909697918, 15.7516298995822, 
13.636166122912, 17.1017704217252, 18.5697655656678, 12.22892568682, 
16.6000249674483, 16.9709577818589, 16.9054164817599, 11.6639063541071, 
17.1726138259207, 13.2340221335513, 17.7095219050127, 17.5899464233342
), y_koordinat = c(64.452771525729, 64.1706010102756, 64.9845926266834, 
58.2556831527109, 57.7689457460594, 63.3980244288925, 57.3160153940058, 
57.2570161988668, 59.9308113349992, 59.6559783895171, 57.3418405381373, 
56.2515818463, 63.1405823337293, 64.5818553830462, 61.3412566371252, 
57.4002653782855, 67.2348124714105, 56.1814586278878, 57.1527806918623, 
63.3298437117851, 59.5998874738785, 58.1594696359364, 59.9700671132779, 
61.2700016742518, 65.6522846708191, 58.1297995996247, 65.0791965152265, 
55.5055075295833, 59.8808296316895, 60.1442861673079)), row.names = c(NA, 
-30L), class = c("tbl_df", "tbl", "data.frame"))

library(rnaturalearth)
library(rgdal)

theme_set(theme_void())
spdf_sweden <- ne_countries(country = 'sweden', scale = "large", returnclass = "sf")

ggplot(data = spdf_sweden) +
  geom_sf() +
  stat_density2d(data = smaort_filter_koordinat,
                 aes( x = x_koordinat, y = y_koordinat, fill=..level.., alpha=..level..),
                 geom="polygon", show.legend = FALSE) +
  scale_fill_gradientn(colours=rev(brewer.pal(7, "Spectral"))) +
  geom_point(data = smaort_filter_koordinat, aes( x = x_koordinat, y = y_koordinat))

Это график, который я получаю

Heatmap of points

Как вы можете видеть там это длинный шарик, покрывающий то, что, я думаю, имело бы больше смысла и выглядело бы лучше, если бы этот длинный шарик был разделен на два небольших шарика. Есть идеи как это исправить?

...