用R画中国地图时如何把南海做成小图

使用R语言绘图 是一项非常有效率的事,因为其具备很多很全的功能,matlab也是一款绘制地图的实用软件,前提是把该安装的软件包给装好。

工具/原料

R
matlab
数据

方法/步骤

简单介绍一个例子:绘制世界地图

install.packages('maps')

library(maps)

map("world",fill=TRUE,col=rainbow(925),ylim=c(-90,90),mar=c(1,0,0,0))

title("World map")

同样绘制中国地图,只是导入了数据包mapdata:

install.packages('mapdata')

library(mapdata)

map("china",col="black",ylim=c(18,54),panel.first=grid())

title("china_map")

对函数进行简介:

map(data,color='',xlim=c(),ylim=c(),options)

data数据,color颜色,xlim、ylim表示范围,option表示选项

所以我们可以通过限制经纬度显示不同区域

plot(data,col=rainbow(925),xlim=c(100,130),ylim = c(10, 13), panel.first = grid())

绘制南海部分

也可以自己下载数据,自己绘制地图

install.packages('sp')

install.packages('maptools')

library(sp)

library(maptools)

data=readShapePoly('C:\\Users\\jyjh\\Desktop\\china-province-border-data\\bou2_4p.shp')

plot(data)

也可以给地图添加颜色

plot(data,col=rainbow(925),ylim = c(18, 54), panel.first = grid())

把南海地图一并绘制出来

plot(data,col=rainbow(925),ylim = c(18, 54), panel.first = grid())

par(new=TRUE)

par(mfrow=c(3,3))

par(3,3);plot(data,col=rainbow(925),xlim=c(100,130),ylim = c(10, 11))

par(new=TRUE)

plot(c(1,1),c(10,10),type='l',xaxt="n",yaxt="n",xlab=' ',ylab=' ')

好的完成这个经验的要求后,我想介绍一下matlab的绘图工具,与R类似,都是很实用的工具。

load coast

axesm mercator%投影方式

title('world map')

绘制北京的位置

lon=116.5;lat=40.0;

h=worldmap('China');

landareas=shaperead('landareas.shp','UseGeoCoords',true);

geoshow(landareas,'Facecolor',[1 1 0.5])

geoshow(lat,lon,'marker','.','MarkerEdgeColor','red')

textm(lat+0.5,lon,'Beijing')

注意事项

注意区分上述代码
可以查阅更多的参考资料

本文内容整理自网络, 文中所有观点看法不代表淘大白的立场