99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀神器-可視化分析之Basemap入門詳
神器-可視化分析之Basemap入門詳
2021-11-18
收藏

作者:潮汐

來源:Python 技術(shù)

今天咱們講解一個畫地圖神器-BaseMap,看看這個神器講給我們帶來怎樣的使用體驗(yàn)。

BaseMap 簡介

在之前的文章中,我們有講解過關(guān)于畫圖神器-Matplotlib 的文章,其實(shí) Basemap 工具包就是 Matplotlib 包的子包,一個用于在 Python 繪制 2D 數(shù)據(jù)至地圖的庫,它提供了將坐標(biāo)轉(zhuǎn)化為 25 種不同地圖投影的功能,然后調(diào)用 Matplotlib 擴(kuò)展包繪制輪廓、圖像和坐標(biāo)點(diǎn)等。

該擴(kuò)展包提供了海岸線、河流、政治邊界數(shù)據(jù)集以及繪制方法。其中 GEOS 庫在內(nèi)部用于將海岸線和邊界特征剪切到所需的地圖投影區(qū)域。下面給出官網(wǎng)的翻譯示例,源地址:

https://matplotlib.org/basemap/users/geography.html

Basemap 包括 GSSH(現(xiàn)在是GSHHG)海岸線數(shù)據(jù)集以及 GMT 格式的河流、州和國家邊界的數(shù)據(jù)集。這些數(shù)據(jù)集可以用來以不同的分辨率繪制海岸線、河流和政治邊界地圖。相關(guān)方法如下:

  • drawcoastlines(): 繪制海岸線。
  • fillcontinents(): 通過填充海岸線多邊形為地圖著色。
  • drawcountries(): 繪制國家邊界。
  • drawstates(): 在北美繪制狀態(tài)邊界。
  • drawrivers(): 繪制河流。

此外,可以將圖像用作地圖背景,而不是繪制海岸線和政治邊界。Basemap提供了以下幾個選項(xiàng):

  • drawlsmask(): 繪制高分辨率的海陸圖像,指定陸地和海洋的顏色,數(shù)據(jù)源于 GSHHS 海岸線。
  • bluemarble(): 繪制 NASA 藍(lán)色大理石圖像作為地圖背景。
  • shadedrelief(): 繪制陰影浮雕圖像作為地圖背景。
  • etopo(): 繪制一張 etopo 浮雕圖像作為地圖背景。
  • warpimage(): 使用 abitrary 圖像作為地圖背景,必須是全球的,從國際日東線向東和南極以北覆蓋世界。

Basemap 安裝

Basemap 安裝我們從非官網(wǎng)網(wǎng)站下載下面兩個擴(kuò)展包,安裝包名稱中的 cp37 表示 Python3.7 版本,這個根據(jù) Python 版本安裝對應(yīng)的包即可,Windows下 64 位環(huán)境加 amd64,你需要找到適合自己環(huán)境的文件。

basemap-1.2.2-cp37-cp37m-win_amd64.whl pyproj-3.0.1-cp37-cp37m-win_amd64.whl

下載地址為:

https://www.lfd.uci.edu/~gohlke/pythonlibs/

下載圖片如下:

神器-可視化分析之Basemap入門詳
神器-可視化分析之Basemap入門詳

下載好后將下載的whl文件放入Python安裝的 Script 文件夾下,如下圖所示:

神器-可視化分析之Basemap入門詳

安裝語句如下:

pip install basemap-1.2.2-cp37-cp37m-win_amd64.whl 

如下圖即為安裝成功。

神器-可視化分析之Basemap入門詳

Basemap實(shí)例

繪制海岸線、填充海洋和陸地區(qū)域

from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt # 設(shè)置basemap-Lambert Conformal  m = Basemap(width=12000000,height=9000000,projection='lcc',
            resolution='c',lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.) # 繪制海岸線 m.drawcoastlines() # 在地圖周圍繪制邊界并填充背景aqua(這個背景最終成為海洋的顏色) # 將大洲繪制在最上面 m.drawmapboundary(fill_color='aqua') # 填充大陸coral顏色,并設(shè)置湖泊顏色為 aqua m.fillcontinents(color='coral',lake_color='aqua')
plt.show()

運(yùn)行結(jié)果如下圖:

神器-可視化分析之Basemap入門詳

總結(jié)

今天的文章就到這里啦,有機(jī)會大家可以一起一探此款神器的神秘。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }