我在使用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=
。有谁知道怎么处理这个错误?
感谢。