如何在 cartopy 地图的顶部叠加矢量注释图像?
How to overlay a vector annotation image on the top of a cartopy map?
如何在cartopy地图的顶部叠加矢量注释图像?
import cartopy.io.img_tiles as cimgt
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
class TDT(cmigt.GoogleWTS):
def _image_url(self, tile):
x, y, z = tile
url = 'http://t1.tianditu.gov.cn/DataServer?T=vec_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, mykey)
return url
class TDT_1(cmigt.GoogleWTS):
def _image_url(self, tile):
x, y, z = tile
url = 'http://t1.tianditu.gov.cn/DataServer?T=cva_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, mykey)
return url
def make_map(projection=ccrs.PlateCarree()):
fig, ax = plt.subplots(figsize=(9, 13),subplot_kw=dict(projection=projection))
gl = ax.gridlines(draw_labels=True)
gl.xlabels_top = gl.ylabels_right = False
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
return fig, ax
extent = [105, 106, 35.5, 36.5]
request = TDT()
request_1=TDT_1()
fig, ax = make_map(projection=request.crs)
ax.set_extent(extent)
ax.add_image(request, 10)
ax.add_image(request_1, 10) #Can't to add another image,how to let it to display on the top of the map.
plt.show()
我想获取带有矢量注释的合并图像,但我只获取了其中一张图像。
我该怎么办?
当您将两个图像叠加在一起绘制时,顶部图像将完全隐藏底部,除非您允许顶部图像具有一定的透明度。在您的情况下,您可以使用以下代码设置第二张图片:
ax.add_image(request_1, 10, alpha=0.6)
alpha值:
0 is 100% transparent
1 is 100% opaque
您需要一个介于 0 和 1 之间的合适值。
在某些情况下,可能需要 zorder
选项。
ax.add_image(request, 10, zorder=10)
ax.add_image(request_1, 10, alpha=0.6, zorder=20)
希望这对您有所帮助。
如何在cartopy地图的顶部叠加矢量注释图像?
import cartopy.io.img_tiles as cimgt
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
class TDT(cmigt.GoogleWTS):
def _image_url(self, tile):
x, y, z = tile
url = 'http://t1.tianditu.gov.cn/DataServer?T=vec_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, mykey)
return url
class TDT_1(cmigt.GoogleWTS):
def _image_url(self, tile):
x, y, z = tile
url = 'http://t1.tianditu.gov.cn/DataServer?T=cva_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, mykey)
return url
def make_map(projection=ccrs.PlateCarree()):
fig, ax = plt.subplots(figsize=(9, 13),subplot_kw=dict(projection=projection))
gl = ax.gridlines(draw_labels=True)
gl.xlabels_top = gl.ylabels_right = False
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
return fig, ax
extent = [105, 106, 35.5, 36.5]
request = TDT()
request_1=TDT_1()
fig, ax = make_map(projection=request.crs)
ax.set_extent(extent)
ax.add_image(request, 10)
ax.add_image(request_1, 10) #Can't to add another image,how to let it to display on the top of the map.
plt.show()
我想获取带有矢量注释的合并图像,但我只获取了其中一张图像。 我该怎么办?
当您将两个图像叠加在一起绘制时,顶部图像将完全隐藏底部,除非您允许顶部图像具有一定的透明度。在您的情况下,您可以使用以下代码设置第二张图片:
ax.add_image(request_1, 10, alpha=0.6)
alpha值:
0 is 100% transparent
1 is 100% opaque
您需要一个介于 0 和 1 之间的合适值。
在某些情况下,可能需要 zorder
选项。
ax.add_image(request, 10, zorder=10)
ax.add_image(request_1, 10, alpha=0.6, zorder=20)
希望这对您有所帮助。