【问题标题】:Make a transparent plot with cartopy用 cartopy 做一个透明的图
【发布时间】:2015-07-16 13:54:24
【问题描述】:

我想用 Cartopy 创建一个透明地图(然后可以用作 Web 应用程序的叠加层)。

尝试过多种设置、投影、绘图类型等,但从未设法获得透明的 Cartopy 地图。

下面是一个简单的例子,说明透明度如何在 Cartopy 中不起作用,以及在不使用 Cartopy 的情况下如何起作用。

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np

#some data:
shape=(20, 30)
scale = 30
x = np.linspace(-scale, scale, shape[1])
y = np.linspace(-scale, scale, shape[0])

x2d, y2d = np.meshgrid(x, y)
u = 10 * np.cos(2 * x2d / scale + 3 * y2d / scale)
v = 20 * np.cos(6 * x2d / scale)

#cartopy
ef, ax = plt.subplots(1,1,figsize=(10,8), subplot_kw={'projection': ccrs.GOOGLE_MERCATOR})    
ef.subplots_adjust(hspace=0.0,wspace=0,bottom=0,top=1,left=0,right=1)

ax.quiver(x2d,y2d, u, v, transform=ccrs.GOOGLE_MERCATOR)

plt.savefig('cartopy_opaque.png',transparent=True)
plt.close()

#pure matplotlib:
ef, ax = plt.subplots(1,1,figsize=(10,8))    
ef.subplots_adjust(hspace=0.0,wspace=0,bottom=0,top=1,left=0,right=1)

ax.quiver(x2d,y2d, u, v)
plt.savefig('noncartopy_transparent.png',transparent=True)
plt.close()

我在这里遗漏了什么,还是透明度不适用于 Cartopy?

【问题讨论】:

    标签: python matplotlib transparency cartopy


    【解决方案1】:

    我在这里遗漏了什么,还是透明度不适用于 Cartopy?

    是和否。Cartopy 的透明度与 matplotlib 的不同。造成这种情况的原因有很多,但主要原因是 cartopy 具有高度非矩形的轴(例如 Interrupted Goode Homolosine):

    因此,有两个补丁需要控制透明度:ax.background_patchax.outline_patch

    以下内容就足够了:

    ax.outline_patch.set_visible(False)
    ax.background_patch.set_visible(False)
    

    在 github 问题跟踪器上有一个类似的问题: https://github.com/SciTools/cartopy/issues/465

    我还整理了一个生成地图图块的示例,这在很大程度上依赖于制作透明地图:https://gist.github.com/pelson/9738051

    HTH

    【讨论】:

      【解决方案2】:

      我发现了一个类似的问题here。添加

      ax.background_patch.set_alpha(0)
      

      应该解决这个问题。

      【讨论】:

      • 感谢您的回答并将我指向 github 跟踪器!但是,我已将 @pelson 的答案标记为已接受,因为它提供了有关该问题的更多详细信息。
      猜你喜欢
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      相关资源
      最近更新 更多