利用R语言ggplot2绘制世界地图在地图上标点并根据点的多少给国家着色
以下是一个示例代码,其中使用ggplot2和maps R包:
library(ggplot2)
library(maps)
# 下载地图数据
world_map <- map_data("world")
# 创建随机数据
set.seed(123)
n_points <- 20
points_data <- data.frame(
lon = runif(n_points, -180, 180),
lat = runif(n_points, -90, 90)
)
# 按国家分组计数点数
points_count <- aggregate(cbind(count = 1) ~ region, data = world_map, FUN = sum)
colnames(points_count)[1] <- "country"
points_count$count <- sample(1:10, nrow(points_count), replace = TRUE)
# 合并点数计数和地图数据
world_map_count <- merge(world_map, points_count, by = "country", all.x = TRUE)
# 绘制地图并添加点
ggplot(world_map_count, aes(x = long, y = lat, group = group)) +
geom_polygon(aes(fill = count), color = "black") +
scale_fill_gradient(low = "white", high = "red") +
geom_point(data = points_data, aes(x = lon, y = lat), color = "blue", size = 2)
这将生成一个世界地图,在地图上标记了20个随机点,并且根据每个国家的点数着色。您可以根据需要调整点的数量和颜色方案
原文地址: https://www.cveoy.top/t/topic/fy6C 著作权归作者所有。请勿转载和采集!