Saltar al contenido

matplotlib matshow etiquetas

Verificamos profundamente cada tutorial de nuestro sitio web con el objetivo de mostrarte siempre información veraz y actual.

Solución:

Lo que sucede es que los xticks en realidad se extienden fuera de la figura mostrada cuando se usa matshow. (No estoy muy seguro de por qué sucede esto. Sin embargo, casi nunca he usado matshow).

Para demostrar esto, mire la salida de ax.get_xticks(). en tu caso es array([-1., 0., 1., 2., 3., 4.]). Por lo tanto, cuando configura las etiquetas xtick, “ABC” está en <-1, -1>y no se muestra en la figura.

La solución más sencilla es anteponer una etiqueta en blanco a su lista de etiquetas, por ejemplo

ax.set_xticklabels(['']+alpha)
ax.set_yticklabels(['']+alpha)

Como ejemplo completo:

import numpy as np
import matplotlib.pyplot as plt

alpha = ['ABC', 'DEF', 'GHI', 'JKL']

data = np.random.random((4,4))

fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(data, interpolation='nearest')
fig.colorbar(cax)

ax.set_xticklabels(['']+alpha)
ax.set_yticklabels(['']+alpha)

plt.show()

ejemplo matshow

La otra forma de hacer esto es especificar las marcas y luego establecer las etiquetas correspondientes. Entonces no tienes que preocuparte por el tic adicional fuera de los límites. Esto aparece en muchas demostraciones de matplotlib. Así que aquí, tenga en cuenta las llamadas adicionales al ax.set_xticks y ax.set_yticks

import numpy as np
import matplotlib.pyplot as plt

alpha = ['ABC', 'DEF', 'GHI', 'JKL']

data = np.random.random((4,4))

fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(data, interpolation='nearest')
fig.colorbar(cax)

xaxis = np.arange(len(alpha))
ax.set_xticks(xaxis)
ax.set_yticks(xaxis)
ax.set_xticklabels(alpha)
ax.set_yticklabels(alpha)

plt.show()

ingrese la descripción de la imagen aquí

Sección de Reseñas y Valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *