r - 询问如何在 R 中使用 ggplot 制作世界热图?

标签 r ggplot2 data-visualization ggplotly

我想制作特定疾病的世界热图。该数据集包含国家/地区列表、纬度、经度和每个国家/地区的案例。数据可用here 。我想用世界热图来表示它,即病例数较高的国家应该有较深的颜色,而病例数较少的国家应该颜色变浅。 我使用 ggplot 和 geom_map 来创建相同的。代码如下所示:

library(maps)
library(plyr)
library(gridExtra)

h2 <- read_excel("mapdata1.xlsx")

world_map <- map_data("world")
world_map <- subset(world_map, region!="Antarctica")

gg <- ggplot(h2)
gg <- gg + geom_map(dat=world_map, map = world_map, aes(map_id=region), 
                    fill="white", color="#7f7f7f", size=0.25)
gg <- gg + geom_map(map = world_map, aes(map_id = Country, fill = Cases), size=0.25)
gg <- gg + scale_fill_gradient(low="#fff7bc", high="#cc4c02", name="Total Cases")
gg <- gg + expand_limits(x = world_map$long, y = world_map$lat)
gg <- gg + labs(x="", y="", title="World Hotspots")
gg <- gg + theme(panel.grid=element_blank(), panel.border=element_blank())
gg <- gg + theme(axis.ticks=element_blank(), axis.text=element_blank())
gg <- gg + theme(legend.position="top")
gg

当我运行代码时,它显示了热图,但某些国家(例如美国)的颜色是白色的,即使它的病例数量较多。我不明白为什么会这样?

最佳答案

原因很简单,美国在您的数据和世界地图中的名称不同。

library(maps)
library(ggplot2)

mydata <- readxl::read_excel("your_path")

mydata$Country[mydata$Country == "United States"] <- "USA"

world_map <- map_data("world")
world_map <- subset(world_map, region != "Antarctica")

ggplot(mydata) +
  geom_map(
    dat = world_map, map = world_map, aes(map_id = region),
    fill = "white", color = "#7f7f7f", size = 0.25
  ) +
  geom_map(map = world_map, aes(map_id = Country, fill = Cases), size = 0.25) +
  scale_fill_gradient(low = "#fff7bc", high = "#cc4c02", name = "Total Cases") +
  expand_limits(x = world_map$long, y = world_map$lat)

reprex package于2020年5月16日创建(v0.3.0)

关于r - 询问如何在 R 中使用 ggplot 制作世界热图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61838700/

相关文章:

python - plotly 属性错误: 'Figure' object has no attribute 'show'

r - 从R中的变量打印内联 latex 方程,麻烦\beta

r - 如何判断一个数是否为正自然数?

R:您如何称呼::和::: 运算符?它们有何不同?

r - 警告信息 : Removed 4 rows containing missing values (geom_path) 的含义

python - 在多个 Seaborn Stripplot 中可视化样本大小

r - 使用 dplyr 计算组平均值和逻辑值之间的差异

r - 月-年条形图按年份进行分面和填充;数据输入为字符格式的日期

r - 如何更改 ggplot2 构面的顺序

python - PyML:绘制决策面