ggplot在奇怪的情况下抛出一个错误

时间:2013-07-13 16:06:27

标签: r ggplot2

我正在尝试运行以下代码:

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不知道如何处理class uneval的数据

对象cuernavaca.map是强化的SpatialDataFrame

奇怪的是,当我执行knit2html或按下按钮knit HTML时,这只发生在一台机器上(Ubuntu 13.04,RStudio 0.97.551,R 3.0.1),如果我在控制台中执行代码行(在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.dfdata.frame的纬度和经度,所以没什么大不了的,但size参数不在aes之内且工作正常(我是没有得到错误的&#34;不知道如何处理数字...等等等等等等#34>

可能是内存问题吗?

1 个答案:

答案 0 :(得分:0)

正如编辑中所说,答案是使用命名参数:

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)) + 

有一些悬而未决的问题,但我在ggplot map with points: size, colour, legend, aesthetics problems

中发布了一个新问题