2015-07-10 120 views
1

我有一個變量名稱爲「緯度」,「經度」,「PM10濃度」的csv文件。您可以下載數據here。我想根據它們的緯度和經度在韓國地圖上繪製PM10數據。我也想把它們作爲不同尺寸和顏色的泡泡展示出來。如何繪製地圖上的數據而不使用Google地圖(圖片)?

Following this example我已經在Google地圖上繪製了PM10數據。但現在我想要做到這一點,而不是使用Google地圖,而是通過創建空間對象或以任何其他方式。

我試圖寫一些代碼,但我已經下載了韓國的管理區域(GADM)的空間數據。但我不確定這種方法是對還是錯。

library(rgdal) 
library(ggplot2) 
library(maptools) 

map<-readOGR('D:/BACKUP/R/GSTAT/R File/shape file korea map',layer ='KOR_adm2') 
summary(kmap) 

EPSG<-make_EPSG() 
EPSG[grepl("WGS 84$", EPSG$note), ] 

kmap84<-spTransform(kmap, CRS("+init=epsg:4326")) 
kmaps<-fortify(kmap84) 

我不明白接下來應該做什麼。

+1

[見本](http://cran.r-project.org/doc/contrib/intro-spatial-rl.pdf)。我認爲這比直接回答更有用。 – shekeine

+0

對不起,但實際上我試圖通過使用這個文件來做到這一點,但我沒有取得成功。不管怎麼說,還是要謝謝你。 – Orpheus

回答

2

下面是一個例子:

library(raster) 
library(ggplot2) 
download.file("https://docs.google.com/uc?id=0ByY3OAw62EShakxJZkplOXZ0RGM&export=download", tf <- tempfile(fileext = ".csv")) 
df <- read.csv(tf, row.names = 1) 
skorea <- getData("GADM", country = "South Korea", level = 2) 
skorea <- fortify(skorea) 
ggplot() + 
    geom_map(data = skorea, map = skorea, aes(x = long, y = lat, map_id = id, group = group), 
      fill = NA, colour = "black") + 
    geom_point(data = df, aes(x = LON, y = LAT, size = PM10), colour = "red", alpha = .5) + 
    scale_size(range = c(1, 5)) 

enter image description here

+0

非常感謝@lukeA。我有兩個愚蠢的問題。 a)'data = skorea,map_id = id,group = group':這些代碼的功能到geom_map的功能是什麼?提及group = group真的很重要嗎? b)如何以不同的顏色顯示不同的PM10數量?例如紅色的PM10-125,藍色的PM10-100等等? 再次感謝。 – Orpheus

+0

#1:AFAIK,它是每個多邊形/每個區域的分組變量。區域('map_id')是必需的,多邊形不是。 #2:您可以將這些值切成間隔,並將顏色映射到切割/組。 'g = cut(df $ PM10,c(-Inf,100,Inf))'&'aes(color = g)'。 – lukeA