我无法使用R中的ggmap / ggplot2在地图上绘制填充的等高线图。
我的数据是规则间隔的纬度/经度坐标,z值表示降雨量
> head( flood )
lat lon rain
1 22.51916 -105.9318 1.486188e-05
2 22.59956 -105.9318 1.735962e-05
3 22.67996 -105.9318 2.024598e-05
4 22.76037 -105.9318 2.357599e-05
5 22.84077 -105.9318 2.741153e-05
6 22.92117 -105.9318 3.182212e-05
使用ggmap获取基本地图后,我正试图勾勒出充满雨水的轮廓
map = ggmap( baseMap ) +
geom_contour( data = flood, aes( x = lon, y = lat, z = rain ) ) +
scale_fill_continuous( name = "Rainfall (inches)", low = "yellow", high = "red" )
这给了我一个错误
Error in unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0
如果我这样做
map = ggmap( baseMap ) +
geom_contour( data = flood, aes( x = lon, y = lat, z = rain, fill = ..level.. ) ) +
scale_fill_continuous( name = "Rainfall (inches)", low = "yellow", high = "red" )
我得到的这个情节没有实际填充。
我一直在努力关注this post和 this post,但我无法解决我的问题。我对ggplot / R了解不多,但到目前为止我已经能够绊倒它了。 ......等级是什么意思?
我认为this post可能是相关的,但我不能将修正工具概括为轮廓图。
答案 0 :(得分:7)
没有更具代表性的数据集是不可能测试的(你能提供链接吗?)。
然而,试试:
## not tested..
map = ggmap( baseMap ) +
stat_contour( data = flood, geom="polygon",
aes( x = lon, y = lat, z = rain, fill = ..level.. ) ) +
scale_fill_continuous( name = "Rainfall (inches)", low = "yellow", high = "red" )
问题是geom_contour不尊重fill=...
。您需要将stat_contour(...)
与geom="polygon"
(而不是“行”)一起使用。