You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中基于指定值为省级Shapefile添加渐变着色

省级Shapefile与数值数据关联并可视化完整方案

1. 数据读取与关联

首先读取省级Shapefile,再将其与包含省级名称、对应数值的数据集关联,核心前提是两个数据集的省级名称字段必须完全匹配(无空格差异、大小写统一、别名一致),否则会出现关联失败或匹配错误的情况。

代码示例

# 加载所需工具包
library(raster)  # 用于读取Shapefile
library(ggplot2)

# 读取本地省级Shapefile文件
state <- shapefile("你的文件路径/file.shp")

# 关联空间数据与数值数据集,by参数指定匹配的省级名称字段
# 假设data_char的省级名称列名为"province",state中对应字段也为"province"
state_n <- merge(state, data_char, by = "province")

2. 绘制渐变填充的省级地图

ggplot2对sf格式的空间数据支持更友好,先将关联后的sp对象转换为sf格式,再以数值字段为依据设置渐变填充色:

代码示例

# 加载sf包用于空间数据格式转换
library(sf)

# 将sp格式的关联数据转换为sf格式
state_sf <- st_as_sf(state_n)

# 生成带渐变填充的省级分布图
ggplot(state_sf) +
  geom_sf(aes(fill = B)) +  # B为data_char中的数值列名
  scale_fill_gradient(low = "#f0f8ff", high = "#0050b3") +  # 自定义渐变色彩区间
  labs(title = "省级数值分布热力图", fill = "指标数值") +
  theme_minimal() +
  theme(axis.text = element_blank(), axis.ticks = element_blank())  # 隐藏冗余坐标轴元素

关键注意事项

  • 若省级名称存在不匹配情况,需先对数据做清洗:比如统一大小写、替换"省/自治区"等别名、删除多余空格。
  • 推荐使用sf包的st_read()读取Shapefile,搭配dplyr::left_join()做关联,比基础merge更灵活,也更适配ggplot2的可视化流程。

内容的提问来源于stack exchange,提问作者VIX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:15:48