我可以使用以下代码制作美国各州的失业率图表。
library(XML)
library(ggplot2)
library(plyr)
library(maps)
unemp <-
readHTMLTable('http://www.bls.gov/web/laus/laumstrk.htm',
colClasses = c('character', 'character', 'numeric'))[[2]]
names(unemp) <- c('rank', 'region', 'rate')
unemp$region <- tolower(unemp$region)
us_state_map <- map_data('state')
map_data <- merge(unemp, us_state_map, by = 'region')
map_data <- arrange(map_data, order)
states <- data.frame(state.center, state.abb)
p1 <- ggplot(data = map_data, aes(x = long, y = lat, group = group))
p1 <- p1 + geom_polygon(aes(fill = cut_number(rate, 5)))
p1 <- p1 + geom_path(colour = 'gray', linestyle = 2)
p1 <- p1 + scale_fill_brewer('Unemployment Rate (Jan 2011)', palette = 'PuRd')
p1 <- p1 + coord_map()
p1 <- p1 + geom_text(data = states, aes(x = x, y = y, label = state.abb, group = NULL), size = 2)
p1 <- p1 + theme_bw()
p1
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS8zanlOUi5wbmcifQ==” alt =“在此处输入图像说明”>“ >>
现在我想为巴基斯坦使用类似的图表。我的几次尝试结果如下:
data(world.cities) Pakistan <- data.frame(map("world", "Pakistan", plot=FALSE)[c("x","y")]) p <- ggplot(Pakistan, aes(x=x, y=y)) + geom_path(colour = 'green', linestyle = 2) + coord_map() + theme_bw() p <- p + labs(x=" ", y=" ") p <- p + theme(panel.grid.minor=element_blank(), panel.grid.major=element_blank()) p <- p + theme(axis.ticks = element_blank(), axis.text.x = element_blank(), axis.text.y = element_blank()) p <- p + theme(panel.border = element_blank()) print(p)
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9UMUdhRS5wbmcifQ==” alt =“在此处输入图像描述”>
和
library(mapproj) Country <- "Pakistan" Get_Map_Country <- get_map( location = Country , zoom = 5 , scale = "auto" , maptype = "roadmap" , messaging = FALSE , urlonly = FALSE , filename = "ggmapTemp" , crop = TRUE , color = "color" , source = "google" , api_key ) Country1 <- ggmap( ggmap = Get_Map_Country , extent = "panel" # , base_layer , maprange = FALSE , legend = "right" , padding = 0.02 , darken = c(0, "black") ) Country1 <- Country1 + labs(x="Longitude", y="Latitude") print(Country1)
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9nU0gwaS5qcGcifQ==” alt =“在此处输入图像描述”>
Country2 <- Country1 + geom_polygon(data = Pakistan , aes(x=x, y=y) , color = 'white', alpha = .75, size = .2) print(Country2)
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS8yMHczaC5qcGcifQ==” alt =“在此处输入图像描述”>
问题
我想知道如何获取美国的巴基斯坦行政区域地图。我知道,为此,我们需要行政边界的经度和纬度。我想知道如何获得一个国家的行政边界的经度和纬度。我尝试了Global Administrative Areas,但没有成功。
我可以使用以下代码制作美国各州的失业率图表。库(XML)库(ggplot2)库(plyr)库(地图)unemp
我不知道您需要的行政区域的空间级别,但这有两种方法从Global Administrative Areas (gadm.org)读取shapefile数据和.RData格式,并将它们转换为数据框以供ggplot2使用。另外,为了复制美国地图,您需要绘制位于多边形质心的管理区域名称。
您是否尝试过http://www.diva-gis.org/gdata?这应该为您提供带有巴基斯坦州/县边界的Shapefile。
maptools包具有的功能可让您读取Shapefile并将其转换为可用于布置边界多边形的数据框。