摘要: 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_())