stat_density2d
用于绘制密度图,例如,点较多的地方采用深色,点很少的地方采用浅色。你有一个常规网格Value
属性,而不是密度图。
所以你应该使用geom_tile
得到一个规则的网格地图。但是您的经纬度坐标不会形成轴对齐的网格。尝试这个:
ggplot(data = PM, mapping = aes(x = Longitude, y = Latitude, fill=Value)) + geom_tile()
你会得到一个空白图,试试这个:
ggplot(data = PM, mapping = aes(x = UTM.X, y = UTM.Y, fill=Value)) + geom_tile()
然后你就得到了你的情节。当然,它与 不在同一坐标系中ggmap
背景。
你也许可以使用基础 RcontourLines
函数获取UTM坐标中的等高线坐标,制作一个SpatialLinesDataFrame
,然后转换为经纬度并添加到ggmap
.
获得网格地图的另一种可能性是使用正方形作为形状的点。
ggmap(POLA.map) + geom_point(data = PM, mapping = aes(Longitude, Latitude, colour=Value), size=4, alpha=0.5, shape=15) + scale_colour_gradient(low = 'green', high = 'red')
有一些网格单元重叠的人工制品,看起来有点像单元轮廓,并且图例显示没有不透明度,因此看起来比单元更饱和。您必须正确设置大小参数,因为它取决于图形设备的大小。
如果所有这些都失败,请将数据转换为栅格包栅格对象,将其另存为 GeoTIFF,然后将其加载到 QGIS 中,QGIS 可以动态地将 UTM 网格重新投影到经纬度上。
QGIS 也有一些很好的混合模式,所以你可以很容易地做到这一点:
请注意,这不是透明度,这是乘法混合。透明度会导致深色被冲掉,而乘法混合会让黑色显示出来,因此标签和底图细节仍然可见。
另外,请注意光栅如何不与轴对齐(在底部尤其明显)。