2012-06-27 19 views
15

Tôi muốn sử dụng R để tạo ra một bản đồ thế giới rất cơ bản với một tập hợp các quốc gia cụ thể chứa đầy màu đỏ để chỉ ra rằng chúng là các quốc gia đặc hữu sốt rét.Cách tạo bản đồ thế giới trong R với các quốc gia cụ thể được điền vào?

Tôi có danh sách các quốc gia này trong một khung dữ liệu nhưng tôi đang cố gắng che phủ chúng trên bản đồ thế giới.

Tôi đã thử sử dụng đối tượng wrld_simpl và cũng là phương pháp joinCountryData2Map trong gói rworldmap.

Tôi sẽ nhận xét về câu trả lời này để ngăn chặn việc thêm câu hỏi có thể dư thừa nhưng hiện tại tôi không có đủ danh tiếng, xin lỗi vì điều này.

https://stackoverflow.com/a/9102797/1470099

Tôi gặp khó khăn tìm hiểu các đối số cho lệnh plot() - Tôi tự hỏi nếu có chỉ là một cách dễ dàng để nói với R để vẽ tất cả các tên các quốc gia trong danh sách của tôi trên bản đồ wrld_simpl thay vì sử dụng grepl() vv vv

plot(wrld_simpl, 
    col = c(gray(.80), "red")[grepl("^U", [email protected]$NAME) + 1]) 
+0

@ttmaccer, tại sao không thêm đó là một câu trả lời? – A5C1D2H2I1M1N2O1R2T1

Trả lời

17

Sử dụng gói rworldmap, bạn có thể sử dụng như sau:

library(rworldmap) 

theCountries <- c("DEU", "COD", "BFA") 
# These are the ISO3 names of the countries you'd like to plot in red 

malDF <- data.frame(country = c("DEU", "COD", "BFA"), 
    malaria = c(1, 1, 1)) 
# malDF is a data.frame with the ISO3 country names plus a variable to 
# merge to the map data 

malMap <- joinCountryData2Map(malDF, joinCode = "ISO3", 
    nameJoinColumn = "country") 
# This will join your malDF data.frame to the country map data 

mapCountryData(malMap, nameColumnToPlot="malaria", catMethod = "categorical", 
    missingCountryCol = gray(.8)) 
# And this will plot it, with the trick that the color palette's first 
# color is red 
+0

cảm ơn rất nhiều, điều này thực sự đã giúp tôi ... vẫn có một vài quốc gia châu Phi nhỏ không xuất hiện trên bản đồ nhưng đó sẽ là một nhiệm vụ khác trong ngày! – phlancelot

12

Hãy thử sử dụng googleVis gói và sử dụng chức năng gvisGeoMap

ví dụ

G1 <- gvisGeoMap(Exports,locationvar='Country',numvar='Profit',options=list(dataMode='regions')) 

plot(G1) 
+1

Chà, tôi chưa bao giờ nhận ra googleVis mạnh mẽ như thế nào! Cú pháp rất đơn giản, không cần phải lo lắng về spatialPointsDataFrame, và đầu ra là đẹp! –

3
library(maptools) 
    data(wrld_simpl) 
    myCountries = [email protected]$NAME %in% c("Australia", "United Kingdom", "Germany", "United States", "Sweden", "Netherlands", "New Zealand") 
    plot(wrld_simpl, col = c(gray(.80), "red")[myCountries+1]) 

enter image description here