Python 在底图中使用pcolormesh填充区域

Python 在底图中使用pcolormesh填充区域,python,matplotlib,matplotlib-basemap,significance,hatchstyle,Python,Matplotlib,Matplotlib Basemap,Significance,Hatchstyle,我试着只在统计结果显著的区域进行填充。如何使用Basemap和pcolormesh实现这一点 plt.figure(figsize=(12,12)) lons = iris_cube.coord('longitude').points lats = iris_cube.coord('latitude').points m = Basemap(llcrnrlon=lons[0], llcrnrlat=lats[0], urcrnrlon=lons[-1], urcrnrlat=lats[-1]

我试着只在统计结果显著的区域进行填充。如何使用Basemap和pcolormesh实现这一点

plt.figure(figsize=(12,12))

lons = iris_cube.coord('longitude').points
lats = iris_cube.coord('latitude').points

m = Basemap(llcrnrlon=lons[0], llcrnrlat=lats[0], urcrnrlon=lons[-1], urcrnrlat=lats[-1], resolution='l')

lon, lat = np.meshgrid(lons, lats)

plt.subplot(111)

cs = m.pcolormesh(lon, lat, significant_data, cmap=cmap, norm=norm, hatch='/')

似乎
pcolormesh
不支持图案填充(请参阅)。相反,建议使用
pcolor
,从示例开始如下所示:

import matplotlib.pyplot as plt
import numpy as np

dx, dy = 0.15, 0.05
y, x = np.mgrid[slice(-3, 3 + dy, dy),
                slice(-3, 3 + dx, dx)]
z = (1 - x / 2. + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)
z = z[:-1, :-1]
zm = np.ma.masked_less(z, 0.3)

cm = plt.pcolormesh(x, y, z)
plt.pcolor(x, y, zm, hatch='/', alpha=0.)
plt.colorbar(cm)
plt.show()
其中,使用遮罩阵列获取大于0.3的z值,并使用
pcolor
对这些值进行阴影填充

为了避免在顶部绘制另一种颜色(因此只能得到阴影),我将alpha设置为0。在
pcolor
中,感觉有点像黑客。另一种方法是使用面片并指定给所需的区域。看看这个例子。对于底图等而言,这可能比仅选择具有
pcolor
的区域更棘手