你如何创建一个50州的地图(而不是只有低于-48)

Mar*_*arc 11 maps r heatmap

你如何在R中制作50个州的地图?

看起来人们创建的所有示例地图都只是较低的48

Hac*_*k-R 16

有很多方法可以做到这一点.就个人而言,我发现Google拥有最具吸引力的地图.我推荐ggmap,googleVis和/或RgoogleMaps.

例如:

require(googleVis)

G4 <- gvisGeoChart(CityPopularity, locationvar='City', colorvar='Popularity',
                   options=list(region='US', height=350, 
                                displayMode='markers',
                                colorAxis="{values:[200,400,600,800],
                                 colors:[\'red', \'pink\', \'orange',\'green']}")
) 
plot(G4)
Run Code Online (Sandbox Code Playgroud)

产生这个:

在此输入图像描述

另一种方法将为您提供比maps遵循本教程的方法更有吸引力的结果,该方法显示如何将自定义地图从Inkscape(或等效地,Adobe Illustrator)导入到R中以进行绘图.

你最终会得到这样的东西:

R和Inkscape

这里有一个方法将它与choroplethrggplot2:

library(choroplethr)
library(ggplot2)
library(devtools)
install_github('arilamstein/choroplethrZip@v1.3.0')
library(choroplethrZip)

data(df_zip_demographics)
df_zip_demographics$value = df_zip_demographics$percent_asian

zip_map = ZipChoropleth$new(df_zip_demographics)
zip_map$ggplot_polygon = geom_polygon(aes(fill = value),
                                      color = NA)
zip_map$set_zoom_zip(state_zoom = NULL,
                     county_zoom = NULL,
                     msa_zoom = NULL,
                     zip_zoom = NULL)
zip_map$title = "50 State Map for StackOverflow"
zip_map$legend = "Asians"
zip_map$set_num_colors(4)
choro = zip_map$render()
choro

data(df_pop_state)
outline = StateChoropleth$new(df_pop_state)
outline = outline$render_state_outline(tolower(state.name))

choro_with_outline = choro + outline
choro_with_outline
Run Code Online (Sandbox Code Playgroud)

这给你:

GGPLOT2


Ric*_*ven 6

此R-bloggers链接可能对您有用.

为了看一看,你可以开始使用50状态的地图

library(maps)
map("world", c("USA", "hawaii"), xlim = c(-180, -65), ylim = c(19, 72))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

信不信由你,夏威夷就在那里.由于利润空间的原因,它真的很小.


Jon*_*oll 6

恢复旧线程,因为它仍然没有接受的答案.

查看@ hrbrmstr的albersusa包:

devtools::install_github("hrbrmstr/albersusa")
library(albersusa)
plot(usa_composite(proj="laea"))
Run Code Online (Sandbox Code Playgroud)

哪个产生

在此输入图像描述

并且可以做更多

us <- usa_composite()
us_map <- fortify(us, region="name")

gg <- ggplot()
gg <- gg + geom_map(data=us_map, map=us_map,
                    aes(x=long, y=lat, map_id=id),
                    color="#2b2b2b", size=0.1, fill=NA)
gg <- gg + theme_map()

gg + 
  geom_map(data=us@data, map=us_map,
           aes(fill=pop_2014, map_id=name),
           color="white", size=0.1) +
  coord_proj(us_laea_proj) +
  scale_fill_viridis(name="2014 Populaton Estimates", labels=comma) +
  theme(legend.position="right")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述