r - 如何创建具有梯度比例的信息图表以显示冠状病毒按地区/国家的传播?
问题描述
我只知道一种可以创建这样的地图的方法 - 使用tableau
.
但在Tableau中,您可以绘制特定国家/地区的地图 - 无法使用渐变比例绘制其他区域。需要自定义背景地图和地图样式 - 添加额外的地图图层和数据图层。
Tableau
可能获得 包含有趣区域的纬度和经度的数据集,但由于区域的规模不同 - 一个城市可能有一个确诊病例 - 另一个城市可能有 1000 个 - 我想使用梯度比例。
我的理想地图是这两个例子的组合。
是否有任何其他软件/框架允许在国内创建具有梯度数据比例的世界地图?
并可以直接进入国内地区?因为我想将它连接到解析与某些城市/地区/国家的许多新案例相关的新闻提要的软件。
而不是圆圈,我想显示案例数量的梯度比例。
解决方案
这是一个很好的起点,使用sf
,rnaturalearth
包。
install.packages(c("cowplot", "googleway", "ggplot2", "ggrepel",
"ggspatial", "libwgeom", "sf", "rnaturalearth", "rnaturalearthdata"))
library("ggplot2")
theme_set(theme_bw())
library("sf")
library("rnaturalearth")
library("rnaturalearthdata")
library("tidyverse")
world <- ne_countries(scale = "medium", returnclass = "sf")
class(world)
corona <- readxl::read_excel('corona cases.xlsx', sheet = "Sheet1")
world$corona <- NA
for (i in 1:nrow(corona)){
for (j in 1:nrow(world)){
country <- as.character(corona[i, 1])
sov_rows <- which(world$sovereignt %in% country)
world[sov_rows,"corona"] <- corona[i, 2]
}
}
sov_rows <- which(world$sovereignt %in% "China")
world[sov_rows,"corona"] <- NA
ggplot(data = world) +
geom_sf(aes(fill = corona)) +
scale_fill_viridis_c(option = "plasma", trans = "sqrt")
推荐阅读
- json - 从 evaluateJavacript 访问数据
- php - Laravel:如何在多对多关系中使用 where 子句
- c# - 根据第一个参数对函数的第二个参数进行类型检查
- python - 带有 generator.flow_from_directory 的多个 CNN 输入?
- mysql - 书架关联错误
- python - 将 pandas 数据框中的列相加会导致分类索引错误
- hadoop - 如何在没有 CDH 的情况下安装和配置 Hue 来管理 HDFS
- vue.js - vue 将数据挂载到多个 div 或 table
- ruby - double splat 在方法调用中的作用是什么?
- python - Selenium:当我打印()时单击()不起作用,当我注释掉打印()时调用错误