使用matplotlib后端,是否可以将诸如OSM之类的切片底图添加到GeoViews绘图中,例如,通过某种方式调用contextily?使用Bokeh后端,这是通过gv.tile_sources完成的,然后将其添加到覆盖中,但mpl后端是否有类似的功能?
应答后编辑
添加一个可重复的示例,假设其中一个正在后端之间切换,并使用EPSG:4326中的邻居级多边形gdfs。
最初让我认为添加底图是不可能的是(1)没有定义WMTS缩放级别(导致无法识别的像素化文本被绘制而不是要素),以及(2)在阅读James的答案后,(2)最后而不是首先向布局添加tiles层,这导致tiles覆盖多边形层(这不是bokeh后端的问题,但对于matplotlib显然很重要)。
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')发布于 2021-08-01 16:58:38
当然可以,same as for Bokeh
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)

https://stackoverflow.com/questions/68586582
复制相似问题