您好,登錄后才能下訂單哦!
我們可以使用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()這行代碼是用來顯示圖片的)
我們發現這只是海岸線圖,那么怎么將國界線添加上去呢?很簡單,只要添加一行代碼就可以了。
map.drawcountries()
那么怎么添加河流呢?可能有些同學已經猜到了,就是drawrivers()
map.drawrivers(color='blue',linewidth=0.3)
好了,現在我們可以開始畫中國地圖了!
其實只要在創建地圖時指定一下范圍就可以了,查閱資料發現,中國的經緯度范圍是東經135度2分30秒-東經73度40分,北緯3度52分-北緯53度33分。
map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=139,urcrnrlat=54)
好了,一個中國地圖就出來了!但是我們發現,好像少了點什么,沒錯就是省界。我們可以在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)
還可以在地圖上加上經緯度,比如我們要畫5條經緯線,可以這么做:
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,我們發現好像有點歪?我們可以在創建地圖時選擇投影參數。
map=Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=137,urcrnrlat=54, projection = 'lcc', lat_1 = 33, lat_2 = 45, lon_0 = 100)
這回正式的完成了!
附上所有代碼:
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap plt.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_material\MapOfChina' map.readshapefile(CHN+'\gadm36_CHN_shp\gadm36_CHN_1', 'states',drawbounds=True) map.readshapefile(CHN+'\gadm36_TWN_shp\gadm36_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繪制中國地圖的詳細內容,更多關于python 繪制地圖的資料請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。