por que o pcolor com matriz mascarada ainda preenche quadrângulos conectados a pontos mascarados, e como faço para interromper isso?

Para mitigar o problemadescrito aquiEstou tentando desenhar meupcolor plot em duas partes complementares. eu tenhoX eY dados que correspondem a longitude e latitude, respectivamente (na realidade, isso é traduzido para coordenadas de projeção porcartopy, mas o problema em questão é independente disso). A longitude pode envolver o antimeridiano, o que faz com que quadrângulos sejam desenhados em todo o mundo. Para evitar isso, estou tentando desenhar as duas partes separadamente, como ilustrado abaixo:

#!/usr/bin/env python3.6

from numpy import array, ma
from matplotlib.pyplot import figure, pcolor, savefig

lons = array([[ 100.,  120.,  140.,  160.,  180.],
       [ 120.,  140.,  160.,  180., -160.],
       [ 140.,  160.,  180., -160., -140.],
       [ 160.,  180., -160., -140., -120.],
       [ 180., -160., -140., -120., -100.],
       [-160., -140., -120., -100.,  -80.]])

lats = array([[  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.],
       [  0.,  10.,  20.,  30.,  40.]])

bts = array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24],
       [25, 26, 27, 28, 29]])

figure()
pcolor(lons, lats, ma.masked_where(lons>0, bts))
savefig("/tmp/ok.png")

figure()
pcolor(lons, lats, ma.masked_where(lons<0, bts))
savefig("/tmp/not_ok.png")

Agora, o enredo em que mascarei todas as longitudes positivas parece mais ou menos como eu esperava:

mas o enredo em que mascarei todas as longitudes negativas ainda traça quadrângulos em todos os eixos:

No segundo gráfico, eu gostaria de desenhar apenas quadrângulos correspondentes a longitudes positivas. Por que ainda está fazendo conexões com valores mascarados e como posso impedir que isso aconteça?

questionAnswers(1)

yourAnswerToTheQuestion