jpg cmap python image matplotlib

cmap - rgb image python



Desactivar ejes en subplots (2)

Tengo el siguiente código:

import matplotlib.pyplot as plt import matplotlib.image as mpimg import matplotlib.cm as cm img = mpimg.imread("lena.jpg") f, axarr = plt.subplots(2, 2) axarr[0,0].imshow(img, cmap = cm.Greys_r) axarr[0,0].set_title("Rank = 512") rank = 128 new_img = prune_matrix(rank, img) axarr[0,1].imshow(new_img, cmap = cm.Greys_r) axarr[0,1].set_title("Rank = %s" %rank) rank = 32 new_img = prune_matrix(rank, img) axarr[1,0].imshow(new_img, cmap = cm.Greys_r) axarr[1,0].set_title("Rank = %s" %rank) rank = 16 new_img = prune_matrix(rank, img) axarr[1,1].imshow(new_img, cmap = cm.Greys_r) axarr[1,1].set_title("Rank = %s" %rank) plt.show()

Sin embargo, el resultado es bastante feo debido a los valores en los ejes:

¿Cómo puedo desactivar los valores de los ejes para todas las subparcelas simultáneamente?


Puede desactivar los ejes siguiendo los consejos del comentario de Veedrac (enlazando here ) con una pequeña modificación.

En lugar de usar plt.axis(''off'') , debe usar ax.axis(''off'') donde ax es un objeto matplotlib.axes . Para hacer esto para su código, simplemente necesita agregar axarr[0,0].axis(''off'') y así sucesivamente para cada una de sus subparcelas.

El siguiente código muestra el resultado ( prune_matrix parte prune_matrix porque no tengo acceso a esa función, en el futuro, envíe el código que funcione completamente ) .

import matplotlib.pyplot as plt import matplotlib.image as mpimg import matplotlib.cm as cm img = mpimg.imread("stewie.jpg") f, axarr = plt.subplots(2, 2) axarr[0,0].imshow(img, cmap = cm.Greys_r) axarr[0,0].set_title("Rank = 512") axarr[0,0].axis(''off'') axarr[0,1].imshow(img, cmap = cm.Greys_r) axarr[0,1].set_title("Rank = %s" % 128) axarr[0,1].axis(''off'') axarr[1,0].imshow(img, cmap = cm.Greys_r) axarr[1,0].set_title("Rank = %s" % 32) axarr[1,0].axis(''off'') axarr[1,1].imshow(img, cmap = cm.Greys_r) axarr[1,1].set_title("Rank = %s" % 16) axarr[1,1].axis(''off'') plt.show()

Nota: para desactivar solo el eje x o y puede usar set_visible() por ejemplo:

axarr[0,0].xaxis.set_visible(False) # Hide only x axis


import matplotlib.pyplot as plt fig, ax = plt.subplots(2, 2)


Para desactivar los ejes de todas las subparcelas, haga lo siguiente:

[axi.set_axis_off() for axi in ax.ravel()]

o

map(lambda axi: axi.set_axis_off(), ax.ravel())