小編給大家分享一下matplotlib Basemap中如何加載shp文件,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)建站是專業(yè)的噶爾網(wǎng)站建設(shè)公司,噶爾接單;提供做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行噶爾網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
matplotlib是python中的一個(gè)畫(huà)圖插件;
matplotlib支持二維圖的效果,也支持三維圖的效果,在大數(shù)據(jù)的制作中,可以以地圖為底,在旁邊加上柱狀圖的效果,達(dá)到一個(gè)三維立體的效果,python現(xiàn)成的庫(kù)有很多,這在開(kāi)發(fā)中就比較方便,可以直接import進(jìn)來(lái)使用。
matplotlib的Basemap中包含解析常用的shp格式矢量數(shù)據(jù),通過(guò)讀取shp文件,可以很方便的在Basemap上進(jìn)行畫(huà)圖。
下邊是根據(jù)Basemap的一個(gè)例子,說(shuō)明如何讀取shp,并將shp里的數(shù)據(jù)畫(huà)在地圖上:
#引用相應(yīng)的類庫(kù)
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap as Basemap
# 設(shè)置地圖的坐標(biāo)系和坐標(biāo)顯示范圍
m = Basemap(llcrnrlon=-100.,llcrnrlat=0.,urcrnrlon=-20.,urcrnrlat=57.,
projection='lcc',lat_1=20.,lat_2=40.,lon_0=-60.,
resolution ='l',area_thresh=1000.)
fig=plt.figure()
# 讀取shp文件,注意第二個(gè)參數(shù)是shp文件在地圖里的名稱,接下來(lái)要用的.
shp_info = m.readshapefile('huralll020','hurall',drawbounds=False)
print(shp_info)
#在地圖中找到shp文件,讀取shp文件中的屬性
names = []
for shapedict in m.hurall_info:
cat = shapedict['CATEGORY']
name = shapedict['NAME']
if cat in ['H4','H5'] and name not in names:
if name != 'NOT NAMED': names.append(name)
print(names)
print(len(names))
# 根據(jù)屬性,在地圖上畫(huà)圖
for shapedict,shape in zip(m.hurall_info,m.hurall):
name = shapedict['NAME']
cat = shapedict['CATEGORY']
if name in names:
xx,yy = zip(*shape)
# plot為在地圖上畫(huà)圖
if cat in ['H4','H5']:
m.plot(xx,yy,linewidth=1.5,color='r')
elif cat in ['H1','H2','H3']:
m.plot(xx,yy,color='k')
# 在地圖上畫(huà)其他輔助要素,國(guó)界,經(jīng)緯度線等
m.drawcoastlines()
m.drawcountries()
m.drawmapboundary(fill_color='#99ffff')
m.fillcontinents(color='#cc9966',lake_color='#99ffff')
m.drawparallels(np.arange(10,70,20),labels=[1,1,0,0])
m.drawmeridians(np.arange(-100,0,20),labels=[0,0,0,1])
#設(shè)置圖的標(biāo)題
plt.title('Atlantic Hurricane Tracks (Storms Reaching Category 4, 1851-2004)')
plt.show()
看完了這篇文章,相信你對(duì)“matplotlib Basemap中如何加載shp文件”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!