Mac Python+basemap安装

2018-04-19  本文已影响0人  步其

Python需要跳过的安装的坑太太太太多了!!!!!

最近看《利用python进行数据分析》这本书,到可视化的部分,看着最后的例子地图挺酷炫的,跟着敲代码的过程中,发现有时候不是你不会写,是压根都没机会实现代码!!!

作者是这样写的:

image

好的,让我们来导入basemap吧,

image

What?没有包。确实没有包。

来来来,打开cmd(mac终端),pip install basemap

What?

image

还是没有?

连pip大法都失效了。

OK,不要急躁,上百度看看。

找到了官方文档,地址:https://matplotlib.org/basemap/users/installing.html

英文不要怕,认识基本的单词都可以搞定:

image

基本上,现在差的就是PROJ4,GEOS这俩。

安装PROJ4:

打开PROj4安装指引页面http://proj4.org/install.html,拉到页面底部:

image

安装GEOS:打开geos页面,好像有点难搞,没关系,继续brew install就好。

image

稍稍等待会~

基本没什么问题顺利安装。

第三步,下载basemap。

pip install basemap?

image

找不到?找不到?不是在和我开玩笑?

去镜像网站找找https://www.lfd.uci.edu/~gohlke/pythonlibs/,居然没有支持mac的版本。

上basemap的来源网站下载:https://pypi.org/project/basemap/1.0.7/

image

迅雷弹窗:

image

Basemap不是传说中很大的文件嘛?才200多kb,和我开玩笑呢吧。

别急,复制下载地址:https://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz

不知道为什么,反正是弹窗变成大的文件了,最关键的是迅雷走字了,终于下载了。

image

cd到basemap解压缩后的文件夹下。
看到有评论问我怎么cd到指定的文件夹下:
如果是win的话,打开command窗口,输入 cd 文件路径,比如你要cd到d盘的basemap文件夹下就输入:
cd d:/basemap
文件夹的路径从目标文件夹的属性/地址栏都可以找到。
Mac用户的话,打开terminal终端,cd 把目标文件夹拖入终端窗口即可。

Python3的朋友们,输入 python3 setup.py install

等待完成安装。

输入python3,测试一下是否成功

image

可以导入了,应该没问题。

在jupyter尝试也成功了··……没白费功夫。下载basemap有问题的童鞋,留言我后面放个网盘链接上来~~

image

That’s all~~~

撒花~~~

终于实现了书里的图

image

自己Mac+python3_jupyter尝试,发现原书作者的代码如下:

fig,axes=plt.subplots(nrows=2,ncols=2,figsize=(12,10))
fig.subplots_adjust(hspace=0.05,wspace=0.05)
to_plot=['2a','1','3c','7a']
lllat=17.25;urlat=20.25;lllon=-75;urlon=-71
for code,ax in zip(to_plot,axes.flat):
    m=basic_haiti_map(ax,lllat=lllat,urlat=urlat,lllon=lllon,urlon=urlon) 
    cat_data=data[data['category_%s' % code]==1] 
    #计算地图坐标投影 
    x,y=m(cat_data.LONGITUDE.values,cat_data.LATITUDE.values) m.plot(x,y,'k.',alpha=0.5)
    ax.set_title('%s: %s' %(code,english_mapping[code]))

但是怎么执行都不成功。

参考了书里带的notebook,只需将

#计算地图坐标投影   
x,y=m(cat_data.LONGITUDE,cat_data.LATITUDE)

改为:


#计算地图坐标投影    
x,y=m(cat_data.LONGITUDE.values,cat_data.LATITUDE.values)

即可。

上一篇下一篇

猜你喜欢

热点阅读