【发布时间】:2017-07-26 07:15:54
【问题描述】:
我想使用以下数据点生成等值线图:
- 经度
- 纬度
- 价格
这是数据集 - 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`.
非常感谢有关如何解决此问题或生成此类热图的任何其他方法的任何帮助。请注意,我感兴趣的是价格的权重,而不是记录的密度。
【问题讨论】:
-
您确定要寻找等值线吗?据我所知,大多数 choropleths 使用行政区域,而不是纬度/经度。
-
我同意。我认为正确的术语应该是等高线图。
-
我能够通过平均每晚的费率来摆脱
single z at each combination错误消息(一些 x 和 y 组合有多个平均费率,我想是因为四舍五入坐标)。但是轮廓仍然没有绘制。我不知道为什么,它没有说。等高线图适用于栅格,因此您可以通过将数据框更改为栅格并替换缺失值来使其工作。我暂时放弃了……
标签: r data-visualization heatmap ggmap choropleth