使用R中usmap包中的plot_usmap在同一张地图上绘制州和县边界

2024-04-30

我想创建一张显示州和县边界(即不同颜色的州边界)的美国地图。我通常使用导入或使用的形状文件来执行此操作ggplot2's map_data功能。然而,我面临三个障碍。

1)我无法安装gdal and geos在我的计算环境中,以便排除使用任何形状文件或 GeoJSON 文件(我尝试映射使用加载的县级形状文件fastshp尚未成功,但我愿意接受任何可以重现下面的地图但包含州边界的解决方案。

2)我需要包括夏威夷和阿拉斯加,这样就排除了使用map_data from ggplot2.

3)我需要地图包含州和县边界,这需要使用usmap包有问题,因为它的包装函数ggplot2但没有轻松和一般的能力来定制原始 ggplot2 对象的级别。

4)此外,不能使用sf包 bc 它具有非 R 库依赖项(units包依赖于C库libudunits2).

我需要什么:一张可以投影阿拉斯加和夏威夷并使用对比色显示州和县边界的地图,我需要完成所有这一切,而无需诉诸任何依赖的软件包rgeos, rgdal,和/或units.

到目前为止我尝试过的plot_usmap来自usmap包裹:

library(dplyr)
library(stringr)
library(ggplot2)
library(usmap)
library(mapproj)
devtools::install_github("wmurphyrd/fiftystater")
library(fiftystater)

county_data<-read.csv("https://www.ers.usda.gov/webdocs/DataFiles/48747/PovertyEstimates.csv?v=2529") %>% #
  filter(Area_name != "United States") %>%
  select(FIPStxt, Stabr, Area_name, PCTPOVALL_2017) %>%
  rename(fips = FIPStxt)
crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
state_map <- map_data("state")

plot_usmap(data = county_data, values = "PCTPOVALL_2017", color = "white") + 
  geom_map(data = crimes, aes(map_id = state), map = fifty_states, color= "red") + 
  geom_path(data = state_map, aes(x =long , y=lat), color= "red")+
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  theme(legend.position = "none") +
  theme_map() #no go

plot_usmap(data = county_data, values = "PCTPOVALL_2017", color = "white") + 
  geom_map(data = crimes, aes(map_id = state), map = fifty_states, color= "red") + 
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  theme(legend.position = "none") +
  theme_map() #no go

plot_usmap(data = county_data, values = "PCTPOVALL_2017", color = "white") + 
  geom_map(data = crimes, aes(map_id = state, color= "red"), map = fifty_states) + 
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  theme(legend.position = "none") +
  theme_map() #no go

我怀疑正在发生的是一层(原来的ggplot代码)使用与其他层不同的 CRS 系统进行投影 - 生成plot_usmap。第二层会产生一个非常小的红点(参见下图中的圆圈)。不确定如何在未安装 geos/gdal 的情况下重新投影。请参阅下面的地图,其中黑色圆圈突出显示红点所在的位置。


好吧,经过包作者的一些建议和我自己的一些修改,我终于能够得到我想要的输出。

对于希望生成包含阿拉斯加和夏威夷在内的美国地图的人们来说,这种方法是理想的选择...

1)不具备在系统中安装非R包的能力 R 引擎运行的环境(例如缺乏管理员访问权限)

2) 需要使用对比来绘制县和州边界图 颜色

library(dplyr)
library(ggplot2)
library(usmap)

#Example data (poverty rates)
county_data<-read.csv("https://www.ers.usda.gov/webdocs/DataFiles/48747/PovertyEstimates.csv?v=2529") %>% #
  filter(Area_name != "United States") %>%
  select(FIPStxt, Stabr, Area_name, PCTPOVALL_2018) %>%
  rename(fips = FIPStxt)

states <- plot_usmap("states", 
                     color = "red",
                     fill = alpha(0.01)) #this parameter is necessary to get counties to show on top of states
counties <- plot_usmap(data = county_data, 
                       values = "PCTPOVALL_2018",
                       color = "black",
                       size = 0.1)

