返回

R 可视化:将地图数据添加至 ggplot

见解分享

使用 R 和 ggplot2 在可视化中添加地图

数据可视化是分析和传达复杂数据集的有力工具。地图是一种强大的数据可视化形式,可以显示具有地理维度的信息。本文将指导您使用 R 语言和 ggplot2 库将地图数据添加到您的可视化中。

加载数据

首先,您需要加载所需的 R 包,包括 ggplot2、sf、scales、dplyr 和 rnaturalearth。

library(ggplot2)
library(sf)
library(scales)
library(dplyr)
library(rnaturalearth)

接下来,您需要获取地图数据。您可以从各种来源获取地图数据,例如 data.world 网站。下载世界地图数据后,可以使用以下代码将其加载到 R 中:

world_map <- readOGR("path/to/world_map.json")

准备数据

ggplot2 需要数据采用特定格式才能绘制地图。可以使用 fortify() 函数将地图数据转换为适合 ggplot 的数据结构:

world_map_df <- fortify(world_map, region = "NAME_0")

添加地图

现在,您可以使用 geom_sf() 几何形状将地图添加到您的 ggplot:

ggplot() +
  geom_sf(data = world_map_df, aes(geometry = geometry))

此代码将在地图上绘制一个填充了白色颜色的世界地图。

自定义地图

您可以使用 coord_sf() 坐标系自定义地图的外观。以下是一些常用的选项:

  • xlimylim :设置地图的 X 轴和 Y 轴范围。
  • expand :在地图周围添加一个缓冲区。
  • projection :设置地图的投影类型。

以下是自定义地图外观的示例代码:

ggplot() +
  geom_sf(data = world_map_df, aes(geometry = geometry)) +
  coord_sf(xlim = c(-180, 180), ylim = c(-90, 90), expand = FALSE, projection = "robin")

常见问题解答

1. 如何在地图上添加边界?

您可以使用 geom_sf() 几何形状并指定 fill = "black" 来添加地图边界:

ggplot() +
  geom_sf(data = world_map_df, aes(geometry = geometry, fill = "black"))

2. 如何在地图上添加标签?

可以使用 geom_text_sf() 几何形状在地图上添加标签:

ggplot() +
  geom_sf(data = world_map_df, aes(geometry = geometry)) +
  geom_text_sf(data = world_map_df, aes(label = NAME_0))

3. 如何在地图上添加颜色?

您可以使用 fill = 参数根据数据列在地图上填充颜色:

ggplot() +
  geom_sf(data = world_map_df, aes(geometry = geometry, fill = population))

4. 如何放大或缩小地图的特定区域?

您可以使用 xlimylim 参数设置地图的 X 轴和 Y 轴范围:

ggplot() +
  geom_sf(data = world_map_df, aes(geometry = geometry)) +
  coord_sf(xlim = c(-10, 10), ylim = c(-10, 10))

5. 如何保存地图为图像?

可以使用 ggsave() 函数将地图保存为图像文件:

ggsave("world_map.png", plot = my_plot)

结论

通过使用 R 语言和 ggplot2 库,您可以轻松地将地图数据添加到您的可视化中。您可以使用 geom_sf() 几何形状在地图上绘制国家、省份或其他地理区域。通过使用 coord_sf() 坐标系,您可以自定义地图的外观,包括范围、缓冲区和投影类型。借助本教程中介绍的技术,您现在可以使用 ggplot 创建引人入胜且信息丰富的基于地图的可视化。