📜  如何在 R 中使用 ggplot2 制作世界地图?

📅  最后修改于: 2022-05-13 01:54:45.727000             🧑  作者: Mango

如何在 R 中使用 ggplot2 制作世界地图?

在本文中,我们将讨论如何使用 R 编程语言创建世界地图并在其上绘制数据。

要使用它创建世界地图,我们将使用 R 语言的 ggplot2 包的 geom_map()函数。此函数返回一个 ggplot 对象,因此在其他 ggplot 图上工作的所有函数也将在 geom_map() 中工作。

例子:

这是使用 geom_map()函数绘制的基本世界地图。使用 map_data()函数获取地图坐标的数据框。这将创建一个作为 ggplot 对象的世界地图,该对象可以像其他 ggplot2 绘图一样被格式化、修改和绘制为图层。

R
# load library tidyverse
library(tidyverse)
  
# create data for world coordinates using 
# map_data() function
world_coordinates <- map_data("world")
  
# create world map using ggplot() function
ggplot() +
  
# geom_map() function takes world coordinates 
# as input to plot world map
  geom_map(
    data = world_coordinates, map = world_coordinates,
    aes(long, lat, map_id = region)
  )


R
# load library tidyverse
library(tidyverse)
  
# create data for world coordinates using 
# map_data() function
world_coordinates <- map_data("world")
  
# create world map using ggplot() function
ggplot() +
  
# geom_map() function takes world coordinates as input 
# to plot world map color parameter determines the 
# color of borders in map fill parameter determines 
# the color of fill in map size determines the thickness
# of border in map
  geom_map(
    data = world_coordinates, map = world_coordinates,
    aes(long, lat, map_id = region)
    color = "white", fill = "darkgreen", size = 0.2
  )


R
# load library tidyverse
library(tidyverse)
  
# create data for world coordinates using map_data() function
world_coordinates <- map_data("world")
  
# read volcano_eruption data from volcano.csv
volcano_eruption <- readr::read_csv("volcano.csv")
  
# create world map using ggplot() function
ggplot() +
# geom_map() funct
ion takes world coordinates as input
# to plot world map color parameter determines the
# color of borders in map fill parameter determines the
# color of fill in map size determines the thickness of
# border in map
  geom_map(
    data = world, map = world,
    aes(long, lat, map_id = region),
    color = "green", fill= "lightyellow"
  )+
# geom_point function is used to plot scatter plot on top 
# of world map
geom_point(
    data = volcano_eruption,
    aes(longitude, latitude, color = primary_volcano_type,
        size=population_within_10_km),
    alpha = 1
  ) +
  
# legend.position as none removes the legend
theme(legend.position="none")


输出:

这是一个带有 ggplot2 包图的默认配色方案的基本地图。

颜色定制

我们可以使用 geom_map()函数的颜色、填充和大小参数自定义绘图的视觉外观。

例子:

这是一张使用 geom_map()函数的填充、颜色和大小属性制作的带有绿色填充和粗白边框的世界地图。这使得地图在视觉上更具吸引力,并帮助我们通过白色边界的对比来区分不同的国家。

R

# load library tidyverse
library(tidyverse)
  
# create data for world coordinates using 
# map_data() function
world_coordinates <- map_data("world")
  
# create world map using ggplot() function
ggplot() +
  
# geom_map() function takes world coordinates as input 
# to plot world map color parameter determines the 
# color of borders in map fill parameter determines 
# the color of fill in map size determines the thickness
# of border in map
  geom_map(
    data = world_coordinates, map = world_coordinates,
    aes(long, lat, map_id = region)
    color = "white", fill = "darkgreen", size = 0.2
  )

输出:

在世界地图上绘制数据

由于 geom_map()函数返回 ggplot() 对象,我们可以像在任何其他 ggplot 图上一样在其上绘制数据。为此,我们只需要数据集中的纬度和经度数据即可在地图上绘制数据。我们可以使用所需的 ggplot2函数在世界地图图上绘制线图、散点图、箱线图或任何其他所需的图。

例子:

在他的示例中,我们使用 geom_point()函数在 geom_map()函数之上绘制了一个火山喷发数据集。在这里,我们可以展示世界各地火山爆发强度的变化。这有助于我们了解火山爆发的临界区。

使用的数据集:火山

R

# load library tidyverse
library(tidyverse)
  
# create data for world coordinates using map_data() function
world_coordinates <- map_data("world")
  
# read volcano_eruption data from volcano.csv
volcano_eruption <- readr::read_csv("volcano.csv")
  
# create world map using ggplot() function
ggplot() +
# geom_map() funct
ion takes world coordinates as input
# to plot world map color parameter determines the
# color of borders in map fill parameter determines the
# color of fill in map size determines the thickness of
# border in map
  geom_map(
    data = world, map = world,
    aes(long, lat, map_id = region),
    color = "green", fill= "lightyellow"
  )+
# geom_point function is used to plot scatter plot on top 
# of world map
geom_point(
    data = volcano_eruption,
    aes(longitude, latitude, color = primary_volcano_type,
        size=population_within_10_km),
    alpha = 1
  ) +
  
# legend.position as none removes the legend
theme(legend.position="none")

输出: