【问题标题】:I cannot add geom_point on top of an existing geom_map, "differing number of rows"?我不能在现有的 geom_map 上添加 geom_point,“行数不同”?
【发布时间】:2019-01-25 18:41:32
【问题描述】:

我正在尝试使用 ggplot2 和 geom_map 制作地图,但我在做应该很简单的事情时遇到了麻烦...在顶部添加一组坐标!

这是我的基本地图代码的第一部分,基于我已经以 mapbasis 加载的 shapefile:

p1<-ggplot(mapbasis,aes(long,lat,map_id=id,fill=id))+
  geom_map(map=mapbasis)

This works as expected:

为了测试代码,我现在创建了一个只有一些坐标的数据框:

test<-data.frame(pointid=c(1,2,3),lat=c(53, 51, 50),lon=c(-0.2, -0.1, -1.4))

然后我尝试添加点如下:

p1+geom_point(aes(x=lon,y=lat),size=10,data=test)

然后,我并没有在其上有一个包含三个点的地图,而是以错误消息结束:

Error in data.frame ... arguments imply differing number of rows: 3,0

发生了什么事?我显然有经度和纬度坐标。我也试过只绘制test 对象,它工作正常。

谁能提出什么问题?

【问题讨论】:

  • 也许 inherite.aes = false 可以解决这个问题?
  • 成功了!非常感谢。因此,也许它在原始美学和 geom_point 中给出的新美学之间感到困惑。

标签: r ggplot2 mapping gis


【解决方案1】:

@TinglTanglBob 提供的答案

使用inherit.aes=FALSE 来防止geom_map 中定义的原始美学与geom_point 中给出的新aes 之间的混淆,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 2023-04-06
    • 1970-01-01
    • 2015-01-14
    相关资源
    最近更新 更多