之前给大家分享过宗教活动场所基本信息数据和爬取课程:
×
×
在介绍数据的时候我绘制了一副地图展示宗教场所的分布:
![]()
为了方便大家使用这部分绘图代码,我把这部分代码单独拿出来讲解下。
下面案例中是选择了“宗教活动场所基本信息(含经纬度及其所处的省市区县)”数据的一般随机样本作为演示数据:“demo.xlsx”。
首先加载 tidyverse 和 sf 包:
library(tidyverse) |
读取 demo 数据:
readxl::read_xlsx("demo.xlsx") %>% |
因为要绘制省级地图,所以省级行政区划数据、九段线数据和海岸线数据:
read_sf("2021行政区划/省.shp") -> prov |
theme_map.R 文件定义了 ggplot2 绘图主题,这里可能需要把 “Tiejili Regular.ttf” 字体文件替换着你自己电脑上的中文字体文件。
source("theme_map.R") |
然后就可以开始绘制地图了。
首先绘制省界、九段线和海岸线:
ggplot(prov) + |
![]()
然后添加宗教场所的散点:
p1 + geom_sf(data = df, aes(color = type), alpha = 0.5, |
![]()
这里使用颜色表示宗教场所的类型,由于默认的调色板不太好看,我们替换下:
p2 + scale_color_manual(values = c("#D7BA9F", "#800080", "#1C3181", "#1BB6AF", "#FFAD0A")) -> p3 |
![]()
由于地理数据是 lonlat 坐标系的,所以绘制出来的中国地图是这样扁平的,使用 aea 坐标系绘制的更加好看:
p3 + coord_sf(crs = "+proj=aea +lat_0=0 +lon_0=105 +lat_1=25 +lat_2=47 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs", |
![]()
再设置下图例:
p4 + guides(color = guide_legend(nrow = 2)) -> p5 |
![]()
添加指北针和比例尺:
p5 + annotation_scale( |
![]()
设置下图表细节:
p6 + |
![]()
添加标题、副标题、caption 等:
p7 + |
![]()
最后,完整的代码是:
ggplot(prov) + |
保存和裁边:
ggsave("中国宗教活动场所地理分布.png", |
点击这里跳转到 RStata 短书平台获取附件:使用 R 语言绘图展示宗教活动场所分布
评论