令人困惑的geom_map错误等级

时间:2016-10-18 19:23:04

标签: r ggplot2 choropleth

我在使用geom_map时尝试制作等值区域地图时遇到geom_polygon时收到错误。

我尽可能地关注ggplot2 documentation

我有一个数据框架的位置加上一个id列(lease_number)以供稍后参考:

dfmap<- read.table(text="id      long      lat order  hole piece group lease_number
             1 -90.38103 28.78907     1 FALSE     1   1.1        00016
             1 -90.38065 28.82965     2 FALSE     1   1.1        A0016
             1 -90.33457 28.82930     3 FALSE     1   1.1        A0016
             1 -90.33497 28.78872     4 FALSE     1   1.1        A0016
             1 -90.38103 28.78907     5 FALSE     1   1.1        A0016", header=T)

带有相应id列的值的data.frame(这里只有一个值):

df <- data.frame(lease_number="A0016", var1=10)

完全遵循文档的结构:

    ggplot(df, aes(fill=var1) +
       geom_map(aes(map_id=lease_number), map=dfmap) +
       expand_limits(dfmap)

给出以下错误:

Error in unit(x, default.units) : 'x' and 'units' must have length > 0

通过合并数据,我可以生成正确的图,

ggplot() +
  geom_polygon(data=merge(dfmap, df, by='lease_number', all=T),
               aes(x=long, y=lat, group=lease_number, fill=var1))

但我想避免这种情况,因为我需要引用很多不同的东西,能够在两个带有lease_number列的data.frames之间进行引用会更好。

我看过this question但这个答案在这里不适用,因为如果删除geom_map参数,我甚至无法显示基本地图以显示fill=。有谁知道怎么处理这个错误?

感谢。

0 个答案:

没有答案