使用已嵌入数据中的图层元信息us_map

ggplot() +
  counties$layers[[1]] + #counties needs to be on top of states for this to work
  states$layers[[1]] +
  counties$theme + 
  coord_equal() +
  theme(legend.position="none") +
  scale_fill_gradient(low='white', high='grey20') #toggle fill schema using vanilla ggplot scale_fill function

仅使用从us_map package

ggplot() +  
  geom_polygon(data=counties[[1]], 
               aes(x=x, 
                   y=y, 
                   group=group, 
                   fill = counties[[1]]$PCTPOVALL_2018), 
               color = "black",
               size = 0.1) +  
  geom_polygon(data=states[[1]], 
               aes(x=x, 
                   y=y, 
                   group=group), 
               color = "red", 
               fill = alpha(0.01)) + 
  coord_equal() +
  theme_map() +
  theme(legend.position="none") +
  scale_fill_gradient(low='white', high='grey20')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用R中usmap包中的plot_usmap在同一张地图上绘制州和县边界 的相关文章

  • tidyverse 干扰 ggplot2 吗?无法访问map_data

    在控制台中运行这些命令 输出为 gt cty0 ggplot2 map data county gt library tidyverse Loading tidyverse ggplot2 Loading tidyverse tibble
  • r:按多列分组并计数

    我有以下数据框 df LeftOrRight SpeedCategory NumThruLanes R 25to45 3 L 45to62 2 R Gt62 1 我想按速度类别对其进行分组 并循环遍历其他列以获取每个速度类别中每个唯一代码的
  • R中无法连接odbc数据库

    我一直在尝试使用以下命令将我公司的 DMS 连接到 RodbcConnect命令 但收到以下消息 myConn lt odbcConnect NZSQL uid cejacobson pwd password Warning message
  • 根据 R 中的字符串模式选择行

    假设我有以下数据 df lt data frame name c TO for Turnover for people HC people Hello world beenie man apple pears TO is number c
  • 如何在R中将英尺转换为厘米?

    我得到了一个高度的字符向量 如下所示 859 5 10 5 8 5 11 6 0 5 10 6 2 5 11 6 2 6 2 5 7 5 9 5 7 6 1 6 0 5 11 6 0 6 5 6 1 6 1 5 10 5 11 5 11 6
  • R - 通过合并和超过 2 个后缀进行减少(或者:如何合并多个数据帧并跟踪列)

    我正在尝试基于 2 列合并 4 个数据帧 但要跟踪列源自哪个数据帧 我在跟踪列时遇到问题 参见 dput dfs 帖子末尾 df example df1 Name Color Freq banana yellow 3 apple red 1
  • 使用神经网络包进行多项分类

    这个问题应该很简单 但文档没有帮助 我正在使用 R 我必须使用neuralnet多项式分类问题的包 所有示例均针对二项式或线性输出 我可以使用二项式输出进行一些一对一的实现 但我相信我应该能够通过使用 3 个单元作为输出层来做到这一点 其中
  • Shiny:从DT数据表中选定的行获取信息

    我们正在尝试重新创建示例 https demo shinyapps io 029 row selection https demo shinyapps io 029 row selection 使用DT包来渲染数据帧而不是shiny包 DT
  • 将模式的所有元素与向量以相同的顺序匹配

    我创建了一个函数yes seq需要两个参数 一个模式pat和数据dat 该函数以相同的顺序查找数据中是否存在模式 例如 dat lt letters 1 10 dat 1 a b c d e f g h i j pat lt c a c g
  • 如何将数据从长格式重塑为宽格式

    我在重新排列以下数据框时遇到问题 set seed 45 dat1 lt data frame name rep c firstName secondName each 4 numbers rep 1 4 2 value rnorm 8 d
  • 在ggplot2中,箱线图线的末尾代表什么?

    我找不到箱线图线条端点代表什么的描述 For example here are point values above and below where the lines end 我意识到盒子的顶部和底部是第 25 个和第 75 个百分位数
  • 来自大型数据帧的共现

    我有一个数据框 其中包含有关每个用户访问过哪些城市的信息 df visited lt data frame user c john john claire claire doe doe city c Antananarivo Barcelo
  • 在zooreg时间序列中查找非唯一索引条目时遇到问题

    我有几年的数据正在尝试将其转化为动物园对象 Dropbox 上的 csv https www dropbox com sh vg8w8pt16e0v3xs AABKtWqDkPu9JVKpwBXO36VOa dl 0 一旦数据被强制转换为动
  • R 无法回忆起内存中的对象

    我正在构建一个包含多个步骤的函数 其中每个步骤都会创建一个对象 某个步骤失败 temp3 并且无法找到前面的步骤对象 错误 未找到对象 temp2 我不知道为什么 我有类似的函数 遵循完全相同的结构 每个步骤都遵循先前创建的对象 在函数内
  • R 3.5 - read.csv 无法读取 UTF-16 csv 文件

    我的代码如下 read csv http asic gov au Reports YTD 2018 RR20180420 001 SSDailyYTD csv skip 1 fileEncoding UTF 16 sep t header
  • 如果值大于或小于,则替换数据框中的值

    我在 R 中操作数据帧时遇到问题 这是 R 中的基本内容 但我找不到执行此类操作的最佳命令 虚拟示例 Var1 20 300 39 Var2 49 23 91 Var3 0 239 210 我怎样才能用10如果值小于 则在第 2 列中10
  • 在列标题和配对变量中嵌入数据的数据透视表

    假设我有这样的数据 不幸的是 变量值嵌入在列名称中 library tidyr library dplyr dat lt tribble group var1 var meta1 var2 var meta2 group1 5 2 cat
  • 如何将 Shiny 中生成的反应图传递到 Rmarkdown 以生成动态报告

    简而言之 我希望能够通过单击按钮从我的闪亮应用程序生成动态 Rmarkdown 报告文件 pdf 或 html 为此 我想我将使用 Shiny 的参数化报告 但不知何故 我无法将单个谜题转移到所需的目标 使用此代码 我们可以在 R Shin
  • ggplot 按因子和梯度颜色

    我正在尝试绘制一个对两个变量 一个因子和一个强度 进行着色的图 我希望每个因素都是不同的颜色 并且我希望强度是白色和该颜色之间的渐变 到目前为止 我已经使用了诸如对因子进行分面等技术 将颜色设置为两个变量之间的相互作用 并将颜色设置为因子并
  • 在 R 中读入原始二进制数据并将其转换为整数

    我有一个二进制文件 其中包含编码为不同长度 主要是 2 4 字节 的有符号或无符号整数的数值 为了处理这些数据 我将文件的所需部分读取为raw向量与readBin 然后尝试将其转换为十进制 问题是 R的内置函数有限制 我不太明白 比如没有l

