中国地图简笔画(简单手绘地图)

新优网_大帅比 89 0

中国地图的画法

昨天,我们的小编推送了世界地图的画法(生信小白7行代码画一个高颜值的世界地图),今天我们来说一说中国地图的画法。


首先要强调一点,很多来自国外的地图数据中中国的版图有不少错误,千万要注意,不要被套路了。


强调第二点,画图的R代码非我原创,基于网上的版本改造而来。最主要的参考和数据下载自:https://github.com/EasyChart/Original_Data。


本文用到的所有数据也打包放到百度云盘https://pan.baidu.com/s/1JiC6DYniLc3EHszngbu8xw。


每次使用只需将“Province_Data.csv”中的第三列“Value”替换成自己的数据即可。


里边有涉及中文字符,需要注意编码的问题,在小编电脑上使用encoding = “GBK”是正常的。


输出图片保存为ppt格式,方便大家做些局部的调整。


#下载上述数据后,改成自己存放的目录。这里解压缩之后的目录为Chinese_map
setwd("~/Desktop/scripts/Chinese_map/")

library(rgdal)
library(ggplot2)
library(dplyr)
library(RColorBrewer)
library(export)

dataProjected <- readOGR("./bou2_4m/bou2_4p.shp", use_iconv = TRUE, encoding = "GBK")
dataProjected@data$id <- rownames(dataProjected@data)
watershedPoints <- fortify(dataProjected)
df_China <- full_join(watershedPoints, dataProjected@data, by = "id")
df_China$class<-rep("Mainland",nrow(df_China))

mydata <- read.table("Province_Data.csv",header=TRUE,sep=',', as.is =T)
head(mydata)
#mydata为33 X 3的表格数据,列名分别为:NAME,province,Value
#.csv数据下载:https://github.com/EasyChart/Original_Data
df_China<-full_join(df_China,mydata,type="full")


Width<-9
Height<-9
long_Start<-124
lat_Start<-16

df_Nanhai<-df_China[df_China$long>106.55 & df_China$long<123.58,]
df_Nanhai<-df_Nanhai[df_Nanhai$lat>4.61 & df_Nanhai$lat<25.45,]

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

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_Start
df_Nanhai$class<-rep("NanHai",nrow(df_Nanhai))


df_China<-rbind(df_China,df_Nanhai)

#---------------------df_NanHaiLine:Nanhai Line-----------------------------------
df_NanHaiLine <- read.csv("中国南海九段线.csv")
colnames(df_NanHaiLine)<-c("long","lat","ID")

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_Start

#-----------------------中国省份分级统计地图-----------------------
ggplot
geom_polygon(data=df_China, aes(x=long, y=lat, group=interaction(class,group),fill=Value),colour="black",size=0.25)
#中国地图,包括中国主体部分和长方形方块内的南海诸岛数据
geom_rect(aes(xmin=long_Start, xmax=long_Start Width 0.3, ymin=lat_Start-0.3, ymax=lat_Start Height),fill=NA, colour="black",size=0.25)
#绘制长方形方框
geom_line(data=df_NanHaiLine, aes(x=long, y=lat, group=ID), colour="black", size=1)
#绘制长方形方框内的中国南海八段线
scale_fill_gradientn(colours = colorRampPalette(rev(brewer.pal(11,'Spectral')))(32))
coord_cartesian
ylim(15,55)
theme(
legend.position=c(0.15,0.2),
legend.background = element_blank
)
graph4ppt(file="map.pptx", paper="A4")

中国地图简笔画(简单手绘地图)-第1张图片

上图展示的其实是各省关注小麦研究联盟的人数,最多的是北京市,其次是河南和山东。


中国地图简笔画(简单手绘地图)-第2张图片

抱歉,评论功能暂时关闭!