r - 用第二层符号叠加地图
问题描述
我在 R 中创建了一张世界地图,它根据数据集中的变量突出显示了一些国家。我现在想在世界地图上添加另一层符号。该数据集包含六个额外的虚拟变量。对于其中任何一个为“1”,我希望在地图上放置一个符号。这可能吗?谁能指出我的解决方案/应用程序/命令来做到这一点?
这是我的数据集的程式化版本。对于符号 1-6 = 1 的所有国家/地区,除了已经应用的颜色之外,我还希望在地图上添加一个实际的符号或注释。
library(tidyverse)
library(sf)
library(rvest)
library(stringr)
library(scales)
library(viridis)
map.world <- map_data('world')
map.world<-map.world[!(map.world$region=="Antarctica"),]
a <- c("Belgium", "Canada", "USA", "UK")
symbol1 <- c(1, 0, 1, 0)
symbol2 <- c(0, 1, 1, 0)
symbol3 <- c(0, 0, 1, 1)
symbol4 <- c(1, 0, 0, 0)
symbol5 <- c(1, 1, 1, 1)
symbol6 <- c(0, 0, 1, 0)
mapping <- data.frame(a, symbol1, symbol2, symbol3, symbol4, symbol5, symbol6)
mapping$country <- "YES"
plot_data <- left_join(map.world, mapping, by = c('region' = 'a'))
plot_data$country[is.na(plot_data$country)] <- "NO"
p <- ggplot(plot_data, aes( x = long, y = lat, group = group)) +
geom_polygon(aes(fill = country))
p + theme(legend.position="bottom",
axis.line=element_blank(),axis.text.x=element_blank(),
axis.text.y=element_blank(),axis.ticks=element_blank(),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
panel.background = element_blank(), panel.border=element_blank(),panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),plot.background=element_blank()) +
scale_fill_manual(name="", values=c("#ADD8E6", "#00008B", "#E5E4E2"))
解决方案
推荐阅读
- list - 方案中列表的运行长度编码(R5RS)
- html - 如何在三个画布 (HTML) 之间切换?
- machine-learning - 如何批量匿名化文本文档以准备数据集
- omnet++ - 如何确定 Omnet++ 5.6.1 和 Inet 4.2 中的通信范围
- cassandra - 在 Cassandra 中运行修复时如何避免使用完整的磁盘?
- wcf - 如何在 .NET Core 3.1 中从 F# 访问 WCF 服务?
- rust - 如何在 Rust 中调用“cd”?
- vue.js - 如何将我的私有 api 密钥存储在 Vue.js 应用程序上?
- html - 根据单选复选框隐藏/显示自我
- python - 在word文档中搜索单词并打印出包含该单词的文件名?