ggmap(mapgilbert) +
stat_density2d(data = df, aes(x = lon, y = lat, fill = ..level..,
alpha = ..level..), size = 0.01,
bins = 16, geom = "polygon") +
scale_fill_gradient(low = "green", high = "red") +
scale_alpha(range = c(0, 0.3), guide = FALSE)
400万ポイントは計算コストが高すぎると思います。データのサブセットまたはサンプルを使用する必要があるかもしれません。