Matplotlib: ListedColormap no asigna colores

Tengo problemas para entender por qué una @ personalizacmap no se asigna correctamente a una imagen usandoplt.imshow.

Cuando trazo la matriz 2-Dresr sin especificar un cmap, veo:

resr = np.array([[0,2],[3,4]],dtype=int)
plt.imshow(resr)

Esto se ve bien. Cuando trato de pasar un cmap de mis colores especificados usando:

cmap1 = ['#7fc97f', '#ffff99', '#386cb0', '#f0027f']
cmap = colors.ListedColormap(cmap1) 
plt.imshow(resr, cmap=cmap)

Veo

Por alguna razón, el colorcmap1[3] se está asignando a laresr valores3 y4. ¿Por qué está pasando esto

Respuestas a la pregunta(2)

Su respuesta a la pregunta