我正在尝试运行以下代码:
p <- ggplot(data=cuernavaca.map, aes(long, lat, group=group))
p + geom_polygon(size=0.1, aes(fill=pobtot)) + coord_equal() + facet_wrap(~nombre_municipio,scales="free") + coord_equal() + scale_fill_gradient2(low="blue", high="red", midpoint=mean(cuernavaca.map$pobtot, na.rm=TRUE))+ tema.mapas + ggtitle("Cuervaca y Zona metropolitana\nPoblación Total") + labs(fill="Población total")
但我收到了这个错误:
错误:ggplot2 不知道如何处理 uneval 类的数据
该对象cuernavaca.map
是一个设防SpatialDataFrame
。
奇怪的是,这只发生在一台机器(Ubuntu 13.04、RStudio 0.97.551、R 3.0.1)上,当我执行knit2html
或点击按钮knit HTML
时,如果我在控制台(RStudio 内部)执行代码行,一切可以工作(我的意思是,情节已经完成),如果我将该代码剪切并粘贴到其他代码中.Rmd file
,并且如果我在另一个 Ubuntu 机器(与上述相同)或 MacOS X 中执行它,它可以工作!
有任何想法吗?
更新:
正如评论中所写,问题似乎是未命名参数的顺序,所以我将代码更改为:
ggplot(data = cuernavaca.map) +
geom_polygon(mapping = aes(x = long, y = lat, group = group, colour = NA, fill = pobtot)) +
coord_equal() +
facet_wrap(~nombre_municipio, scales = "free") +
scale_fill_gradient2(low = "blue", high = "red", midpoint = mean(cuernavaca.map$pobtot,
na.rm = TRUE)) +
tema.mapas +
ggtitle("Cuervaca y Zona metropolitana\nPoblación Total") +
labs(fill = "Población total")
并且知道一切正常......几乎。
如果您看到我删除了中的size
参数geom_polygon
并将其设置为colour
的代码NA
,我这样做不是出于美观的原因,而是因为该参数不起作用:多边形的线宽变得巨大,颜色被忽略,有时会变成浅红色,有时会消失...
有趣的是,这个下面的情节现在也可以工作了,但你猜怎么着?代码如下:
ggplot(legend = FALSE) +
geom_polygon(data = cuernavaca.map, size = 0.1, aes(long,
lat, group = group, colour = "grey80", fill = ind_vul)) +
scale_fill_gradient2(low = "blue", high = "red", midpoint = mean(cuernavaca.map$ind_vul, na.rm = TRUE)) +
geom_point(data = puntos.df, aes(as.numeric(long), as.numeric(lat), colour = geografico), size = 2) +
facet_wrap(~municipio, scales = "free") +
tema.mapas +
labs(fill = "Índice de vulnerabilidad")
puntos.df
是一个data.frame
经纬度,所以没什么大不了的,但不是size
参数如何超出aes
并且正在工作(我没有收到“不知道如何处理数字......等等等等”的错误)
可能是内存问题?