Как создать карту с плотностью на основе значения, а не количества точек в R?

Я использую следующий набор данных:

head(trip_3)
  TIP     LON    LAT
1   0    -73.866 40.741
2   10.0 -73.906 40.707
3   1.2  -73.706 40.738
4   2.0  -73.946 40.640
5   0    -73.946 40.625
6   1.5  -73.986 40.602

Мне удалось создать следующую карту, чтобы представить точки с высокими и низкими средними значениями чаевых:введите описание изображения здесь

Я добился этого с помощью следующего кода:

nyc_map + geom_point(data=as.data.frame(trip_3), aes(x=LON, y=LAT, fill=TIP), size=3, 
shape=21, alpha=0.6, position="jitter") + scale_fill_continuous(low="white", high="#FF0033")

Теперь я хочу получить карту, представляющую области (плотность) с верхним и нижним кончиками, но не использующую точки - я хочу получить что-то вроде этого:введите описание изображения здесь

Но он рассчитывает количество баллов, а не основывается на значении TIP. Было бы здорово добиться того, что я описал ранее. Это код, который я использовал:

nyc_map + stat_density2d(aes(x=LON, y=LAT, fill = ..level..), size=3,
bins=10, data=as.data.frame(trip_3), geom="polygon")

Как заставить stat_density2d полагаться на TIP, а не на количество очков?

1 ответ

Попробуйте geom_contour. Это позволяет вам указать третью переменную как z. geom_contour будет рисовать линии в равных областях TIP, как топографическая карта.

nyc_map + geom_contour(aes(x=LON, y=LAT, z=TIP, fill=TIP), color="white")

Вы также можете использовать stat_contour, если вы хотите, чтобы он затенял между строк.

nyc_map + stat_contour(aes(fill=..level..), geom="polygon", binwidth=250, alpha=.5)

Вот пример. Белые линии нарисованы geom_contour. Затенение выполняется stat_contour.

Контур Пример изображения

Другие вопросы по тегам