随机推荐

  • 如何防止用户杀死C#应用程序[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果您使用 ESET Smart S
  • 我可以访问 TBits 内部位图吗?

    In particular i want to preset desired size fetch a bitmap from external source and then work with data in classy object
  • 使用 UDF 添加文件读取添加到 Hive 资源的文件

    我想知道如何读取使用添加的 Hive 资源ADD FILE来自乌德夫 例如 Hive gt add file users temp key jks Java中的UDF可以读取这个文件吗 在 Udf 中获取此文件的路径是什么 谢谢 大卫 一旦
  • JPEG 颜色在不同浏览器中呈现不一致

    我正在使用的徽标在不同浏览器中的呈现方式有所不同 具体图片可查here https pbs twimg com profile images 741262755236356096 BqpBjB8R jpg and on 这个推特页面 htt
  • RecyclerView 中的单选

    我知道没有默认的选择方法RecyclerView类 但我尝试过以下方式 public void onBindViewHolder ViewHolder holder final int position holder mTextView s
  • 为 SharePoint 2010 Web 部件创建图表

    我已创建从 Web 部件到 Oracle 数据库的连接 其中包含日期和数字 我想在图表中显示这些数据 我在互联网上查找过任何示例 但我很困惑 任何人都可以向我指出一些简单的说明 详细说明如何在 C Sharp 中创建可在 Web 部件上使用
  • 在 ASP.NET MVC 中返回不同的视图同一控制器

    我想根据以下值将用户发送到两个不同页面之一isCustomerEligible 当该变量的值设置为 false 时 它 会调用 Index 但随后返回视图Customer而不是视图Index public ViewResult Index
  • textarea根据内容js或jquery设置高度

    这是我的代码 保持简单
  • 具有单变量优化的 NLopt

    任何人都知道 NLopt 是否适用于单变量优化 尝试运行以下代码 using NLopt function myfunc x grad x 2 end opt Opt LD MMA 1 min objective opt myfunc mi
  • 如何在 pytest 中测试类层次结构?

    我已经使用 pytest 一段时间了 并学会了喜欢参数化和固定装置 我第一次想测试一些具有分支继承结构的类 当然 我想为子类重用测试用例 假设我有以下包结构 mock pkg child py grandchild py parent py
  • EC2 增加大小后无法调整卷大小

    我已按照调整 EC2 卷大小的步骤进行操作 停止实例 拍摄当前卷的快照 在同一区域中从上一个快照创建了一个更大大小的新卷 从实例中分离旧卷 将新卷附加到同一安装点的实例 旧卷是 5GB 我创建的卷是 100GB 现在 当我重新启动实例并运行
  • C 中未声明的标识符

    我正在尝试在 Visual Studio 2012 Express 中用 C 语言编译一个小型银行程序 它向我显示了几乎所有变量的 未声明标识符 错误 以及 语法错误 缺少 在 类型 之前 请告诉我正确的语法 谢谢 include
  • 如何让文字显示5秒然后消失并显示按钮?

    我正在努力做到这一点 以便当您在我的问答游戏中得到正确答案时 它会摆脱您看到的大问题并说 干得好 5秒钟 然后返回到主菜单 其中随机有4个选定的问题 问题从 quizfile csv 加载并包含 What colour is elon mu
  • C#,Process.Start 隐藏?

    public static void Main string args SearchGoogle Test Console ReadKey true static void SearchGoogle string t Process Sta
  • ~/.R/Makevars 文件是什么/在哪里?

    我正在尝试安装包 glmnet 我收到此错误 ld warning directory not found for option L usr local gfortran lib gcc x86 64 apple darwin15 6 1
  • ORA-01722-无效号码

    我在包中有一个查询抛出错误 ORA 01722 无效号码 我尝试了很多方法但没有运气 select h column from table1 h table2 c where c created date 17 MAY 17 and nvl
  • 禁用进度输出 aws s3sync 而不禁用所有输出

    有什么办法可以禁用 Completed 1 of 12 part s with 11 file s remaining 进度输出aws s3 sync命令 来自 aws cli 工具 我知道有一个 quiet选项 但我不想使用它 因为我仍然
  • R包:写入内部数据,但不是一次全部写入

    我正在使用 R 包usethis devtools 该包中有一些我想保留在内部的对象 只是为了避免混乱 我使用的结构是根据源在不同文件中创建对象 所有这些都在我的data raw文件夹 例如 文件make laus codes R准备两个来
  • 使用 Spring MVC 4.0 Multipart 上传图像

    我正在尝试使用下面的代码在线上传图像 但是 由于某种原因 图像似乎没有在图像文件夹中创建 不确定 我在这里做错了什么 RequestMapping value add method RequestMethod POST public Str
  • 使用R中usmap包中的plot_usmap在同一张地图上绘制州和县边界

    我想创建一张显示州和县边界 即不同颜色的州边界 的美国地图 我通常使用导入或使用的形状文件来执行此操作ggplot2 s map data功能 然而 我面临三个障碍 1 我无法安装gdal and geos在我的计算环境中 以便排除使用任何