R修复大湖沿岸国家的形状

时间:2018-10-28 20:17:45

标签: r ggplot2

我指的是这篇帖子Mapping specific States and Provinces in R,以创建状态概述图。但是,与大湖接壤的州是我认为每个州都是“拥有者”的地区的边界,而不是陆地边界。

有人知道我如何绘制每个州的陆地边界吗?下面是我目前执行的代码。

编辑:我遇到的一个后续问题是试图在此地图上绘制点。我收到错误消息美学必须长度1或与数据(1113691)相同:x,y 。我在下面添加了绘制我的观点所需的代码。 修正:我认为必须在使用AES方法的两个地方都指定数据字段,因此我将经度和纬度矢量合并到一个数据帧中。错误不再发生,但仍未绘制点。谁能看到问题所在?

library(raster)
library(ggplot2)

states    <- c('Maine', 'New Hampshire', 'Vermont', 
             'New York', 'Connecticut', 'Rhode Island', 'Pennsylvania', 
             'New Jersey', 'Maryland', 'District of Columbia', 'West Virginia', 'Virginia', 
             'North Carolina', 'South Carolina', 'Georgia', 'Florida', 'Alabama', 'Mississippi',
             'Louisiana', 'Texas', 'Arkansas', 'Oklahoma', 'Kansas', 'Nebraska', 'South Dakota', 'North Dakota',
             'Minnesota', 'Iowa', 'Missouri', 'Wisconsin', 'Illinois', 'Indiana', 'Michigan', 'Ohio', 'Kentucky',
             'Tennessee', 'Massachusetts', 'Delaware')
us <- getData("GADM",country="USA",level=1)

us.states <- us[us$NAME_1 %in% states,]

#longitudes <- c(-75.5, -75.2, -76.5, -77.7, -78.5, -79.4, -81.0, -83.5, -86.0)
#latitudes <- c(23.2, 23.0, 24.0, 25.0, 25.7, 26.0, 26.3, 26.5, 27.5)
#hurricane_rows <- data.frame(longitudes, latitudes)
ggplot(data=us.states,aes(x=long,y=lat,group=group)) +
    geom_path() +
    coord_map() # +
    #geom_point(data=hurricane_rows,aes(x=longitudes, y=latitudes), color="blue", size=1)

State Border Plot

1 个答案:

答案 0 :(得分:1)

您可以尝试使用state软件包中的maps地图,该地图上有很多湖泊:

library(ggplot2)
library(maps)

states    <- c('Maine', 'New Hampshire', 'Vermont', 
             'New York', 'Connecticut', 'Rhode Island', 'Pennsylvania', 
             'New Jersey', 'Maryland', 'District of Columbia', 'West Virginia', 'Virginia', 
             'North Carolina', 'South Carolina', 'Georgia', 'Florida', 'Alabama', 'Mississippi',
             'Louisiana', 'Texas', 'Arkansas', 'Oklahoma', 'Kansas', 'Nebraska', 'South Dakota', 'North Dakota',
             'Minnesota', 'Iowa', 'Missouri', 'Wisconsin', 'Illinois', 'Indiana', 'Michigan', 'Ohio', 'Kentucky',
             'Tennessee', 'Massachusetts', 'Delaware')
us.states <- map_data("state", region=states)

#longitudes <- c(-75.5, -75.2, -76.5, -77.7, -78.5, -79.4, -81.0, -83.5, -86.0)
#latitudes <- c(23.2, 23.0, 24.0, 25.0, 25.7, 26.0, 26.3, 26.5, 27.5)
#hurricane_rows <- data.frame(longitudes, latitudes)
ggplot(data=us.states,aes(x=long,y=lat,group=group)) +
    geom_path() +
    coord_map() # +
    #geom_point(data=hurricane_rows,aes(x=longitudes, y=latitudes), color="blue", size=1)