我想使用以下的数据点,以产生等值线图:生成通过基于值中的R ggmap空间热图
- 经度
- 纬度
- 价格
这里是数据集 - 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`.
我对于如何解决这个问题,或者其他方法来生成这种类型的热图,我真的很感激。请注意,我对价格的重量感兴趣,而不是记录的密度。
你确定你在找choropleth吗?据我所知,大多数人群使用行政区域,而不是经度/经度。 –
我同意。我认为正确的术语应该是等高线图。 – user709413
我可以通过平均每晚的费率(一些x和y组合有多个平均费率,我想是因为四舍五入关闭)而摆脱了每个组合的单个z错误消息。但轮廓仍然没有画出。我不知道为什么,也没有说。等值线图对栅格起作用,所以您可以通过将数据框更改为栅格并替换缺失值来使其工作。我现在放弃... –