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?