2013-07-13 49 views
0

我試圖運行此下面的代碼:ggplot怪異的情況下拋出一個錯誤

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

,但我得到這個錯誤:

Error: ggplot2 doesn't know how to deal with data of class uneval

對象cuernavaca.map是強化SpatialDataFrame

奇怪的是,當我執行knit2html或I按下按鈕knit HTML,如果我在執行的代碼行這僅在一個機器發生(Ubuntu的13.04,RStudio 0.97.551,R 3.0.1)控制檯(裏面RStudio)一切正常(我的意思是,情節完成),如果我在其他.Rmd file它剪切和粘貼代碼,它的工作原理和如果我在另一個Ubuntu盒子(相同規格如上)或MacOS X執行它, !

任何想法?

UPDATE:

正如寫在評論,這個問題似乎是未命名參數的順序,所以我的代碼改成這樣:

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和我設置colourNA,我做了,不是爲了美觀的原因,而是因爲那個參數不工作:多邊形的線寬變巨大的,顏色不理,有時會淡紅色,在別人就這樣消失......

作爲一個有趣的事情,在這之下的地塊,現在工作了,但是你知道嗎?代碼如下:

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,並在工作(我沒有得到的「一個錯誤不知道如何處理數字......等等等等「)

可能是內存問題?

+0

我重新安裝在另一臺計算機與Ubuntu 13.04 ,一切都很好,直到我安裝了RStudio。也許這個問題與Ubuntu 13.04中你必須強制安裝'libjpeg62'來安裝Rstudio有關,你怎麼看? – nanounanue

+0

我認爲我發現了一些光,它具有與在函數的參數爲​​了做到:如果我改變到這個代碼(即指定'映射=')'geom_polygon(大小= 0,1, 映射= AES (填寫= pobtot.bin))'中,eror消失了,但現在我得到這樣一個:'錯誤:GGPLOT2不知道如何處理類numeric'的數據,所以,還是無解:( – nanounanue

+0

最後錯誤與'aes'外的'size'參數有關,但請參閱上面的編輯... – nanounanue

回答

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

相關問題