Repository: SciTools/cartopy

Issue:
pcolormesh on stereographic CRS does not display missing values as white
### Description
Normally, plotting missing data (or np.NaN) will render those grid points as white on the map. However, this does not happen with the combination of `pcolormesh` on the Stereographic projection, for my global data. Then, the color of zero seems to be used. 

What DOES work is: 
- Stereographic + contourf
- Orthographic + pcolormesh

And what does NOT is:
- Stereographic + pcolormesh

Curiously, I could not reproduce this behaviour using the non-global `xr.tutorial.load_dataset('air_temperature')` dataset from Xarray. No clue to why that is. See this example in [this Jupyter notebook](https://github.com/lvankampenhout/bug-reports/tree/master/cartopy-MVs-stereo). 

![minimum_example](https://user-images.githubusercontent.com/7933853/59548280-45559080-8f4d-11e9-8fdb-734dd548d757.png)

#### Code to reproduce

```
import cartopy
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import xarray as xr
import cartopy.crs as ccrs

# download file here: https://github.com/lvankampenhout/bug-reports/blob/master/cartopy-MVs-stereo/tmp.nc
da2 = xr.open_dataarray('tmp.nc') # evaporative flux
da2 = da2.drop(('lat2d', 'lon2d'))

# Mask values above 100 and below 0 (arbitrary)
data2 = da2
data2 = xr.where(data2>100, np.NaN, data2)
data2 = xr.where(data2<0, np.NaN, data2) 

fig = plt.figure(figsize=(10,5))
gs = gridspec.GridSpec(1,2,figure=fig)
lon = data.lon
lat = data.lat
lon2d, lat2d = np.meshgrid(lon,lat)


proj_stereo = ccrs.Stereographic(central_longitude=320, central_latitude=72) 
proj_ortho = ccrs.Orthographic(central_longitude=320, central_latitude=72) 

ax1 = fig.add_subplot(gs[0,0], projection=proj_stereo)
ax2 = fig.add_subplot(gs[0,1], projection=proj_ortho)

extent = [200, 340, 20, 84]

for ax in (ax1,ax2):

    ax.set_extent(extent, crs=ccrs.PlateCarree())
    ax.coastlines()

    # Xarray plotting syntax
    #data2.plot.contourf(ax=ax, transform=ccrs.PlateCarree(), robust=True) # Good
    data2.plot.pcolormesh(ax=ax, transform=ccrs.PlateCarree(), robust=True) # Bad

    # Matplotlib plotting syntax
    #cn = ax.pcolormesh(lon2d, lat2d, data.to_masked_array(), transform=ccrs.PlateCarree())
    #plt.colorbar(cn,ax=ax)

ax1.set_title('Stereographic')
ax2.set_title('Orthographic')
    
fig.savefig('minimum_example.png')
```


<details>
 <summary>Full environment definition</summary>

<!-- fill in the following information as appropriate -->

### Operating system
OSX 10.13

### Cartopy version
0.16

### conda list

```
# Name                    Version                   Build  Channel
_license                  1.1                      py36_1
_nb_ext_conf              0.4.0                    py36_1
affine                    2.1.0              pyh128a3a6_1
alabaster                 0.7.9                    py36_0
anaconda                  custom                   py36_0
anaconda-client           1.6.0                    py36_0
anaconda-navigator        1.6.3                    py36_0
anaconda-project          0.4.1                    py36_0
appnope                   0.1.0                    py36_0
appscript                 1.0.1                    py36_0
asn1crypto                0.24.0                   py36_0
astroid                   1.4.9                    py36_0
astropy                   1.3                 np111py36_0
attrs                     17.4.0                   py36_0
babel                     2.3.4                    py36_0
backports                 1.0                      py36_0
bash-kernel               0.7.1                    pypi_0    pypi
beautifulsoup4            4.5.3                    py36_0
bitarray                  0.8.1                    py36_0
blas                      1.0                         mkl
blaze                     0.10.1                   py36_0
bleach                    2.1.2                    pypi_0    pypi
bokeh                     0.12.4                   py36_0
boto                      2.45.0                   py36_0
boto3                     1.5.32                   py36_0
botocore                  1.8.46                   py36_0
bottleneck                1.2.0               np111py36_0
bzip2                     1.0.6                hd86a083_4
ca-certificates           2019.1.23                     0
cairo                     1.14.12              hc4e6be7_4
cartopy                   0.16.0           py36he7b4726_0
certifi                   2019.3.9                 py36_0
cffi                      1.9.1                    py36_0
cftime                    1.0.0b1          py36h917ab60_0
chardet                   3.0.4                    pypi_0    pypi
chest                     0.2.3                    py36_0
click                     6.7                      py36_0
click-plugins             1.0.3            py36hb58b8ed_0
cligj                     0.4.0            py36h479156e_0
cloudpickle               0.2.2                    py36_0
clyent                    1.2.2                    py36_0
colorama                  0.3.7                    py36_0
conda                     4.6.14                   py36_0
conda-env                 2.6.0                h36134e3_0
configobj                 5.0.6                    py36_0
contextlib2               0.5.4                    py36_0
cryptography              2.4.2            py36ha12b0ac_0
curl                      7.63.0            ha441bb4_1000
cycler                    0.10.0                   py36_0
cython                    0.25.2                   py36_0
cytoolz                   0.8.2                    py36_0
dask                      0.13.0                   py36_0
datashape                 0.5.4                    py36_0
decorator                 4.0.11                   py36_0
dill                      0.2.5                    py36_0
docker                    3.1.0                    pypi_0    pypi
docker-pycreds            0.2.2                    pypi_0    pypi
docutils                  0.13.1                   py36_0
ecmwf-api-client          1.5.0                    pypi_0    pypi
entrypoints               0.2.3                    pypi_0    pypi
environment-kernels       1.1.1                    pypi_0    pypi
eofs                      1.3.0                    py36_0    conda-forge
et_xmlfile                1.0.1                    py36_0
expat                     2.2.5                hb8e80ba_0
fastcache                 1.0.2                    py36_1
fasteners                 0.14.1                   pypi_0    pypi
feather-format            0.4.0                    pypi_0    pypi
ffmpeg                    3.4                  h766ddd1_0
flask                     0.12                     py36_0
flask-cors                3.0.2                    py36_0
fontconfig                2.13.0               h5d5b041_1
fortran-magic             0.7                      pypi_0    pypi
freetype                  2.9.1                hb4e5f40_0
freexl                    1.0.4                hb5808da_5
geos                      3.6.2                h5470d99_2
get_terminal_size         1.0.0                    py36_0
gettext                   0.19.8.1             h15daf44_3
gevent                    1.2.1                    py36_0
giflib                    5.1.4                h1035379_1
glib                      2.56.2               hd9629dc_0
greenlet                  0.4.11                   py36_0
h5py                      2.7.1            py36h39cdac5_0
hdf4                      4.2.13               h39711bb_2
hdf5                      1.10.1               ha036c08_1
heapdict                  1.0.0                    py36_1
holoviews                 1.8.4                    py36_0    conda-forge
html5lib                  1.0.1                    pypi_0    pypi
icu                       58.2                 h4b95b61_1
idna                      2.6                      pypi_0    pypi
imagesize                 0.7.1                    py36_0
ipykernel                 4.5.2                    py36_0
ipython                   5.1.0                    py36_1
ipython_genutils          0.1.0                    py36_0
ipywidgets                5.2.2                    py36_1
isort                     4.2.5                    py36_0
itsdangerous              0.24                     py36_0
jbig                      2.1                           0
jdcal                     1.3                      py36_0
jedi                      0.9.0                    py36_1
jinja2                    2.9.4                    py36_0
jmespath                  0.9.3            py36h767a2d6_0
jpeg                      9b                            0
json-c                    0.12.1               h6b7fe83_2
json-tricks               3.8.0              pyh6981248_0    jhkennedy
jsonschema                2.5.1                    py36_0
jupyter                   1.0.0                    py36_3
jupyter-client            5.2.2                    pypi_0    pypi
jupyter_client            5.2.2                    py36_0
jupyter_console           5.0.0                    py36_0
jupyter_core              4.4.0            py36h79cf704_0
jupyterlab                0.35.4                   py36_0    conda-forge
jupyterlab_server         0.2.0                      py_0    conda-forge
kealib                    1.4.7                hc1e10f3_5
kiwisolver                1.0.1            py36h0a44026_0
krb5                      1.16.1               hddcf347_7
lancet                    0.9.0                    py36_0    conda-forge
latexcodec                1.0.5                    pypi_0    pypi
lazy-object-proxy         1.2.2                    py36_0
libboost                  1.65.1               hcc95346_4
libcurl                   7.63.0            h051b688_1000
libcxx                    4.0.1                h579ed51_0
libcxxabi                 4.0.1                hebd6815_0
libdap4                   3.19.0               h51aaa68_1
libedit                   3.1.20181209         hb402a30_0
libffi                    3.2.1                h475c297_4
libgdal                   2.2.2                h3559a57_1
libgfortran               3.0.1                h93005f0_2
libiconv                  1.15                 hdd342a3_7
libkml                    1.3.0                hc0cae1e_3
libnetcdf                 4.4.1.1              hdf03fd4_8
libopus                   1.2.1                h169cedb_0
libpng                    1.6.36               ha441bb4_0
libpq                     11.1                 h051b688_0
libspatialite             4.3.0a              h0a2fa02_18
libssh2                   1.8.0                ha12b0ac_4
libtiff                   4.0.9                h0dac147_0
libuuid                   1.0.3                h6bb4b03_2
libvpx                    1.6.1                h057a404_0
libxml2                   2.9.9                hab757c2_0
libxslt                   1.1.29               hc208041_6
llvmlite                  0.15.0                   py36_0
locket                    0.2.0                    py36_1
lxml                      3.7.2                    py36_0
lzo                       2.10                 h362108e_2
markdown                  2.6.11                   pypi_0    pypi
markupsafe                0.23                     py36_2
matplotlib                3.0.2            py36h54f8f79_0
mistune                   0.8.3                    pypi_0    pypi
mkl                       2017.0.1                      0
mkl-service               1.1.2                    py36_3
monotonic                 1.4                      pypi_0    pypi
mpmath                    0.19                     py36_1
multipledispatch          0.4.9                    py36_0
nb_anacondacloud          1.4.0                    py36_0
nb_conda                  2.2.1            py36h349edbb_0
nb_conda_kernels          2.1.0                    py36_0
nbconvert                 5.3.1                    pypi_0    pypi
nbformat                  4.4.0            py36h827af21_0
nbpresent                 3.0.2            py36hef4c988_1
ncurses                   6.1                  h0a44026_1
netcdf4                   1.2.7                    pypi_0    pypi
networkx                  1.11                     py36_0
nltk                      3.2.2                    py36_0
nose                      1.3.7                    py36_1
notebook                  5.4.0                    pypi_0    pypi
numba                     0.30.1              np111py36_0
numexpr                   2.6.1               np111py36_2
numpy                     1.14.2           py36ha9ae307_0
numpydoc                  0.6.0                    py36_0
odo                       0.5.0                    py36_1
olefile                   0.45.1                   py36_0
openjpeg                  2.3.0                hb95cd4c_1
openpyxl                  2.4.1                    py36_0
openssl                   1.1.1b               h1de35cc_1
owslib                    0.15.0                     py_0    conda-forge
pandas                    0.23.4           py36h6440ff4_0
pandoc                    1.19.2.1             ha5e8f32_1
pandocfilters             1.4.2                    pypi_0    pypi
param                     1.5.1                    py36_0
partd                     0.3.7                    py36_0
path.py                   10.0                     py36_0
pathlib2                  2.2.0                    py36_0
patsy                     0.4.1                    py36_0
pcre                      8.42                 h378b8a2_0
pep8                      1.7.0                    py36_0
pexpect                   4.2.1                    py36_0
pickleshare               0.7.4                    py36_0
pillow                    5.4.1            py36hb68e598_0
pip                       9.0.1                    py36_1
pixman                    0.34.0               hca0a616_3
ply                       3.9                      py36_0
poppler                   0.65.0               ha097c24_1
poppler-data              0.4.9                         0
proj4                     4.9.3                         4    conda-forge
prompt_toolkit            1.0.9                    py36_0
psutil                    5.0.1                    py36_0
ptyprocess                0.5.1                    py36_0
py                        1.4.32                   py36_0
pyarrow                   0.8.0                    pypi_0    pypi
pyasn1                    0.1.9                    py36_0
pybtex                    0.21                     pypi_0    pypi
pycodestyle               2.3.1            py36h83e8646_0
pycosat                   0.6.3            py36hee92d8f_0
pycparser                 2.17                     py36_0
pycrypto                  2.6.1                    py36_4
pycurl                    7.43.0.2         py36ha12b0ac_0
pydot                     1.2.4                    pypi_0    pypi
pydotplus                 2.0.2                    pypi_0    pypi
pyepsg                    0.3.2                    py36_0    conda-forge
pyflakes                  1.5.0                    py36_0
pygments                  2.1.3                    py36_0
pylint                    1.6.4                    py36_1
pyopenssl                 16.2.0                   py36_0
pyparsing                 2.1.4                    py36_0
pyproj                    1.9.5.1                  py36_0    conda-forge
pyqt                      5.6.0                    py36_1
pyshp                     1.2.12                     py_0    conda-forge
pysocks                   1.6.8                    py36_0
pytables                  3.4.2            py36hfbd7ab0_2
pytest                    3.0.5                    py36_0
python                    3.6.8                haf84260_0
python-dateutil           2.6.0                    py36_0
python.app                1.2                      py36_4
pytz                      2016.10                  py36_0
pyyaml                    3.12                     py36_0
pyzmq                     16.0.2                   py36_0
qt                        5.6.2               h9975529_14
qtawesome                 0.4.3                    py36_0
qtconsole                 4.2.1                    py36_1
qtpy                      1.2.1                    py36_0
readline                  7.0                  hc1231fa_4
redis                     3.2.0                         0
redis-py                  2.10.5                   py36_0
requests                  2.18.4                   pypi_0    pypi
rope                      0.10.7           py36h68959ac_0
ruamel_yaml               0.11.14                  py36_1
s3transfer                0.1.11           py36h3f51469_1
scikit-image              0.12.3              np111py36_1
scikit-learn              0.18.1              np111py36_1
scipy                     0.18.1              np111py36_1
seaborn                   0.7.1                    py36_0
send2trash                1.5.0                    pypi_0    pypi
setuptools                38.5.1                   py36_0
shapely                   1.6.2            py36hed20685_0
simplegeneric             0.8.1                    py36_1
singledispatch            3.4.0.3                  py36_0
sip                       4.18                     py36_0
six                       1.10.0                   py36_0
snowballstemmer           1.2.1                    py36_0
snuggs                    1.4.1            py36hc1acd09_0
sockjs-tornado            1.0.3                    py36_0
sos                       0.9.12.7                 pypi_0    pypi
sos-bash                  0.9.12.1                 pypi_0    pypi
sos-essentials            0.9.9.3                  pypi_0    pypi
sos-notebook              0.9.12.2                 pypi_0    pypi
sos-pbs                   0.9.10.4                 pypi_0    pypi
sos-python                0.9.12.0                 pypi_0    pypi
sos-r                     0.9.12.0                 pypi_0    pypi
sphinx                    1.5.1                    pypi_0    pypi
spyder                    3.2.8                    py36_0
sqlalchemy                1.1.5                    py36_0
sqlite                    3.26.0               ha441bb4_0
statsmodels               0.6.1               np111py36_1
sympy                     1.0                      py36_0
tabulate                  0.8.2                    pypi_0    pypi
terminado                 0.8.1                    pypi_0    pypi
testpath                  0.3.1                    pypi_0    pypi
tk                        8.6.8                ha441bb4_0
toolz                     0.8.2                    py36_0
tornado                   4.4.2                    py36_0
tqdm                      4.19.6                   pypi_0    pypi
traitlets                 4.3.1                    py36_0
unicodecsv                0.14.1                   py36_0
urllib3                   1.22                     pypi_0    pypi
wand                      0.4.4                    pypi_0    pypi
wcwidth                   0.1.7                    py36_0
webencodings              0.5.1                    pypi_0    pypi
websocket-client          0.47.0                   pypi_0    pypi
werkzeug                  0.11.15                  py36_0
wheel                     0.29.0                   py36_0
widgetsnbextension        1.2.6                    py36_0
wrapt                     1.10.8                   py36_0
xarray                    0.12.1                     py_0
xerces-c                  3.2.0                h5f07086_2
xlrd                      1.0.0                    py36_0
xlsxwriter                0.9.6                    py36_0
xlwings                   0.10.2                   py36_0
xlwt                      1.2.0                    py36_0
xxhash                    1.0.1                    pypi_0    pypi
xz                        5.2.4                h1de35cc_4
yaml                      0.1.6                         0
zlib                      1.2.11               hf3cbc9b_2
```

### pip list

```
affine (2.1.0)
alabaster (0.7.9)
anaconda-client (1.6.0)
anaconda-navigator (1.6.3)
anaconda-project (0.4.1)
appnope (0.1.0)
appscript (1.0.1)
asn1crypto (0.24.0)
astroid (1.4.9)
astropy (1.3)
attrs (17.4.0)
Babel (2.3.4)
backports.shutil-get-terminal-size (1.0.0)
bash-kernel (0.7.1)
beautifulsoup4 (4.5.3)
bitarray (0.8.1)
blaze (0.10.1)
bleach (2.1.3)
bokeh (0.12.4)
boto (2.45.0)
boto3 (1.5.32)
botocore (1.8.46)
Bottleneck (1.2.0)
Cartopy (0.16.0)
certifi (2019.3.9)
cffi (1.9.1)
cftime (1.0.0b1)
chardet (3.0.4)
chest (0.2.3)
click (6.7)
click-plugins (1.0.3)
cligj (0.4.0)
cloudpickle (0.2.2)
clyent (1.2.2)
colorama (0.3.7)
conda (4.6.14)
configobj (5.0.6)
contextlib2 (0.5.4)
cryptography (2.4.2)
cycler (0.10.0)
Cython (0.25.2)
cytoolz (0.8.2)
dask (0.13.0)
datashape (0.5.4)
decorator (4.0.11)
dill (0.2.5)
docker (3.1.0)
docker-pycreds (0.2.2)
docutils (0.13.1)
ecmwf-api-client (1.5.0)
entrypoints (0.2.3)
environment-kernels (1.1.1)
eofs (1.3.0)
et-xmlfile (1.0.1)
fastcache (1.0.2)
fasteners (0.14.1)
feather-format (0.4.0)
Flask (0.12)
Flask-Cors (3.0.2)
fortran-magic (0.7)
gevent (1.2.1)
greenlet (0.4.11)
h5py (2.7.1)
HeapDict (1.0.0)
holoviews (1.8.4)
html5lib (1.0.1)
idna (2.8)
imagesize (0.7.1)
ipykernel (4.5.2)
ipython (5.1.0)
ipython-genutils (0.1.0)
ipywidgets (5.2.2)
isort (4.2.5)
itsdangerous (0.24)
jdcal (1.3)
jedi (0.9.0)
Jinja2 (2.9.4)
jmespath (0.9.3)
json-tricks (3.8.0)
jsonschema (2.5.1)
jupyter (1.0.0)
jupyter-client (5.2.2)
jupyter-console (5.0.0)
jupyter-core (4.4.0)
jupyterlab (0.35.4)
jupyterlab-server (0.2.0)
kiwisolver (1.0.1)
lancet-ioam (0.9.0)
latexcodec (1.0.5)
lazy-object-proxy (1.2.2)
llvmlite (0.15.0)
locket (0.2.0)
lxml (3.7.2)
Markdown (2.6.11)
MarkupSafe (0.23)
matplotlib (3.0.2)
mistune (0.8.3)
monotonic (1.4)
mpmath (0.19)
multipledispatch (0.4.9)
nb-anacondacloud (1.4.0)
nb-conda (2.2.1)
nb-conda-kernels (2.1.0)
nbconvert (5.3.1)
nbformat (4.4.0)
nbpresent (3.0.2)
netCDF4 (1.3.1)
networkx (1.11)
nltk (3.2.2)
nose (1.3.7)
notebook (5.4.0)
numba (0.30.1)
numexpr (2.6.1)
numpy (1.14.2)
numpydoc (0.6.0)
odo (0.5.0)
olefile (0.45.1)
openpyxl (2.4.1)
OWSLib (0.15.0)
pandas (0.23.4)
pandocfilters (1.4.2)
param (1.5.1)
partd (0.3.7)
pathlib2 (2.2.0)
patsy (0.4.1)
pep8 (1.7.0)
pexpect (4.2.1)
pickleshare (0.7.4)
Pillow (5.4.1)
pip (9.0.1)
ply (3.9)
prompt-toolkit (1.0.9)
psutil (5.0.1)
ptyprocess (0.5.1)
py (1.4.32)
pyarrow (0.8.0)
pyasn1 (0.1.9)
pybtex (0.21)
pycodestyle (2.3.1)
pycosat (0.6.3)
pycparser (2.17)
pycrypto (2.6.1)
pycurl (7.43.0.2)
pydot (1.2.4)
pydotplus (2.0.2)
pyepsg (0.3.2)
pyflakes (1.5.0)
Pygments (2.1.3)
pylint (1.6.4)
pyOpenSSL (16.2.0)
pyparsing (2.1.4)
pyproj (1.9.5.1)
pyshp (1.2.12)
PySocks (1.6.8)
pytest (3.0.5)
python-dateutil (2.6.0)
pytz (2016.10)
PyYAML (3.12)
pyzmq (16.0.2)
QtAwesome (0.4.3)
qtconsole (4.2.1)
QtPy (1.2.1)
redis (2.10.5)
requests (2.21.0)
rope (0.10.7)
s3transfer (0.1.11)
scikit-image (0.12.3)
scikit-learn (0.18.1)
scipy (0.18.1)
seaborn (0.7.1)
Send2Trash (1.5.0)
setuptools (38.5.1)
Shapely (1.6.2)
simplegeneric (0.8.1)
singledispatch (3.4.0.3)
six (1.10.0)
snowballstemmer (1.2.1)
snuggs (1.4.1)
sockjs-tornado (1.0.3)
sos (0.9.12.7)
sos-bash (0.9.12.1)
sos-essentials (0.9.9.3)
sos-notebook (0.9.12.2)
sos-pbs (0.9.10.4)
sos-python (0.9.12.0)
sos-r (0.9.12.0)
Sphinx (1.5.1)
spyder (3.2.8)
SQLAlchemy (1.1.5)
statsmodels (0.6.1)
sympy (1.0)
tables (3.4.2)
tabulate (0.8.2)
terminado (0.8.1)
testpath (0.3.1)
toolz (0.8.2)
tornado (4.4.2)
tqdm (4.19.6)
traitlets (4.3.1)
unicodecsv (0.14.1)
urllib3 (1.24.2)
Wand (0.4.4)
wcwidth (0.1.7)
webencodings (0.5.1)
websocket-client (0.47.0)
Werkzeug (0.11.15)
wheel (0.29.0)
widgetsnbextension (1.2.6)
wrapt (1.10.8)
xarray (0.12.1)
xlrd (1.0.0)
XlsxWriter (0.9.6)
xlwings (0.10.2)
xlwt (1.2.0)
xxhash (1.0.1)
You are using pip version 9.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
```

</details>



Discussion:
Well, as per [matplotlib documentation](https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.pcolormesh.html#differences-pcolor-pcolormesh), there is a slight difference in the handling of masked arrays between pcolor and pcolormesh, where only pcolor supports masked arrays for X and Y.

It works with pcolor instead of pcolormesh for the stereographic projection. I don't think this is a cartopy issue.
I hope that helps.

![minimum_example](https://user-images.githubusercontent.com/54799451/70529578-211bea80-1b51-11ea-9428-052f0919c1dd.png)

code modified to show the pcolor versus pcolormesh:

```
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import xarray as xr
import cartopy.crs as ccrs

# download file here: https://github.com/lvankampenhout/bug-reports/blob/master/cartopy-MVs-stereo/tmp.nc
da2 = xr.open_dataarray('tmp.nc') # evaporative flux
da2 = da2.drop(('lat2d', 'lon2d'))

# Mask values above 100 and below 0 (arbitrary)
data2 = da2
data2 = xr.where(data2 > 100, np.NaN, data2)
data2 = xr.where(data2 < 0, np.NaN, data2)

fig = plt.figure(figsize=(10, 6.4), dpi=100)
gs = gridspec.GridSpec(2, 2, figure=fig)
lon = data2.lon
lat = data2.lat
lon2d, lat2d = np.meshgrid(lon, lat)


proj_stereo = ccrs.Stereographic(central_longitude=320, central_latitude=72)
proj_ortho = ccrs.Orthographic(central_longitude=320, central_latitude=72)
PROJS = [proj_stereo, proj_ortho]
TITLES = ['Stereographic', 'Orthographic']

extent = [200, 340, 20, 84]

for i in range(2):
    for j in range(2):
        axe = fig.add_subplot(gs[i, j], projection=PROJS[j])
        axe.set_extent(extent, crs=ccrs.PlateCarree())
        axe.coastlines()
        if i == 0:
            # Xarray plotting syntax
            data2.plot.pcolormesh(ax=axe, transform=ccrs.PlateCarree(),
                                  robust=True)
            axe.set_title(TITLES[j]+' pcolormesh')
        else:
            # Matplotlib plotting syntax
            # choosing pcolor instead of pcolormesh
            # as pcolormesh has some issues
            # but pcolor is not available in Xarray plotting syntax
            axe.pcolor(lon2d, lat2d, data2.to_masked_array(),
                       transform=ccrs.PlateCarree())
            axe.set_title(TITLES[j]+' pcolor')

fig.savefig('minimum_example.png')
```
While there may be a difference in how masked arrays are handled, the problem here is how `np.nan` is working. `pcolormesh` in general works with `np.nan` in matplotlib. The fact that it works with Orthographic but not in Stereographic makes me think there's  bug.
Yes there is a small bug.
I looked a little bit deeper. 
The stereographic projection is not a polar one and it has a boundary at 140 deg with overlapping cells. It should be handled by the pcolormesh patch removing overlapping cells who currently excludes stereographic projections.
That's why I have proposed to include the stereographic projections in PR #1420 
![Capture d’écran 2019-12-18 à 13 05 37](https://user-images.githubusercontent.com/54799451/71085143-1daee180-2197-11ea-8d24-1d99f1f89b3a.png)

Below is a plot showing one of the overlapping cells and the corresponding code to reproduce.
![minimum_example2](https://user-images.githubusercontent.com/54799451/71085213-4931cc00-2197-11ea-841d-e93810a8896e.png)

```
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import xarray as xr
import cartopy.crs as ccrs

# download file here: https://github.com/lvankampenhout/bug-reports/blob/master/cartopy-MVs-stereo/tmp.nc
da2 = xr.open_dataarray('tmp.nc') # evaporative flux
da2 = da2.drop(('lat2d', 'lon2d'))

# Mask values above 100 and below 0 (arbitrary)
data2 = da2
data2 = xr.where(data2 > 100, np.NaN, data2)
data2 = xr.where(data2 < 0, np.NaN, data2)

fig = plt.figure(figsize=(10, 5))
gs = gridspec.GridSpec(1, 2, figure=fig)
lon = data2.lon
lat = data2.lat
lon2d, lat2d = np.meshgrid(lon,lat)


proj_stereo = ccrs.Stereographic(central_longitude=320, central_latitude=72)
proj_ortho = ccrs.Orthographic(central_longitude=320, central_latitude=72)

ax1 = fig.add_subplot(gs[0, 0], projection=proj_stereo)
ax2 = fig.add_subplot(gs[0, 1], projection=proj_ortho)

transformed_pts = proj_stereo.transform_points(
    ccrs.Geodetic(), lon2d, lat2d)
xi, yi = [19, 111]   
ptx, pty = transformed_pts[..., 0], transformed_pts[..., 1]
print(lon2d[xi - 1:xi + 2, yi - 1:yi + 2])
print(lat2d[xi - 1:xi + 2, yi - 1:yi + 2])
print(ptx[xi - 1:xi + 2, yi - 1:yi + 2])
print(pty[xi - 1:xi + 2, yi - 1:yi + 2])

extent = [200, 340, 20, 84]

for ax in (ax1, ax2):

    ax.set_extent(extent, crs=ccrs.PlateCarree())
    ax.coastlines()

    # Xarray plotting syntax
    #data2.plot.contourf(ax=ax, transform=ccrs.PlateCarree(), robust=True) # Good
    data2.plot.pcolormesh(ax=ax, transform=ccrs.PlateCarree(), robust=True) # Bad

    # Matplotlib plotting syntax
    #cn = ax.pcolormesh(lon2d, lat2d, data.to_masked_array(), transform=ccrs.PlateCarree())
    #plt.colorbar(cn,ax=ax)
 
z = np.zeros((3,3))
z[2,2]=10
z[1,1]=5
    
ax1.pcolormesh(ptx[xi - 1:xi + 2, yi - 1:yi + 2],
               pty[xi - 1:xi + 2, yi - 1:yi + 2], 
               z,
               cmap='cool',
               edgecolors='black')

ax1.set_title('Stereographic')
ax2.set_title('Orthographic')

fig.savefig('minimum_example2.png')
```

With the Fix the plot becomes:
![minimum_example2Fix](https://user-images.githubusercontent.com/54799451/71085627-3ec40200-2198-11ea-8eb3-0031dc7dee4f.png)

The data (z) is masked, but the edges of the chosen overlapping cell are still plotted. This is consistent with the code.


Resolving patch:
diff --git a/lib/cartopy/mpl/geoaxes.py b/lib/cartopy/mpl/geoaxes.py
--- a/lib/cartopy/mpl/geoaxes.py
+++ b/lib/cartopy/mpl/geoaxes.py
@@ -1742,24 +1742,35 @@ def _pcolormesh_patched(self, *args, **kwargs):
             wrap_proj_types = (ccrs._RectangularProjection,
                                ccrs._WarpedRectangularProjection,
                                ccrs.InterruptedGoodeHomolosine,
-                               ccrs.Mercator)
+                               ccrs.Mercator,
+                               ccrs.LambertAzimuthalEqualArea,
+                               ccrs.AzimuthalEquidistant,
+                               ccrs.TransverseMercator,
+                               ccrs.Stereographic)
             if isinstance(t, wrap_proj_types) and \
                     isinstance(self.projection, wrap_proj_types):
 
                 C = C.reshape((Ny - 1, Nx - 1))
                 transformed_pts = transformed_pts.reshape((Ny, Nx, 2))
 
-                # Compute the length of edges in transformed coordinates
+                # Compute the length of diagonals in transformed coordinates
                 with np.errstate(invalid='ignore'):
-                    edge_lengths = np.hypot(
-                        np.diff(transformed_pts[..., 0], axis=1),
-                        np.diff(transformed_pts[..., 1], axis=1)
-                    )
-                    to_mask = (
-                        (edge_lengths > abs(self.projection.x_limits[1] -
-                                            self.projection.x_limits[0]) / 2) |
-                        np.isnan(edge_lengths)
-                    )
+                    xs, ys = transformed_pts[..., 0], transformed_pts[..., 1]
+                    diagonal0_lengths = np.hypot(xs[1:, 1:] - xs[:-1, :-1],
+                                                 ys[1:, 1:] - ys[:-1, :-1])
+                    diagonal1_lengths = np.hypot(xs[1:, :-1] - xs[:-1, 1:],
+                                                 ys[1:, :-1] - ys[:-1, 1:])
+                    # The maximum size of the diagonal of any cell, defined to
+                    # be the projection width divided by 2*sqrt(2)
+                    # TODO: Make this dependent on the boundary of the
+                    #       projection which will help with curved boundaries
+                    size_limit = (abs(self.projection.x_limits[1] -
+                                      self.projection.x_limits[0]) /
+                                  (2*np.sqrt(2)))
+                    to_mask = (np.isnan(diagonal0_lengths) |
+                               (diagonal0_lengths > size_limit) |
+                               np.isnan(diagonal1_lengths) |
+                               (diagonal1_lengths > size_limit))
 
                 if np.any(to_mask):
                     if collection.get_cmap()._rgba_bad[3] != 0.0:
@@ -1769,15 +1780,14 @@ def _pcolormesh_patched(self, *args, **kwargs):
                                       stacklevel=3)
 
                     # at this point C has a shape of (Ny-1, Nx-1), to_mask has
-                    # a shape of (Ny, Nx-1) and pts has a shape of (Ny*Nx, 2)
+                    # a shape of (Ny-1, Nx-1) and pts has a shape of (Ny*Nx, 2)
 
                     mask = np.zeros(C.shape, dtype=np.bool)
 
-                    # Mask out the neighbouring cells if there was an edge
-                    # found with a large length. NB. Masking too much only has
+                    # Mask out the cells if there was a diagonal found with a
+                    # large length. NB. Masking too much only has
                     # a detrimental impact on performance.
-                    mask[to_mask[:-1, :]] = True  # Edges above a cell.
-                    mask[to_mask[1:, :]] = True  # Edges below a cell.
+                    mask[to_mask] = True
 
                     C_mask = getattr(C, 'mask', None)
 


Test patch:
diff --git a/lib/cartopy/tests/mpl/test_mpl_integration.py b/lib/cartopy/tests/mpl/test_mpl_integration.py
--- a/lib/cartopy/tests/mpl/test_mpl_integration.py
+++ b/lib/cartopy/tests/mpl/test_mpl_integration.py
@@ -478,6 +478,22 @@ def test_pcolormesh_single_column_wrap():
     ax.set_global()
 
 
+def test_pcolormesh_diagonal_wrap():
+    # Check that a cell with the top edge on one side of the domain
+    # and the bottom edge on the other gets wrapped properly
+    xs = [[160, 170], [190, 200]]
+    ys = [[-10, -10], [10, 10]]
+    zs = [[0, 1], [0, 1]]
+
+    ax = plt.axes(projection=ccrs.PlateCarree())
+    mesh = ax.pcolormesh(xs, ys, zs)
+
+    # Check that the quadmesh is masked
+    assert np.ma.is_masked(mesh.get_array())
+    # And that the wrapped_collection is added
+    assert hasattr(mesh, "_wrapped_collection_fix")
+
+
 @pytest.mark.xfail(MPL_VERSION < '2.1.0', reason='Matplotlib is broken.')
 @pytest.mark.natural_earth
 @ImageTesting(['pcolormesh_goode_wrap'])