今天分享一个可以直接使用的中国地图,相较于其他R语言绘制的地图,有以下优点:1、包含十段线 http://xzqh.mca.gov.cn/map 2、标注省份名称 缺点:南海岛礁未绘制小地图
重点说明: 1、地图基础数据来自:http://xzqh.mca.gov.cn/data/ 中华人民共和国民政部官网 2、着色数据模板 :github:slyang-cn/data/your_data.csv 3、省市地理中心坐标 :基于st_centroid和省会坐标以及部分调整值,github:slyang-cn/data/province.csv (个人认为这是一份非常有价值的坐标数据,值得学习一下) 如想了解更多可私信或微信huyanggs 1、效果图包含十段线和省名标注的中国地图  声明:以上地图仅供学习交流 2、代码code- library(geojsonsf)
- library(sf)
- library(ggplot2)
- library(RColorBrewer)
-
- API_pre = "http://xzqh.mca.gov.cn/data/"
- ## 1.全国
- China = st_read(dsn = paste0(API_pre, "quanguo.json"),
- stringsAsFactors=FALSE)
- st_crs(China) = 4326
-
- # 2.国境线
- China_line = st_read(dsn = paste0(API_pre, "quanguo_Line.geojson"),
- stringsAsFactors=FALSE)
- st_crs(China_line) = 4326
-
- gjx <- China_line[China_line$QUHUADAIMA == "guojiexian",]
-
- # 3.读取省份地理中心
- # 地图中心坐标:基于st_centroid和省会坐标以及部分调整值
- province_mid <- read.csv("https://raw.githubusercontent.com/slyang-cn/data/slyangcn/province.csv")
-
- # 4.着色数据+全国地图
- zhuose_data <- read.csv("https://raw.githubusercontent.com/slyang-cn/data/slyangcn/your_data.csv")
- zhuose_data$QUHUADAIMA <- as.character(zhuose_data$QUHUADAIMA) # 因China数据中QUHUADAIMA是chr类型
- CHINA <- dplyr::left_join(China,zhuose_data,by= "QUHUADAIMA")
-
-
- ###----全国地图完整(无右下角小地图)----------###
- ggplot()+
- # 绘制主图
- geom_sf(data = CHINA,aes(fill = factor(yanse))) +
- scale_fill_manual("class", values=c("#FFCCCC", "#FF9333", "#FF6660","#FF5111","#CC0070"),
- breaks = c("0~200","200~400","400~600","600~1000","1000+"),
- labels = c("0~200","200~400","400~600","600~1000","1000+"))+
- # 绘制国境线及十/九段线
- geom_sf(data = gjx)+
- geom_text(data = province,aes(x=dili_Jd,y=dili_Wd,label=省市),
- position = "identity",size=3,check_overlap = TRUE) +
- labs(title="中国地图",subtitle="随机着色",caption = "reference")+
- theme(
- plot.title = element_text(color="red", size=16, face="bold",vjust = 0.1,hjust = 0.5),
- plot.subtitle = element_text(size=10,vjust = 0.1,hjust = 0.5),
- legend.title=element_blank(),
- legend.position = c(0.2,0.2),
- panel.grid=element_blank(),
- panel.background=element_blank(),
- axis.text=element_blank(),
- axis.ticks=element_blank(),
- axis.title=element_blank()
- )
复制代码
【往期回顾推荐】 R 语言 逻辑运算:TRUE/FALSE R语言 高阶可视化绘图系统:ggplot2入门 R语言,入门首看、必看基础概述 R语言数据管理与dplyr、tidyr
快速掌握R语言中的apply函数族 | 精选分享 R语言 分组计算,不止group_by 用R语言让你的可视化图表动起来!动起来!!附源代码 R语言 相关系数混合可视化矩阵实现
如想了解更多可私信或微信huyanggs
|