查看所需版本
首先打開cmd,輸入以下命令:
python -m pip debug --verbose
得到的結果如下:
WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command may change without notice.
pip version: pip 20.0.2 from C:\Users\12345\anaconda3\lib\site-packages\pip (python 3.7)
sys.version: 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]
sys.executable: C:\Users\12345\anaconda3\python.exe
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: cp936
sys.platform: win32
sys.implementation:
name: cpython
'cert' config value: Not specified
REQUESTS_CA_BUNDLE: None
CURL_CA_BUNDLE: None
pip._vendor.certifi.where(): C:\Users\12345\anaconda3\lib\site-packages\pip\_vendor\certifi\cacert.pem
Compatible tags: 27
cp37-cp37m-win_amd64
cp37-abi3-win_amd64
cp37-none-win_amd64
cp36-abi3-win_amd64
cp35-abi3-win_amd64
cp34-abi3-win_amd64
cp33-abi3-win_amd64
cp32-abi3-win_amd64
py37-none-win_amd64
py3-none-win_amd64
py36-none-win_amd64
py35-none-win_amd64
py34-none-win_amd64
py33-none-win_amd64
py32-none-win_amd64
py31-none-win_amd64
py30-none-win_amd64
cp37-none-any
py37-none-any
py3-none-any
py36-none-any
py35-none-any
py34-none-any
py33-none-any
py32-none-any
py31-none-any
py30-none-any
從中可以看出,我們需要的是Python3.7對應的basemap
官網地址為:
https://www.lfd.uci.edu/~gohlke/pythonlibs/
可以通過Ctrl+F,搜索頁面中的basemap,找到對應的版本,Python3.7對應的是cp37,然后通過python -m pip debug --verbose
命令得知,應該下載cp37-cp37m-win_amd64版本
另外,同樣的方法,搜索pyproj,
下載所需的文件
需要下載的兩個東西分別是basemap‑1.2.2‑cp37‑cp37m‑win_amd64.whl
和pyproj‑2.6.1.post1‑cp37‑cp37m‑win_amd64.whl
反正我通過官網是下載不了的,
歷經千辛萬苦,我找到了Python3.7和Python3.9版本對應的兩個文件
還有一個Python3.6的,不過對應的basemap的版本不是最新版的,可能用不了
鏈接:https://pan.baidu.com/s/1PwBI-Zcf33Xk3rZUMwy45Q
提取碼:cyx6
安裝
我建議將這兩個文件和其他Python庫放在一起,比如我把它拷貝到C:\Users\12345\anaconda3\Lib\site-packages目錄下,當然這不是必要的。
你可以在cmd中通過cd命令進入這兩個文件所在的路徑,也可以直接在那個文件夾的左上方輸入cmd
然后依次輸入以下指令
pip install pyproj-2.4.2.post1-cp37-cp37m-win_amd64.whl
pip install basemap-1.2.2-cp37-cp37m-win_amd64.whl
測試
安裝完成后,打開pycharm
創建一個test.py文件
測試代碼:
例1
# 首先導入basemap和matplotlib兩個包,兩者都是必要的。
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
# 新建第一個地圖
map = Basemap()
# 在使用 Basemap 類創建地圖時具有許多選項。
# 在沒有傳遞任何選項的 情況下,地圖具有以經度 =0 和緯度 = 0 為中心的 Plate Carrée 投影(等距圓柱投影)。
# 繪制海岸線
map.drawcoastlines()
# 如果使用單獨的python程序(.py文件),需要下面這句話才能看到圖
plt.show()
例2
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
#運用 Basemap 函數我們可以在繪圖區域中繪制地理信息相關的圖像,當參數 projection 的值為 'ortho' #時,我們將得到一個如下所示的地球儀截面:
plt.figure(figsize=(8, 8))
m = Basemap(projection='ortho', resolution=None, lat_0=50, lon_0=-100)
m.bluemarble(scale=0.5)
plt.show()
例3
# 將參數 projection 的值設置為 'lcc' 時,我們可以通過經緯度設置來得到某一區域的局部地圖:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
fig = plt.figure(figsize=(8, 8))
m = Basemap(projection='lcc', resolution=None,
width=8E6, height=8E6,
lat_0=45, lon_0=-100,)
m.etopo(scale=0.5, alpha=0.5)
# 將經緯度映射為 (x, y) 坐標,用於繪制圖像
x, y = m(-122.3, 47.6)
plt.plot(x, y, 'ok', markersize=5)
plt.text(x, y, ' Seattle', fontsize=12)
plt.show()