¿Alguien puede explicar esta peculiaridad de matplotlib pcolormesh?

El trazado de una matriz con pcolormesh con datos xey elimina una fila de los datos

Para ilustrar lo que quiero decir, vea lo siguiente:

data = np.random.random([5,5]) plt.pcolormesh(data) 

resultados en esta cuadrícula de 5×5:
introduzca la descripción de la imagen aquí

Pero si quiero definir los ejes x y y para los datos como este, pcolormesh crea una cuadrícula de 4×4, en la que faltan las filas superior y derecha …

 plt.pcolormesh(range(5), range(5), data) 

introduzca la descripción de la imagen aquí

Para obtener la ttwig completa de 5×5, tengo que hacer

 plt.pcolormesh(range(6), range(6), data) 

introduzca la descripción de la imagen aquí

¿Es esto solo una peculiaridad de pcolormesh? ¿O puede alguien explicar el razonamiento por el cual pcolormesh se comporta de esta manera?

El comportamiento que ves es esperado. Los estados de la documentación de pcolor para
pcolor(X, Y, C, **kwargs) :

Lo ideal es que las dimensiones de X e Y sean mayores que las de C; Si las dimensiones son las mismas, la última fila y columna de C se ignorarán.

Lo mismo es cierto, por supuesto, para pcolormesh .

No estoy seguro de si este es el lugar para discutir si este comportamiento es una “peculiaridad”, pero la idea subyacente es que la cuadrícula define los bordes de las caras de color. Al igual que en una recta numérica, tiene n números y n-1 intervalos intermedios.

En realidad, tiene sentido definir los bordes por la cuadrícula, ya que pcolormesh también permite cuadrículas desigualmente espaciadas que serían imposibles de definir de otra manera.

introduzca la descripción de la imagen aquí