绘制地图热图

有时需要展示各个地区的不同情况,这时可以作地图热图。如下所示,用地图热图展示湖北省各个城市的得分差异。

1. 需要的数据文件,地市得分.csv

地市得分.csv

2. R代码

a. 在线读取湖北省各市的空间矢量数据json
library(sf)
library(ggspatial)
library(tidyverse)
hubei_map = st_read("https://geo.datav.aliyun.com/areas_v3/bound/420000_full.json")[c("adcode","name","geometry")]
b. 读取湖北省各市的得分数据,并与空间矢量数据合并为一个数据框
heatmap_data <- read.csv("地市得分.csv")
merged_data <- left_join(hubei_map, heatmap_data, by = "name")
c. 绘图

其中通过annotation_north_arrow绘制指北针,annotation_scale添加比例尺,coord_sf设置纬度和经度限制,geom_sf_label添加地图标签。

ggplot() + geom_sf(data = merged_data, aes(fill = number), color = "black") +
  scale_fill_gradient(low = "white", high = "red") +
  annotation_north_arrow(location = "tl", style = north_arrow_fancy_orienteering()) +
  annotation_scale(location = "tr") +
  theme_light() +
  theme(axis.text = element_text(color = "black")) + 
  geom_sf_label(data = merged_data, aes(label = paste0(merged_data$name, "\n(", merged_data$number, ")")), color = "black", size = 3, fill = NA, label.size=NA, label.padding = unit(0.2, "lines"), label.r = unit(0, "lines"))

3. 结果

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容