如何在R中使用plot_usmap()按FIP编码为指定美国县着色
可以实现,调整传参逻辑即可
原代码问题
你当前的写法不符合plot_usmap()的参数要求:values参数不能直接传入你要高亮的FIPS编码列表,它用来指定数据集中需要映射为填充色的列名,需要搭配data参数传入的结构化数据集使用。
正确实现步骤
- 先构造包含FIPS编码和对应填充标识的数据集:给你需要高亮的3个县设置特殊标识,其余县统一设置为普通标识
- 将构造好的数据集传入
data参数,values参数指定填充标识对应的列名
可运行示例代码
library(usmap) library(ggplot2) # 构造数据集:目标FIPS标为1,其余标为0 highlight_fips <- c("1001", "1005", "1007") county_data <- data.frame( fips = fips_info("county")$fips, highlight = ifelse(fips_info("county")$fips %in% highlight_fips, 1, 0) ) # 绘图 plot_usmap( regions = "county", data = county_data, values = "highlight" ) + # 自定义填充色:高亮县用红色,其余用浅灰色 scale_fill_gradient(low = "lightgray", high = "red", guide = "none")
补充说明
如果你需要给三个县设置不同的颜色,只需要在构造数据集时给三个FIPS分别设置不同的数值/分类值,再搭配对应的颜色映射函数(如scale_fill_manual())调整即可。
内容的提问来源于stack exchange,提问作者Mathica
相关产品推荐
相关产品推荐

