中国地图的画法
昨天,我们的小编推送了世界地图的画法(生信小白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 "./bou2_4m/bou2_4p.shp", use_iconv = TRUE, encoding = "GBK")
dataProjected@data$id watershedPoints df_China "id")
df_China$class"Mainland",nrow(df_China))
mydata "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")
Width9
Height9
long_Start124
lat_Start16
df_Nanhai106.55 & df_China$long<123.58,]
df_Nanhai4.61 & df_Nanhai$lat<25.45,]
min_longTRUE)
min_latTRUE)
max_longTRUE)
max_latTRUE)
df_Nanhai$longdf_Nanhai$latdf_Nanhai$class"NanHai",nrow(df_Nanhai))
df_China
#---------------------df_NanHaiLine:Nanhai Line-----------------------------------
df_NanHaiLine "中国南海九段线.csv")
colnames(df_NanHaiLine)"long","lat","ID")
df_NanHaiLine$longdf_NanHaiLine$lat
#-----------------------中国省份分级统计地图-----------------------
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()
)
graph2ppt(file="map.pptx", paper="A4")
上图展示的其实是各省关注小麦研究联盟的人数,最多的是北京市,其次是河南和山东。