问题描述
使用 matplotlib
后端,是否可以将图块底图(例如 OSM)添加到 GeoViews
绘图,例如通过以某种方式调用 contextily
?使用 Bokeh
后端,这是通过 gv.tile_sources
完成的,然后将其添加到叠加层,但 mpl
后端是否有类似的功能?
回答后编辑
添加一个可重现的示例,假设在后端之间切换,并在 EPSG:4326 中使用邻域级多边形 gdfs。
最初让我认为无法添加底图的原因是 (1) 未定义 WMTS 缩放级别(导致绘制无法辨认的像素化文本而不是特征),并且在阅读 James 的回答后,(2) 添加了最后,而不是第一个,将瓷砖图层添加到布局,这导致瓷砖覆盖多边形图层(这不是散景后端的问题,但使用 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'],opts.Overlay(backend='matplotlib'),opts.WMTS(zoom=13,backend='matplotlib'),projection=ccrs.Mercator()
)
gv.output(layout,size=500,fig='svg',backend='matplotlib')
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)