簡體   English   中英

使用rworldmap添加點以在世界地圖上表示城市

[英]Adding points to represent cities on a World Map using rworldmap

我想制作一個包含特定國家/地區的世界地圖,但如果可能的話,我還想指出代表這些國家/地區中特定城市的精確點。

我一直在使用rworldmap包並與其他人進行實驗,但是我很難理解如何確定特定的城市位置以及在哪里包括mapbubbles

也許我可以添加一條代表聖地亞哥的線,但是我不知道它會去哪里:

mapBubbles(dF="CEAMap", nameX = "-117.16", nameY = "32.71", nameZSize = "CEAMap",)

我一直在閱讀開發人員的PDF,老實說我真的不明白如何實現地圖氣泡以及像nameZsize這樣的東西首先應該包含的內容。

我使用本指南來學習如何突出顯示國家/地區,但就精確定位城市而言,我似乎是一個人,因為我無法真正理解開發人員的PDF。 如何在R中填寫特定國家/地區的世界地圖?

到目前為止,這是我的完整代碼:

library(rworldmap)
library(ggmap)
library(maptools)
library(maps)

theCountries <- c("USA", 
                  "CAN", "DEU", "FRA", "IND", 
                  "GBR", "NLD", "ITA", 
                  "CHN", "KOR", "JPN", 
                  "ESP", "PRT", "RUS", 
                  "NOR", "SGP", "AUS", 
                  "CHL", "MEX", "PHL", "RWA", 
                  "JOR", "HND", "PAN", "THA", "DOM", 
                  "ZAF", "TUR", "CHE", "FIN",
                  "SEN", "BOL", "OMN", "PAK", "CMR", "MUS", "BEL", "MYS", 
                  "UAE", "BRA", "MLI", "MOZ", "NAM", "EGY", "ARG", "UKR", "ZMB", "KEN",
                  "VNM", "NGA", "DNK", "IRN", "AFG")
# These are the ISO3 names of the countries you'd like to plot in red

CEAMap <- data.frame(country = c("USA", 
                                 "CAN", "DEU", "FRA", "IND", 
                                 "GBR", "NLD", "ITA", 
                                 "CHN", "KOR", "JPN", 
                                 "ESP", "PRT", "RUS", 
                                 "NOR", "SGP", "AUS", 
                                 "CHL", "MEX", "PHL", "RWA", 
                                 "JOR", "HND", "PAN", "THA", "DOM", 
                                 "ZAF", "TUR", "CHE", "FIN",
                                 "SEN", "BOL", "OMN", "PAK", "CMR", "MUS", "BEL", "MYS", 
                                 "UAE", "BRA", "MLI", "MOZ", "NAM", "EGY", "ARG", "UKR", "ZMB", "KEN",
                                 "VNM", "NGA", "DNK", "IRN", "AFG"),
                      involvement = c(1, 
                                    2, 2, 2, 2, 
                                    3, 3, 3, 
                                    4, 4, 4, 
                                    5, 5, 5, 
                                    6, 6, 6, 
                                    7, 7, 7, 7,
                                    8, 8, 8, 8, 8,
                                    9, 9, 9, 9,
                                    10, 10, 10, 10, 10, 10, 10, 10, 
                                    11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 
                                    12, 12, 12, 12, 12))

# CEAMap is a data.frame with the ISO3 country names plus a variable to
# merge to the map data

CEAcountries <- joinCountryData2Map(CEAMap, joinCode = "ISO3",
                              nameJoinColumn = "country")


# This will join your CEAMap data.frame to the country map data

mapCountryData(CEAcountries, nameColumnToPlot="country", 
               catMethod = "categorical",
               mapTitle='CEA Locations',
               missingCountryCol = gray(.8))

我想提出一些要點,以突出顯示這些國家/地區中的城市。

我想提出一些要點,以突出顯示這些國家/地區中的城市。

那么mapBubbles()是錯誤的函數。 您可以像在常規R圖中一樣添加points()

在獲取以下城市的位置數據之前:

library(maps)

data("world.cities")

plotcities <- subset(world.cities, capital == 1)

我不知道您對哪個城市感興趣,所以我只帶了首都

mapCountryData(CEAcountries, nameColumnToPlot="country", 
               catMethod = "categorical",
               mapTitle='CEA Locations',
               missingCountryCol = gray(.8), addLegend = FALSE)
points(plotcities$long, plotcities$lat, pch =  18, col = "black")

在此處輸入圖片說明

我建議盡管看一下tmap軟件包。 他們制作了更好的地圖。 ggplot2也可能是一個更好的選擇。

編輯:要使用您提供的城市,只需選擇相應的:

plotcities <- subset(world.cities, 
                     name %in% c("Cologne", "Chennai", "Denver", "Madrid", "Manila", "San Diego", "Seattle", "Shanghai")
                     & country.etc %in% c("Germany", "USA", "Spain", "China", "Philippines", "India"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM