使用 ggplot2 绘制单个和多个省份地图

简介: 使用 ggplot2 绘制单个和多个省份地图

上一篇教程介绍了绘制完整地图的方法:R 语言绘制十段线地图,给特定省份填色,今天我们将继续探索分省市地图的绘制。

本文的所有代码以及数据可以在公众号后台回复 [中国地图绘制] 免费获得。如果需要往期部分推文代码,可去小编的 Github 获得。


数据准备

首先,加载所需 R 包,之后导入数据集,包含空间信息的 shp 文件。

library(rgdal)
library(ggplot2)
library(maptools)
library(mapproj)
library(ggsn)
library(readxl)
library(sf)
show_data <- read_xlsx("城市数据.xlsx","hubei")
shp_data <- st_read("CHN_adm/CHN_adm2.shp")


show_data 数据集

合并特定省份的数据

由于 show_data 中的城市名称是字符型,因此在合并数据之前,需要将 shp_data 中的城市名称转成字符型。然后,使用 left_join() 合并数据。

shp_data$NL_NAME_2 <- as.character(shp_data$NL_NAME_2)
my_data <- dplyr::left_join(show_data, shp_data,by = c("city" = "NL_NAME_2"))

图形绘制

在省份地图上标记各个城市。

ggplot(data = my_data) + geom_sf(aes(fill = as.factor(value), geometry = `geometry`)) + 
  geom_sf_text(aes(label = `city`,geometry = `geometry`), color = 'Black',size=2)+
  xlab("Long (°E)") + ylab("Lat (°N)") + 
  ##更改图形颜色,不加这个语句使用随机配色
  scale_fill_manual(
    "value",
    values = c("#DFD3F2", "#00C2F9", "#FFF7D0"),
    breaks = c("A", "B", "C"),
    labels = c("A", "B", "C")
  )+
  theme(legend.position = "top",panel.background = element_rect(fill = "white",color = "black"),
        panel.grid = element_line(color = "grey"))


绘制多个省份地图

有时候需要绘制一个区域的地图,比如:长三角京津冀等,绘图方法和单个省份一样,只是需要将多个省份的数据存储在一个文件中。

合并数据

小编使用的是 xlsx 格式的数据,因为可以创建多个 sheet,调用起来比较方便。

hubei <- read_xlsx("测试数据.xlsx","hubei")
jiangxi <- read_xlsx("测试数据.xlsx","jiangxi")
all_province <- rbind(hubei,jiangxi)

绘图

数据处理好后,其他步骤和之前一样。

shp_data <- st_read("CHN_adm/CHN_adm2.shp")
shp_data$NL_NAME_2 <- as.character(shp_data$NL_NAME_2)
data2 <- dplyr::left_join(all_province, shp_data,by = c("city" = "NL_NAME_2"))
ggplot(data = data2) + geom_sf(aes(fill = as.factor(value), geometry = `geometry`)) + 
  geom_sf_text(aes(label = `city`,geometry = `geometry`), color = 'Black',size=2)+
  xlab("Long (°E)") + ylab("Lat (°N)") + 
  ##更改图形颜色,不加这个语句使用随机配色
  scale_fill_manual(
    "value",
    values = c("#DFD3F2", "#00C2F9", "#FFF7D0"),
    breaks = c("A", "B", "C"),
    labels = c("A", "B", "C")
  )+
  theme(legend.position = "top",panel.background = element_rect(fill = "white",color = "black"),
        panel.grid = element_line(color = "grey"))


小结

绘制地图的命令还是比较简单的,关键是得有 shp 文件。

本文的所有代码以及数据可以在公众号后台回复 [中国地图绘制] 免费获得。如果需要往期部分推文代码,可去小编的Github获得。

目录
相关文章
|
9月前
|
存储 自然语言处理 算法
高维向量压缩方法IVFPQ :通过创建索引加速矢量搜索
向量相似性搜索是从特定嵌入空间中的给定向量列表中找到相似的向量。它能有效地从大型数据集中检索相关信息,在各个领域和应用中发挥着至关重要的作用。
458 0
|
6月前
|
SQL 关系型数据库 MySQL
如何快速在表级别做同构或者异构数据库之间的数据迁移/备份
【8月更文挑战第17天】本文介绍在同构与异构数据库间快速迁移/备份表级数据的方法。同构迁移可利用数据库自带工具(如MySQL的`mysqldump`)或管理软件(如phpMyAdmin);异构迁移则推荐使用ETL工具(如Pentaho Data Integration)或数据库复制工具(如SymmetricDS),亦可通过编程方式实现。实施前需测试以确保数据完整准确,并注意处理兼容性问题。
259 4
|
8月前
|
SQL 数据可视化 定位技术
见证数据的视觉奇迹——DataV Atlas
阿里云DataV的DataV-Atlas是一款专注于地理数据可视化的工具,提供时空数据分析和地图发布功能,适合快速创建地图并分享。与ArcGIS Server相比,DataV.GeoAtlas更侧重于数据可视化和云服务集成,适合非专业用户,而ArcGIS Server是全面的GIS服务平台,适合复杂分析和定制化应用。用户可通过阿里云免费试用DataV-Atlas,体验包括数据上传、地图制作和分析在内的功能。
见证数据的视觉奇迹——DataV Atlas
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
图像数据增强库综述:10个强大图像增强工具对比与分析
在深度学习和计算机视觉领域,数据增强是提升模型性能和泛化能力的关键技术。本文全面介绍了10个广泛使用的图像数据增强库,分析其特点和适用场景,帮助研究人员和开发者选择最适合需求的工具。这些库包括高性能的GPU加速解决方案(如Nvidia DALI)、灵活多功能的Albumentations和Imgaug,以及专注于特定框架的Kornia和Torchvision Transforms。通过详细比较各库的功能、特点和适用场景,本文为不同需求的用户提供丰富的选择,助力深度学习项目取得更好的效果。选择合适的数据增强库需考虑性能需求、任务类型、框架兼容性及易用性等因素。
752 10
|
9月前
|
存储 编解码 定位技术
R语言读取大型NetCDF文件
失踪人口回归,本篇来介绍下R语言读取大型NetCDF文件的一些实践。
168 4
|
9月前
|
定位技术
R语言raster包计算多个栅格图像平均值、标准差的方法
R语言raster包计算多个栅格图像平均值、标准差的方法
224 1
|
JSON 缓存 监控
基于云原生网关的流量防护实践
本文详尽地介绍了如何在云原生网关上做流量防护,包括在不同的场景下该配置何种防护规则,并给出了详细的使用路径,可以从中体验出云原生网关的流量防护功能相对于其它网关产品限流功能的优势。作为云上网关的核心功能之一,后续我们也会持续强化流量防护功能,也欢迎大家持续关注阿里云官网的 MSE 微服务引擎产品动态。
|
存储 数据可视化 定位技术
使用 ggplot2 绘制比较各省份及其区县的详细数据
使用 ggplot2 绘制比较各省份及其区县的详细数据
206 0
|
Nacos
解决:java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service
解决:java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service
440 0
解决:java.lang.IllegalStateException: Invalid host: lb://exam_farmer_service
|
9月前
|
Prometheus Kubernetes Cloud Native
使用 Jiralert 实现 AlertManager 告警对接 Jira
使用 Jiralert 实现 AlertManager 告警对接 Jira

热门文章

最新文章