首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用matplotlib-basemap在绘图中添加一个多边形

使用matplotlib-basemap在绘图中添加一个多边形
EN

Stack Overflow用户
提问于 2013-10-18 07:55:24
回答 1查看 2.3K关注 0票数 3

我有以下代码:

代码语言:javascript
复制
from mpl_toolkits.basemap import Basemap
map = Basemap(projection='merc', lat_0=50, lon_0=4,
    resolution = 'l', area_thresh = 0.1,
    llcrnrlon=4, llcrnrlat=50,
    urcrnrlon=40, urcrnrlat=60)

map.drawcoastlines(linewidth=0.15)
map.drawcountries(linewidth=0.15)
map.fillcontinents(color='brown',lake_color='white')
map.drawmapboundary(fill_color='white')

在这张地图的顶部,我想显示一个shapefile,它只包含一个多边形。多边形定义了一个封闭区域。我已经找到了关于如何从一个shapefile手动添加多边形或绘制多个多边形的不同教程,但我无法为我的情况这样做。shapefile属性表仅由两个字段组成:'c‘和'area’。

现在我已经到了这里

代码语言:javascript
复制
import shapefile

s = shapefile.Reader(filepath,'c',drawbounds=False)
shapes = s.shapes()
records = s.records()
for record, shape in zip(records,shapes):
    lons,lats = zip(*shape.points)
    data = np.array(map(lons, lats)).T
x, y =map(lons,lats) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-11 07:03:02

有同样的问题,但它是如此简单,以至于您从未想过要在网络上使用许多教程和模块,以及类似的问题:

代码语言:javascript
复制
map.readshapefile('luthuania', 'any_name_you_like', drawbounds=True)

因此,对于你的例子:

代码语言:javascript
复制
from mpl_toolkits.basemap import Basemap
map = Basemap(projection='merc', lat_0=50, lon_0=4,
    resolution = 'l', area_thresh = 0.1,
    llcrnrlon=4, llcrnrlat=50,
    urcrnrlon=40, urcrnrlat=60)

map.readshapefile('luthuania', 'any_name_you_like', drawbounds=True, linewidth=2, color='b')

map.drawcoastlines(linewidth=0.15)
map.drawcountries(linewidth=0.15)
map.fillcontinents(color='brown',lake_color='white')
map.drawmapboundary(fill_color='white')

这给

顺便说一句,模块shapefile是Basemap在引擎盖下面使用的:请参阅C:\Python33\Lib\site-packages\mpl_toolkits\basemap\shapefile.py

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19444428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档