2013-07-25 99 views
2

我使用標準投影製作了一張地圖。我猜這是「mercator」。 下面是代碼,R ggplot2結合geom_tile和coord_map(「moll」)

p=ggplot(output) 

p=p+geom_tile(aes(x=lon,y=lat,fill=dcm)) 

p=p+scale_fill_gradientn("Depth of DCM (m)",colours=rgb(rgb[1:100,1],rgb[1:100,2],rgb[1:100,3]), 
limits=c(15,200),labels=c(25,50,75,100,125,150,175,200),breaks=c(25,50,75,100,125,150,175,200)) 

p = p+guides(fill = guide_colorbar(barwidth = 0.5, barheight = 9)) 

p=p+layer(data=coastline.world,geom="polygon",mapping=aes(x=longitude,y=latitude)) 



p=p+theme(text=element_text(family="Times",size=9)) 

p=p+theme(legend.title = element_text(face = 'plain')) 

p=p+guides(colour = guide_legend(title.hjust = 0.5)) 

當我嘗試使用

p=p+coord_map("moll") 

程序開始運行,但從未停止投影更改爲 「mollweide」

你有什麼想法嗎?

感謝 亞歷克斯

的data.frame coastline.world來自輸出的

library(oce) 
data(coastlineWorld) 
coastline.world=data.frame(longitude=coastlineWorld[["longitude"]],latitude=coastlineWorld[["latitude"]]) 

第一行:

structure(list(lon = c(-180, -179.5, -179, -178.5, -178, -177.5 
), lat = c(-59.5, -59.5, -59.5, -59.5, -59.5, -59.5), dcm = c(NA, 
41.4461206739867, 45.6921865291417, 48.135154847963, 48.4013604947836, 
46.9140989480546)), .Names = c("lon", "lat", "dcm"), row.names = c(NA, 
6L), class = "data.frame") 
+1

歡迎來到Stack Overflow!如果你給了我們一個可重現的數據例子(即'output'和'coastline.world'),它會讓我們重現問題並找出錯誤。你可以通過發佈'dput(output)'和'dput(coastline.world)'的結果來給出一個可重複的例子,但是如果它們是大數據幀,你可以做'dput(head(coastline.world))'和' dput(head(output))'而不是(只要你確認問題仍然存在) –

+0

任何更新?我正在努力解決類似的問題,我剛開始認爲ggplot還沒有準備好做出這樣的情節。 –

回答

0

這可能只是數據量太大。 coastline.world有超過400K行。 我也改變了你的layer,其中有geom_polygongeom_points

所以我嘗試了一些統一的抽樣(選擇每隔100行,佔總數據的1%)。

newcw <- coastline.world[seq(1, nrow(coastline.world), by = 100),] 

現在,當我試圖

p <- p+layer(data=newcw,geom="point",mapping=aes(x=longitude,y=latitude)) 
p <- p+geom_point(data=newcw, mapping=aes(x=longitude,y=latitude)) 

然後是coord_map,呈現好。

p <- p+coord_map("moll") 

這是我得到:

enter image description here

你可能有顏色修補得到你想要的東西。

希望能幫助你前進。

+1

感謝您的幫助。 coastline.world的大小不是問題,因爲我可以使用geom_polygon和coord_map(「moll」)繪製地圖。當我嘗試用geom_tile繪製輸出時,問題就出現了。 – user2619599