matplotlib之Basemap与PyQt4的例子

matplotlib之Basemap与PyQt4的例子

2017-10-30 作者: xuzhiping 浏览: 4171 次

摘要: Basemap简介 Basemap是matplotlib提供的用于在地图上绘制二维数据的工具。 安装 它不是matplotlib默认安装的一部分(源码竟然包竟然100M以上,难怪不被默认包含)。所以需要我们自己动手安装: https://github.com...

Basemap简介

Basemap是matplotlib提供的用于在地图上绘制二维数据的工具。

安装

它不是matplotlib默认安装的一部分(源码竟然包竟然100M以上,难怪不被默认包含)。所以需要我们自己动手安装:

https://github.com/matplotlib/basemap

通过git或者直接下载压缩的源码包。而后解压,查看README

我使用的Ubuntu 11.04,先安装一些东西

sudo apt-get install python-matplotlib swig python2.7-dev

而后按照安装说明:

进入 GEOS 子目录

./configure --enable-python
make
sudo make install

回到顶级目录

sudo python setup.py install

运行例子

按照README,运行例子确认安装是否成功,切换到examples目录,运行simpletest.py

python simpletest.py

嵌入到PyQt4

basemap 例子中有一个wxpython的例子 embedding_map_in_wx.py

我们参考它写一个pyqt4的例子,运行起来

代码如下:

"""
An example of how to use Basemap in pyqt4 application.

Copyright(C) 2011 dbzhang800#gmail.com
"""

from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
from mpl_toolkits.basemap import Basemap
from PyQt4 import QtGui

class Widget(FigureCanvas):
    def __init__(self, parent=None, width=5, height=4, dpi=100):
        fig = Figure(figsize=(width, height), dpi=100)
        FigureCanvas.__init__(self, fig)
        self.setParent(parent)
        self.axes = fig.add_subplot(111)

        map = Basemap(ax=self.axes)
        map.drawcoastlines()
        map.drawcountries()
        map.drawmapboundary()
        map.fillcontinents(color='coral', lake_color='aqua')
        map.drawmapboundary(fill_color='aqua')

        self.setWindowTitle("PyQt4 and Basemap -- dbzhang800")

if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org