用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')

注意事項

注意區分上述代碼
可以查閱更多的參考資料

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場