1. 程式人生 > 程式設計 >利用python繪製中國地圖(含省界、河流等)

利用python繪製中國地圖(含省界、河流等)

我們可以使用Basemap這個工具包來實現中國地圖的繪製

首先需要載入一些包:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

Basemap包就是氣象畫圖的利器,現在我們就可以愉快的畫圖了!

plt.figure(1)
map=Basemap()
map.drawcoastlines()
plt.title(r'$World\ Map$',fontsize=24)
plt.show()

第2行建立一個地圖,第3行新增海岸線,這樣一個世界地圖就出來了,怎麼樣,很簡單吧。(plt.show()這行程式碼是用來顯示圖片的)

利用python繪製中國地圖(含省界、河流等)

我們發現這只是海岸線圖,那麼怎麼將國界線新增上去呢?很簡單,只要新增一行程式碼就可以了。

map.drawcountries()

利用python繪製中國地圖(含省界、河流等)

那麼怎麼新增河流呢?可能有些同學已經猜到了,就是drawrivers()

map.drawrivers(color='blue',linewidth=0.3)

利用python繪製中國地圖(含省界、河流等)

好了,現在我們可以開始畫中國地圖了!
其實只要在建立地圖時指定一下範圍就可以了,查閱資料發現,中國的經緯度範圍是東經135度2分30秒-東經73度40分,北緯3度52分-北緯53度33分。

map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54)

利用python繪製中國地圖(含省界、河流等)

好了,一箇中國地圖就出來了!但是我們發現,好像少了點什麼,沒錯就是省界。我們可以在https://gadm.org/download_country_v3.html下載中國大陸和臺灣省的行政區域的shape檔案,下載後解壓,然後加入下面的程式碼。

CHN='G:\python_material\MapOfChina'

CHN的值就是解壓後的地圖檔案所在的地址。
下面我們就可以加入省界了!

map.readshapefile(CHN+'\gadm36_CHN_shp\gadm36_CHN_1','states',drawbounds=True)

別忘了把臺灣省加上去

map.readshapefile(CHN+'\gadm36_TWN_shp\gadm36_TWN_1','taiwan',drawbounds=True)

利用python繪製中國地圖(含省界、河流等)

還可以在地圖上加上經緯度,比如我們要畫5條經緯線,可以這麼做:

parallels = np.linspace(3,55,5)
map.drawparallels(parallels,labels=[True,False,False])
meridians = np.linspace(70,140,5)
map.drawmeridians(meridians,labels=[False,True])

利用python繪製中國地圖(含省界、河流等)

大功告成!但是,emmm,我們發現好像有點歪?我們可以在建立地圖時選擇投影引數。

map=Basemap(llcrnrlon=70,urcrnrlon=137,urcrnrlat=54,projection = 'lcc',lat_1 = 33,lat_2 = 45,lon_0 = 100)

利用python繪製中國地圖(含省界、河流等)

這回正式的完成了!

附上所有程式碼:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

plt.figure(1)
map=Basemap(llcrnrlon=70,lon_0 = 100)
map.drawcoastlines()
map.drawcountries()
map.drawrivers(color='blue',linewidth=0.3)
CHN='G:\python_material\MapOfChina'
map.readshapefile(CHN+'\gadm36_CHN_shp\gadm36_CHN_1',drawbounds=True)
map.readshapefile(CHN+'\gadm36_TWN_shp\gadm36_TWN_1',drawbounds=True)
parallels = np.linspace(3,True])
plt.title(r'$China\ Map$',fontsize=24)

plt.show()

以上就是利用python繪製中國地圖的詳細內容,更多關於python 繪製地圖的資料請關注我們其它相關文章!