正如你在下面看到的,在我使用ggplots製作的地圖上有一個奇怪的顯示問題。任何投影似乎都會出現同樣的問題。ggplot2可視化地圖/顯示錯誤?
下面是代碼: 只有包maps
和ggplot2
需要
mapWorld <- borders("world", colour="gray50", fill="black")
ggplot() + mapWorld +
coord_map("mercator") +
ylim(-90,90)
正如你在下面看到的,在我使用ggplots製作的地圖上有一個奇怪的顯示問題。任何投影似乎都會出現同樣的問題。ggplot2可視化地圖/顯示錯誤?
下面是代碼: 只有包maps
和ggplot2
需要
mapWorld <- borders("world", colour="gray50", fill="black")
ggplot() + mapWorld +
coord_map("mercator") +
ylim(-90,90)
顯然,問題是由穿越0座標的多邊形,在這種世界融合的地方造成的。 R不知道如何關閉這些多邊形並將它們投影到世界各地。
此方法重新創建多邊形並防止它們穿過0座標(xlim和ylim)。它適用於任何類型的投影。
require(ggplot2)
require(PBSmapping)
require(data.table)
mapWorld <- map_data("world")
setnames(mapWorld, c("X","Y","PID","POS","region","subregion"))
worldmap = clipPolys(mapWorld, xlim=xlim,ylim=ylim, keepExtra=TRUE)
ggplot() + geom_polygon(data = mapWorld, aes(X,Y,group=PID))
這會引發以下錯誤:'.clip錯誤(多邊形,xlim,ylim,isPolygons = TRUE,keepExtra): (list)對象不能被強制鍵入'double'' –
爲什麼你需要使用?
ggplot() + mapWorld +
coord_map("mercator") +
ylim(-90,90)
如果u只使用
ggplot() + mapWorld
它完美
看起來像數據中的問題。也許在排序中,也許不是。當我運行'summary(mapWorld $ data)'看起來像經度編碼從-179到190 ......我期望-180到180 – Gregor
我沒有想到這一點。我會嘗試與其他數據。謝謝 ! – ePoQ
我可以複製你的問題,但'?border'底部的例子對我來說工作得很好。我99%肯定這是一個數據問題,而不是一個ggplot問題。 – Gregor