利用python繪制中國(guó)地圖(含省界、河流等)
我們可以使用Basemap這個(gè)工具包來(lái)實(shí)現(xiàn)中國(guó)地圖的繪制
首先需要加載一些包:
import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.basemap import Basemap
Basemap包就是氣象畫(huà)圖的利器,現(xiàn)在我們就可以愉快的畫(huà)圖了!
plt.figure(1)map=Basemap()map.drawcoastlines()plt.title(r’$World Map$’,fontsize=24)plt.show()
第2行創(chuàng)建一個(gè)地圖,第3行添加海岸線,這樣一個(gè)世界地圖就出來(lái)了,怎么樣,很簡(jiǎn)單吧。(plt.show()這行代碼是用來(lái)顯示圖片的)
我們發(fā)現(xiàn)這只是海岸線圖,那么怎么將國(guó)界線添加上去呢?很簡(jiǎn)單,只要添加一行代碼就可以了。
map.drawcountries()
那么怎么添加河流呢?可能有些同學(xué)已經(jīng)猜到了,就是drawrivers()
map.drawrivers(color=’blue’,linewidth=0.3)
好了,現(xiàn)在我們可以開(kāi)始畫(huà)中國(guó)地圖了!其實(shí)只要在創(chuàng)建地圖時(shí)指定一下范圍就可以了,查閱資料發(fā)現(xiàn),中國(guó)的經(jīng)緯度范圍是東經(jīng)135度2分30秒-東經(jīng)73度40分,北緯3度52分-北緯53度33分。
map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54)
好了,一個(gè)中國(guó)地圖就出來(lái)了!但是我們發(fā)現(xiàn),好像少了點(diǎn)什么,沒(méi)錯(cuò)就是省界。我們可以在https://gadm.org/download_country_v3.html下載中國(guó)大陸和臺(tái)灣省的行政區(qū)域的shape文件,下載后解壓,然后加入下面的代碼。
CHN=’G:python_materialMapOfChina’
CHN的值就是解壓后的地圖文件所在的地址。下面我們就可以加入省界了!
map.readshapefile(CHN+’gadm36_CHN_shpgadm36_CHN_1’, ’states’,drawbounds=True)
別忘了把臺(tái)灣省加上去
map.readshapefile(CHN+’gadm36_TWN_shpgadm36_TWN_1’, ’taiwan’,drawbounds=True)
還可以在地圖上加上經(jīng)緯度,比如我們要畫(huà)5條經(jīng)緯線,可以這么做:
parallels = np.linspace(3,55,5)map.drawparallels(parallels,labels=[True,False,False,False])meridians = np.linspace(70,140,5)map.drawmeridians(meridians,labels=[False,False,False,True])
大功告成!但是,emmm,我們發(fā)現(xiàn)好像有點(diǎn)歪?我們可以在創(chuàng)建地圖時(shí)選擇投影參數(shù)。
map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=137,urcrnrlat=54, projection = ’lcc’, lat_1 = 33, lat_2 = 45, lon_0 = 100)
這回正式的完成了!
附上所有代碼:
import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.basemap import Basemapplt.figure(1)map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54, projection = ’lcc’, lat_1 = 33, lat_2 = 45, lon_0 = 100)map.drawcoastlines()map.drawcountries()map.drawrivers(color=’blue’,linewidth=0.3)CHN=’G:python_materialMapOfChina’map.readshapefile(CHN+’gadm36_CHN_shpgadm36_CHN_1’, ’states’,drawbounds=True)map.readshapefile(CHN+’gadm36_TWN_shpgadm36_TWN_1’, ’taiwan’,drawbounds=True)parallels = np.linspace(3,55,5)map.drawparallels(parallels,labels=[True,False,False,False])meridians = np.linspace(70,140,5)map.drawmeridians(meridians,labels=[False,False,False,True])plt.title(r’$China Map$’,fontsize=24)plt.show()
以上就是利用python繪制中國(guó)地圖的詳細(xì)內(nèi)容,更多關(guān)于python 繪制地圖的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. Kotlin + Flow 實(shí)現(xiàn)Android 應(yīng)用初始化任務(wù)啟動(dòng)庫(kù)2. 基于javascript處理二進(jìn)制圖片流過(guò)程詳解3. Gitlab CI-CD自動(dòng)化部署SpringBoot項(xiàng)目的方法步驟4. ajax請(qǐng)求添加自定義header參數(shù)代碼5. 使用python 計(jì)算百分位數(shù)實(shí)現(xiàn)數(shù)據(jù)分箱代碼6. ASP基礎(chǔ)知識(shí)VBScript基本元素講解7. ASP中解決“對(duì)象關(guān)閉時(shí),不允許操作。”的詭異問(wèn)題……8. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)9. 教你如何寫(xiě)出可維護(hù)的JS代碼10. 使用Python和百度語(yǔ)音識(shí)別生成視頻字幕的實(shí)現(xiàn)
