Я хотел бы создать картограмму, используя следующие точки данных:
- Долгота
- Широта
- Цена
Вот набор данных: https://www.dropbox.com/s/0s05cl34bko7ggm/sample_data.csv?dl=0.
Я хотел бы, чтобы на карте были показаны районы, где цена выше, а где цена ниже. Скорее всего, это должно выглядеть так (пример изображения):
Вот мой код:
library(ggmap)
map <- get_map(location = "austin", zoom = 9)
data <- read.csv(file.choose(), stringsAsFactors = FALSE)
data$average_rate_per_night <- as.numeric(gsub("[\\$,]", "",
data$average_rate_per_night))
ggmap(map, extent = "device") +
stat_contour( data = data, geom="polygon",
aes( x = longitude, y = latitude, z = average_rate_per_night,
fill = ..level.. ) ) +
scale_fill_continuous( name = "Price", low = "yellow", high = "red" )
Я получаю следующее сообщение об ошибке:
2: Computation failed in `stat_contour()`:
Contour requires single `z` at each combination of `x` and `y`.
Я был бы очень признателен за любую помощь в том, как это можно исправить, или за любой другой метод создания тепловой карты такого типа. Обратите внимание, что меня интересует вес цены, а не плотность записей.
single z at each combination
, усредняя скорость за ночь (некоторые комбинации x и y имели несколько средних скоростей, я полагаю, из-за округления координат). Но контур все равно не нарисовал. Я не знаю, почему, и это не сказал. График контурных линий работает для растров, поэтому вы можете заставить его работать, изменив фрейм данных на растр и заменив отсутствующие значения. сдаюсь пока... - person Jindra Lacko   schedule 27.07.2017