您的位置首页  科技解读

中国完整版地图_中国地图

完整中国地图送给你们,不要在这个问题上出现错误。

中国完整版地图_中国地图

 

写在前面目前,R语言中大量的中国地图存在错误,主要包括以下几个部分:台湾南海诸岛西藏南部 这些问题还有一些其他的问题我们是不能出现一个错误的,一个都不能有,所以这里我将最为完整的中国地图送过大家,这些地图资源部分来自R语言可视化之美的资料,部分来自微生信生物群友提供。

所谓千家饭千家吃,我这里也就帮助大家整理一下代码,完成成图的绘制实战library(maptools)library(sf)library(ggplot2)library(maps)library(mapdata)。

library(sf)library(raster)library(dplyr)library(spData)正确的中国地图第一种类型 长地图这里提供的地图资源来自网络,由微生信生物群友提供如有免费打包供大家使用,如有侵权,联系删除。

china_map <- readShapePoly(./bou2_4m//bou2_4p.shp)head(fortify(china_map))chinmap = fortify(china_map)

# chinmap = dplyr::filter(chinmap, group == 0.1)head(chinmap)p = ggplot()+geom_polygon(data = chinmap,aes(x=long,y=lat,group=group,fill = group),colour=grey)+

scale_fill_discrete(guide = FALSE)

添加九段线nine <- sf::st_read(../中国边境等//全国行政区划练习用数据/国界九段线.shp)ninepp1 = p +geom_sf(data = nine,aes( geometry = `geometry`),color = "grey30")

p1

添加南海诸岛northear <- sf::st_read(../中国边境等//全国行政区划练习用数据/南海诸岛.shp)p2 = p1 +geom_sf(data = northear,aes( geometry = `geometry`),color = "grey30")

p2

第二种类型 宽地图 南海小图如何将南海诸岛作为图例添加到右下角将南海诸岛作为图例放到地图成图右下角,是一个很好的选择,不至于图形太长library(rgdal)library(geosphere)library(showtext)。

dataProjected <- readOGR("./bou2_4m//bou2_4p.shp")dataProjected@data$id <- rownames(dataProjected@data)

watershedPoints <- fortify(dataProjected)df_China2 <- full_join(watershedPoints, dataProjected@data, by = "id")

df_China2$class<-rep("Mainland",nrow(df_China2))df_NanHaiLine <- read.csv("./bou2_4m/中国南海九段线.csv")colnames(df_NanHaiLine)<-c("long","lat","ID")

Width<-9Height<-9long_Start<-124lat_Start<-16df_Nanhai106.55 & df_China2$long<123.58,]

df_Nanhai4.61 & df_Nanhai$lat<25.45,]min_long<-min(min(df_Nanhai$long, na.rm = TRUE),min(df_NanHaiLine$long))

min_lat<-min(min(df_Nanhai$lat, na.rm = TRUE),min(df_NanHaiLine$lat))max_long<-max(min(df_Nanhai$long, na.rm = TRUE),max(df_NanHaiLine$long))

max_lat<-max(max(df_Nanhai$lat, na.rm = TRUE),max(df_NanHaiLine$lat))df_Nanhai$long<-(df_Nanhai$long-min_long)/(max_long-min_long)*Width+long_Start

df_Nanhai$lat<-(df_Nanhai$lat-min_lat)/(max_lat-min_lat)*Height+lat_Startdf_Nanhai$class<-rep("NanHai",nrow(df_Nanhai))

df_China2<-rbind(df_China2,df_Nanhai)df_NanHaiLine$long<-(df_NanHaiLine$long-min_long)/(max_long-min_long)*Width+long_Start

df_NanHaiLine$lat<-(df_NanHaiLine$lat-min_lat)/(max_lat-min_lat)*Height+lat_Starthead(df_China2)ggplot()+

geom_polygon(data=df_China2, aes(x=long, y=lat, group=interaction(class,group),fill = NAME),colour="grey30",size=0.1)+

#九段线绘制 geom_line(data=df_NanHaiLine, aes(x=long, y=lat, group=ID), colour="black", size=1)+ geom_segment(aes(x = c(124,124,133,124),y =c(10,10,10,25),xend = c(124,133,133,133),yend = c(25,10,25,25) )) +

scale_fill_discrete(guide = FALSE)+ theme_bw()

其实南海部分通过拼图即可解决将坐标轴坐标调整到南海整个范围,然后通过拼图即可轻松解决上面的方法采用张杰老师R数据可视化之美中的比较麻烦的方法改编而成也是之前写的推送了,现在可以直接拼图这个工作留给大家,如果确实存在问题,请留言,我做给大家。

reference至于地图数据嘛。在微生信生物后台回复:数据,即可得到。添加小编微信 加入群聊

快来微生信生物微生信生物

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186