如何实现ggplot图层与ggmap地图的叠加而非并排显示
ggmap叠加ggplot图层错误解决方案
核心错误原因
ggmap()生成的结果本身就是标准ggplot对象,无需额外新增ggplot()初始化的绘图实例。你原有代码中两个ggplot对象相加,加载patchwork库时会被识别为多图并排拼接逻辑,不加载patchwork时则会触发类型不匹配报错。
正确实现代码
写法1:在geom图层中单独指定数据集
适合只需要叠加少量图层、不同图层用不同数据集的场景:
library(ggmap) library(ggplot2) ggmap(seoul) + geom_point(data = install_time_df, aes(x = long, y = lat, size = capa_sum), color = "black", alpha = 0.55)
写法2:统一替换ggmap对象的默认数据集
适合后续多个图层都用install_time_df数据集的场景,可以避免每个geom都重复写数据集参数:
library(ggmap) library(ggplot2) ggmap(seoul) %+% install_time_df + geom_point(aes(x = long, y = lat, size = capa_sum), color = "black", alpha = 0.55)
注意事项
请确保install_time_df存储的经纬度坐标系和ggmap获取的首尔地图坐标系一致,默认ggmap返回的是WGS84坐标系,点数据使用同一坐标系即可避免位置偏移。
内容的提问来源于stack exchange,提问作者user9532692
相关产品推荐
相关产品推荐

