大数跨境
0
0

ggplot2优雅的绘制组合地图

ggplot2优雅的绘制组合地图 R语言数据分析指南
2021-08-23
1
导读:本节来介绍如何通过ggplot2来绘制组合地图,后台回复20210823获取本文数据,喜欢的小伙伴欢迎扫描文

本节来介绍如何通过ggplot2来绘制组合地图,后台回复20210823获取本文数据,喜欢的小伙伴欢迎扫描文末二维码加入我的交流群更多精彩内容为您而准备

加载R包

library(geoviz)
library(tidyverse)
library(sf)
library(terra)
library(rasterVis)
library(ggspatial)
library(rgdal)
library(rnaturalearth)
library(rnaturalearthdata)
library(raster)
library(cowplot)

导入数据

shp1 <- sf::read_sf("china.json")

绘制沿海地图

p1 <- ggplot()+
  geom_sf(data=shp1,aes(fill = NULL))+
  annotation_scale(location = "br") + # 设置距离刻度尺
  annotation_north_arrow(location="tl",style = north_arrow_nautical(
                           fill = c("grey40","white"),line_col = "grey20"))+  # 添加指北针
  scale_fill_gradientn(colours=colors,na.value="transparent")+ 
  labs(x=NULL,y=NULL)+
  geom_sf(data=shp1,fill="NA",size=0.8,color="black")+ # 添加地图边界
  geom_point(aes(x =118.3375,y =29.747),color ="black",size =3,show.legend = F)+
  annotate("text",label = "huangshan",x =117.5, y =30.4,size =3, colour = "black")+
  xlim(112,150)+ylim(28,50)+
  theme_bw()+
  theme(panel.grid.major=element_blank(),
        panel.grid.minor=element_blank(),
        panel.background = element_blank(),
        legend.title = element_blank())

绘制小地图

lat=29.7147
long=118.3375
square_km=100

dem <- mapbox_dem(lat,long,square_km,
                  api="pk.eyJ1IjoiYmVueXNmIiwiYSI6ImNrczBtdWE0ajBwNjcydnBqMjRyZDdsOXkifQ.sUcMdooE7b9uQqzfrnWdSQ")

shp <- sf::read_sf("huangshan.json"
hs <- raster::mask(dem,shp) %>% # 将地图与DEM数据结合
  crop(.,extent(shp))

df_hs <- as.data.frame(as(hs,"Raster"),xy=T)

colors <- c("#33A02C","#B2DF8A","#FDBF6F","#1F78B4","#999999",
            "#E31A1C","#E6E6E6","#A6CEE3")

shp2 <- sf::read_sf("huangshan.json")
p2 <- ggplot()+
  geom_sf(data=shp2,aes(fill = NULL))+
  scale_fill_gradientn(colours=colors,na.value="transparent")+ 
  labs(x=NULL,y=NULL)+
  geom_sf(data=shp2,fill="NA",size=0.8,color="black")+ 
  geom_tile(data=df_hs,aes(x=x,y=y,fill=layer),show.legend = F)+
  theme_void()+
  theme(panel.grid.major=element_blank(),
        panel.grid.minor=element_blank(),
        panel.background = element_blank(),
        axis.text=element_blank(),
        legend.title = element_blank(),
        legend.position = "non")

图形拼接

ggdraw(p1) + draw_plot(p2,x=0.25,y=0.01,scale=.5)+
  geom_segment(aes(x =0.235, y =0.19, xend =0.75, yend =0.36))+
  geom_segment(aes(x =0.235, y =0.19, xend =0.53, yend =0.52))


关注下方公众号,获取更多优质资源,如需要加入微信交流群,请在菜单栏处添加作者微信,即可邀您进群

往期精彩:

配置R与Rstudio
ggplot2中的一些关键概念
tidyverse的基础使用
ggplot2绘制终极版热图
ggtree绘制进化树
初探相关性热图
再探相关性热图
ggplot2绘制相关性热图
初探柱状图
绘制具有显著性的条形图
ggplo2绘制经典条形图
ggplo2绘制双误差线条行图
揭开ggplot2中stat图层的神秘面纱
R中的图片注释神包aplot
ggplot2使用patchwork高质量拼图
ggplot2绘制基础散点图
ggplot2绘制经典散点图-1
ggplot2绘制经典散点图-2
ggplot2绘制云雨图
ggplot2绘制经典云雨图
ggplot2绘制哑铃图
ggplot2绘制经典哑铃图
ggplot2添加gif

【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读410
粉丝0
内容1.2k