首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GeoViews:使用matplotlib后台添加切片底图

GeoViews:使用matplotlib后台添加切片底图
EN

Stack Overflow用户
提问于 2021-07-30 06:50:10
回答 1查看 82关注 0票数 0

使用matplotlib后端,是否可以将诸如OSM之类的切片底图添加到GeoViews绘图中,例如,通过某种方式调用contextily?使用Bokeh后端,这是通过gv.tile_sources完成的,然后将其添加到覆盖中,但mpl后端是否有类似的功能?

应答后编辑

添加一个可重复的示例,假设其中一个正在后端之间切换,并使用EPSG:4326中的邻居级多边形gdfs。

最初让我认为添加底图是不可能的是(1)没有定义WMTS缩放级别(导致无法识别的像素化文本被绘制而不是要素),以及(2)在阅读James的答案后,(2)最后而不是首先向布局添加tiles层,这导致tiles覆盖多边形层(这不是bokeh后端的问题,但对于matplotlib显然很重要)。

代码语言:javascript
复制
import geoviews as gv
from geoviews import opts
from cartopy import crs as ccrs

gv.extension('bokeh', 'matplotlib')

tiles = gv.tile_sources.OSM()

layout = tiles * gv.Polygons(gdf1, group="group1") * gv.Polygons(gdf2, group="group2")

layout.opts(
            opts.Polygons('group1', cmap=['red'], backend="matplotlib"),
            opts.Polygons('group2', cmap=['lightgrey'], backend="matplotlib"),
            opts.Overlay(backend='matplotlib'),
            opts.WMTS(zoom=13, backend='matplotlib'),
            projection=ccrs.Mercator()
        )
        
gv.output(layout, size=500, fig='svg', backend='matplotlib')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-01 16:58:38

当然可以,same as for Bokeh

代码语言:javascript
复制
import geoviews as gv
from geoviews import opts, tile_sources as gvts
gv.extension('matplotlib')

opts.defaults(
    opts.Layout(sublabel_format='', vspace=0.1, hspace=0.1, fig_size=200),
    opts.WMTS(zoom=0))

(gvts.Wikipedia + gvts.StamenToner + gvts.EsriNatGeo + gvts.EsriImagery +
 gvts.EsriUSATopo + gvts.EsriTerrain + gvts.EsriReference + gvts.StamenTerrain).cols(4)

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

https://stackoverflow.com/questions/68586582

复制
相关文章

相似问题

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