• mac 下 basemap 安装,以及踩的一些小坑


    数据分析的是可视化不可或缺的,当学习到利用basemap来绘图时,环境又是恶心人的一件事。。

    1.安装

    我在谷歌逛了一圈,发现大多人下载必要文件基本使用pip 或者借助包管理器,‘省时省力’原则我选择了后者。

    在mac下的家酿是不错的选择,然而我在conda官网https://matplotlib.org/basemap/users/installing.html,发现步骤给的十分详细。

    然后我使用conda安装,建议也不要一个个文件去下载了,直接:conda install  basemap

    conda会自动找需要的依赖下载

    2.检测

    import matplotlib.pyplot as plt
    %matplotlib inline
    from mpl_toolkits.basemap import Basemap
    
    plt.figure(figsize=(12,9))
    
    m.drawcoastlines(linewidth=1.5)
    m.drawmapboundary()   # 绘制边界
    m.fillcontinents()   # 填充大陆,发现填充之后无法显示散点图,应该是被覆盖了
    m.drawstates()        # 绘制州
    m.drawcoastlines(linewidth=1.5)    # 绘制海岸线
    m.drawcountries()     # 绘制国家
    # m.drawcounties()      # 绘制县
    
    plt.show()
    '''关键词	描述
    llcrnrlon	所需地图域的左下角经度(度)。
    llcrnrlat	所需地图域的左下角纬度(度)。
    urcrnrlon	所需地图域右上角的经度(度)。
    urcrnrlat	所需地图域右上角的纬度(度)。
    projectiont----投影关键字(map样式)'''
    

      

    3.error出现

    KeyError: 'PROJ_LIB'

    refer 大佬的解决办法

    查完资料,是由于python版本的问题导致的。

    直接原因是:系统找不到这个叫做PROJ_LIB的环境变量,所以报错了。

    根本原因:调用basemap模块的时候会调用basemap所依赖的proj4模块,所以当时在anaconda上安装basemap模块的时候细心的铁汁可以看到相应的也安装了proj4这个模块。但是最坑的是,anaconda root下安装proj4的时候不会主动给你设置proj4模块的环境变量,所以就导致的现在这样的错误。

    解决方案:

    方案1) :可以在anaconda下建立一个新环境(env),参考文章:https://blog.csdn.net/weixin_39278265/article/details/82982937

    再进行之前的步骤1(安装)和2(验证),就可以了。

    方案2):先将Anaconda安装目录下找到proj4的安装路径,我的是在:D:softwareAnacondapkgsproj4-4.9.3-hfa6e2cd_8,然后打开这个文件夹,进入Library -> share 文件夹,将里面的文件全选并复制,粘贴到 D:softwareAnacondashareproj 这个文件夹下(如果Anaconda根目录下没有这个proj文件夹,就创建一个)。

    方法二 我尝试过,但是注意路径:Library这文件夹没了,下面直接就是share,还有就是依赖版本变了,更具自己具体情况来改变

    然后失败了

    error原因都是一样的,我才用下面的解决办法:局部更改变量

    import os
    import conda
    
    
    conda_file_dir = conda.__file__
    conda_dir = conda_file_dir.split('lib')[0]
    proj_lib = os.path.join(os.path.join(conda_dir, 'share'), 'proj')
    os.environ["PROJ_LIB"] = proj_lib
    
    #这个好使
    

      

    然后又有error

    缺少file

    conda install -c conda-forge basemap-data-hires 

    这下总于完成了

    ps:

     

    conda install -c conda-forge basemap
    conda install -c conda-forge/label/gcc7 basemap
    conda install -c conda-forge/label/broken basemap
    conda install -c conda-forge/label/cf201901 basemap
    conda install -c conda-forge/label/cf202003 basemap

     

     

     

    2020-05-28

     

  • 相关阅读:
    Android随笔使用ViewPager实现简单地图片的左右滑动切换
    简单地Android中图片的三级缓存机制
    Java中怎么遍历map中value值 (转载)
    创建可执行的jar包
    写出优秀的java代码(转载)
    [JS脚本]ajax status 错误定义
    jsonlib 之jsonConfig详细使用(转载写的不错)
    Driver not found Error when sonar server is just not running
    使用Maven生成manifest
    ECMAScript 面向对象技术
  • 原文地址:https://www.cnblogs.com/cheflone/p/12983901.html
Copyright © 2020-2023  润新知